Bedienungsanleitung Modul-Funktionen

Frontend-Validierung von Adressen im Checkout

  1. Navigieren Sie zu TechDivision >> Account/Cart/Checkout >> Postcode Validator

    1. Aktivieren Sie das Modul über die Konfiguration Enabled

    2. Aktivieren Sie die Valdierungsfunktion für Lieferadressen im Checkout Enabled for Shipping

    3. Aktivieren Sie die Valdierungsfunktion für Rechnungsadressen im Checkout Enabled for Billing

  2. Im Checkout werden nun frontend-seitig (Javascript) die Liefer- und Rechnungsadressen nach den hinterlegten Standard-Validierungen (Regexp) geprüft

    Lieferadresse Rechnungsadresse
    Shipping-Validation
    Billing-Validation

Es handelt sich bei dieser Einstellung um eine reine frontend-seitige Prüfung (JS).

Wir empfehlen außerdem die Einstellung Enabled on place order zu aktivieren.

Frontend-Ausschluss von Adressen im Checkout

  1. Navigieren Sie zu TechDivision >> Account/Cart/Checkout >> Postcode Validator

    1. Aktivieren Sie das Modul über die Konfiguration Enabled

    2. Aktivieren Sie die Valdierungsfunktion für Lieferadressen im Checkout Enabled for Shipping

    3. Aktivieren Sie die Valdierungsfunktion für Rechnungsadressen im Checkout Enabled for Billing

  2. Hinterlegen Sie ein Ausschlusskriterium für Postleitzahlen in einem gewünschten Land (hier Deutschland)

    Exclusion-Config
  3. Im Checkout werden nun frontend-seitig (Javascript) die Liefer- und Rechnungsadressen geprüft und auch gegen Ausschlusskriterien validiert

    Exclusion-Config

Wurde die Validierung für andere Bereiche aktiviert, so werden auch hier Adressen gegen Ausschlusskriterien validiert

Frontend-Validierung von Adressen im Kundenbreich

  1. Navigieren Sie zu TechDivision >> Account/Cart/Checkout >> Postcode Validator

    1. Aktivieren Sie das Modul über die Konfiguration Enabled

    2. Aktivieren Sie die Valdierungsfunktion für das Adressbuch im Kundenbreich Enabled for Addressbook

  2. Im Adressbuch des Kundenbereichs werden nun frontend-seitig (Javascript) Adressspeicherungen geprüft

    Addressbook

Sind Ausschlusskriterien definiert, so werden auch diese hier überprüft.

Backend- und Request-Validierungen von Adressen

Über die Modulkonfiguration können auch Backend- oder Server-Requests, welche Adressspeicherung nach sich ziehen, gegen die hinterlegten Validierungs- und Ausschluss-Regexp geprüft werden. Dies empfiehlt sich vor allem, wenn über Drittsysteme Kundenverwaltungen oder Bestellabschlüsse stattfinden.

Frontend-Validierung von Firmen-Adressen (B2B-Feature)

Ab Version 2.2.0 unterstützt das Modul auch die Validierung von Firmenadressen im Zusammenhang mit dem Magento-B2B-Feature.

  1. Navigieren Sie zu TechDivision >> Account/Cart/Checkout >> Postcode Validator

    1. Aktivieren Sie das Modul über die Konfiguration Enabled

    2. Aktivieren Sie die Valdierungsfunktion für Lieferadressen im Checkout Enabled for company create and edit (B2B)

  2. Auf den Frontend-Formularen zur Anlage und zur Bearbeitung von Firmen werden nun frontend-seitig (Javascript) die Adressen nach den hinterlegten Standard-Validierungen (Regexp) geprüft

Es handelt sich bei dieser Einstellung um eine reine frontend-seitige Prüfung (JS).

Backend-Validierung von Firmen-Adressen (B2B-Feature) / Code-Änderung

Ab Version 2.2.0 unterstützt das Modul auch die Validierung von Firmenadressen im Zusammenhang mit dem Magento-B2B-Feature. Die Validierung ist rein frontendseitig (Javascript). Mit einer kleinen Code-Anpassung kann die Validierung auch backendseitig im PHP-Code aktiviert werden.

Leider kann die Codeanpassung nicht ins Modul integriert werden, da Magento-Commerce bzw. das Magento-B2B-Feature installationstechnisch vorausgesetzt werden.

Implementierung SaveValidator

Es soll eine Klasse implementiert werden, welche das SaveValidatorInterface verwendet.

<?php
/**
 * Copyright (c) 2021 TechDivision GmbH <info@techdivision.com> - TechDivision GmbH
 * All rights reserved
 *
 * This product includes proprietary software developed at TechDivision GmbH, Germany
 * For more information see http://www.techdivision.com/
 *
 * To obtain a valid license for using this software please contact us at
 * license@techdivision.com
 */

namespace TechDivision\PostCodeValidator\Model\SaveValidator;

use Magento\Company\Api\Data\CompanyInterface;
use Magento\Company\Model\SaveValidatorInterface;
use TechDivision\PostCodeValidator\Helper\Config;

/**
 * @copyright  Copyright (c) 2021 TechDivision GmbH <info@techdivision.com> - TechDivision GmbH
 * @link       http://www.techdivision.com/
 * @author     MET <met@techdivision.com >
 */
class CompanyPostcode implements SaveValidatorInterface
{
    /** @var CompanyInterface */
    private $company;

    /** @var Config */
    private $config;

    /**
     * @param CompanyInterface $company
     * @param Config $config
     */
    public function __construct(
        CompanyInterface $company,
        Config $config
    ) {
        $this->company = $company;
        $this->config = $config;
    }

    /**
     * @inheritdoc
     */
    public function execute()
    {
        if (
            $this->config->isModuleEnabled() &&
            $this->config->isValidationEnabledForB2B() &&
            $this->config->isValidationEnabledForControllers()
        ) {
            $this->config->validatePostCodes(
                $this->company->getPostcode(),
                $this->company->getCountryId()
            );
        }
    }
}

Registrierung Validator

Die implementierte Klasse muss via DI im SaveValidatorPool angemeldet werden.

<?xml version="1.0"?>
<!-- ****** -->
<!-- di.xml -->
<!-- ****** -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">

    <type name="Magento\Company\Model\SaveValidatorPool">
        <arguments>
            <argument name="validators" xsi:type="array">
                <item name="postCode" xsi:type="string">\TechDivision\PostCodeValidator\Model\SaveValidator\CompanyPostcode</item>
            </argument>
        </arguments>
    </type>
</config>