Inhaltsverzeichnis
- Einführung
- Verständnis des Kundenbereichs in Magento 2
- Die Herausforderung: Globaler Bereich mit lokalen Versandbeschränkungen
- Lösungsüberblick
- Konfiguration Schritt für Schritt
- Fazit
- FAQs
Einführung
Stellen Sie sich eine Einzelhandelslandschaft vor, in der Ihr Kunde sich einmal anmelden kann und auf mehrere Shop-Ansichten innerhalb Ihres Magento-Ökosystems zugreifen kann. Ein nahtloses Kundenerlebnis, richtig? Diese Bequemlichkeit kann jedoch Komplexitäten mit sich bringen – insbesondere, wie können Sie Versandoptionen einschränken, während Sie ein globales Kundenkonto erhalten? Dieses Dilemma ist bei Magento 2.3-Shop-Besitzern verbreitet, die auf verschiedenen geografischen Märkten tätig sind. In diesem Artikel gehen wir darauf ein, wie Sie den Kundenbereich global in Magento 2 verwalten können, während Sie die Liste der Versandländer für jede Website einschränken.
Am Ende dieses Artikels werden Sie verstehen, wie Sie Ihren Magento-Shop konfigurieren können, um den globalen Kundenzugriff mit regionalen Versandoptionen in Einklang zu bringen. Wir führen Sie durch die Schritte zur Anpassung Ihrer Magento-Installation, um dieses Gleichgewicht zu erreichen, und gewährleisten ein optimales Kundenerlebnis und effizientes Shop-Management.
Verständnis des Kundenbereichs in Magento 2
Bevor wir uns der Lösung zuwenden, ist es wichtig, das Konzept des Kundenbereichs zu erfassen. In Magento 2 definiert der Kundenbereich, wie Kundenkonten in mehreren Shop-Ansichten innerhalb einer Magento-Installation funktionieren.
Globale Kundenbereiche
Ein globaler Kundenbereich bedeutet, dass ein auf einer Shop-Ansicht erstelltes Konto verwendet werden kann, um sich in jeder anderen Shop-Ansicht innerhalb derselben Magento-Installation anzumelden. Dies ist äußerst vorteilhaft für Benutzer, die mehrere Shops unter Ihrem Markendach durchsuchen, und fördert ein stärker miteinander verbundenes und bequemeres Einkaufserlebnis.
Website-spezifische Kundenbereiche
Andererseits beschränkt ein Website-spezifischer Kundenbereich den Login eines Kunden auf den Shop, in dem er sich ursprünglich registriert hat. Dies ist in der Regel weniger bequem für Kunden, kann jedoch die Verwaltung für Unternehmen vereinfachen, die sich an stark unterschiedliche demografische Zielgruppen pro Shop-Ansicht richten.
Die Herausforderung: Globaler Bereich mit lokalen Versandbeschränkungen
Die Hauptherausforderung besteht darin, dass Sie einen globalen Kundenbereich aktivieren, aber Versandoptionen basierend auf dem geografischen Standort jedes Shops einschränken müssen. Standardmäßig ermöglicht Magento alle Länder für den Versand, wenn der Kundenbereich global eingestellt ist, was die lokalen Versandstrategien kompliziert.
Lösungsüberblick
Um das Ziel eines globalen Kundenbereichs neben eingeschränkten Versandländern zu erreichen, werden wir spezifische Standardverhalten in Magento außer Kraft setzen. Dies beinhaltet:
- Deaktivieren des Standardplugins
AllowedCountries. - Erstellung eines benutzerdefinierten Plugins zum Filtern der angezeigten Länder beim Checkout basierend auf shop-spezifischen Konfigurationen.
Konfiguration Schritt für Schritt
Deaktivierung des Standard-Plugins AllowedCountries
Beginnen Sie mit der Deaktivierung des Standardplugins, um Konflikte mit unserer benutzerdefinierten Logik zu vermeiden. Dies kann erreicht werden, indem Sie die di.xml-Datei in Ihrem benutzerdefinierten Modul ändern.
- Öffnen Sie die
di.xml-Datei in Ihrem benutzerdefinierten Modulverzeichnis. - Deaktivieren Sie das
AllowedCountries-Plugin:<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Customer\Model\Plugin\AllowedCountries"> <plugin name="allowed_countries_plugin" disabled="true"/> </type> </config>
Erstellung eines benutzerdefinierten Plugins
Entwickeln Sie nun ein benutzerdefiniertes Plugin, um die Liste der erlaubten Länder basierend auf den Shop-Konfigurationen zu steuern. Dieses Plugin wird das Standardverhalten von Magento außer Kraft setzen.
Erstellen Sie die benutzerdefinierte Plugin-Klasse:
namespace Vendor\Module\Plugin; use Magento\Customer\Api\Data\AddressInterface; use Magento\Customer\Api\AddressRepositoryInterface; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Store\Model\ScopeInterface; class AllowedCountries { protected $scopeConfig; public function __construct(ScopeConfigInterface $scopeConfig) { $this->scopeConfig = $scopeConfig; } public function aroundGetAllowedCountries($subject, callable $proceed, $store = null) { $allowedCountries = $proceed($store); // Holen Sie benutzerdefinierte Konfigurationen $customAllowedCountries = $this->scopeConfig->getValue( 'general/country/custom_allowed_countries', ScopeInterface::SCOPE_STORE, $store ); // Filtern Sie die Länder basierend auf benutzerdefinierter Einstellung if ($customAllowedCountries) { $allowedCountries = array_intersect($allowedCountries, explode(',', $customAllowedCountries)); } return $allowedCountries; } }Aktualisieren Sie die
di.xml-Datei, um Ihr benutzerdefiniertes Plugin zu verwenden:<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Customer\Model\Plugin\AllowedCountries"> <plugin name="custom_allowed_countries" type="Vendor\Module\Plugin\AllowedCountries" /> </type> </config>
Konfigurieren der Shop-Ansichtseinstellungen
- Wechseln Sie zur Admin-Seitenleiste: Gehen Sie zu Stores > Einstellungen > Konfiguration.
- Erweitern Sie: Wählen Sie im linken Panel Allgemein aus und wählen Sie Allgemein > Länderoptionen aus.
- Konfigurieren Sie die erlaubten Länder für jede Shop-Ansicht:
- Im Feld Benutzerdefinierte erlaubte Länder geben Sie die Länder ein, die Sie für diesen Shop freischalten möchten.
Testen und Validieren
Nach Implementierung der oben genannten Konfigurationen ist es wichtig, den Checkout-Prozess für jede Shop-Ansicht gründlich zu testen. Stellen Sie sicher, dass während des Checkout-Prozesses nur die erlaubten Länder im Dropdown-Menü angezeigt werden, und validieren Sie, dass die Konfigurationen wie beabsichtigt funktionieren.
Fazit
Die Einrichtung eines Magento-Shops mit einem globalen Kundenbereich und der Steuerung der Versandziele pro Shop-Ansicht kann einschüchternd wirken, aber mit dem richtigen Ansatz ist es völlig machbar. Durch Deaktivierung des Standardplugins AllowedCountries und Implementierung einer benutzerdefinierten Lösung können Sie ein optimales Gleichgewicht zwischen globalem Zugriff und lokalen Versandbeschränkungen bieten. Diese Konfiguration verbessert nicht nur das Kundenerlebnis, sondern passt sich auch an unterschiedliche logistische Rahmenbedingungen in den verschiedenen geografischen Märkten Ihres Unternehmens an.
FAQs
1. Kann ich diese Konfiguration für verschiedene Magento-Versionen verwenden?
Die beschriebenen Schritte sind spezifisch für Magento 2.3, aber der allgemeine Ansatz ist für verschiedene Versionen mit geringfügigen Änderungen anpassbar.
2. Werden diese Konfigurationen die Leistung des Magento-Shops beeinflussen?
Wenn korrekt implementiert, sollte der Leistungseinfluss minimal sein. Stellen Sie jedoch immer sicher, dass Sie gründlich in einer Testumgebung testen.
3. Was passiert, wenn das bevorzugte Versandland eines Kunden nicht mehr verfügbar ist?
Der Kunde wird aufgefordert, ein anderes Versandland auszuwählen. Stellen Sie sicher, dass Ihr Shop die Versandrichtlinien klar kommuniziert, um Verwirrung zu vermeiden.
4. Wie kehre ich zur Standardkonfiguration zurück?
Aktivieren Sie einfach das Standard-AllowedCountries-Plugin in der di.xml-Datei und deaktivieren Sie das benutzerdefinierte Plugin.
5. Ist es möglich, diese Konfiguration zu erweitern, um Länder basierend auf anderen Kriterien zu filtern?
Ja, das benutzerdefinierte Plugin kann weiterentwickelt werden, um Länder basierend auf zusätzlichen Kriterien wie Kundengruppen, Produktkategorien oder Bestellwerten zu filtern.