Kundentypen - Shop/Context
Allgemeine Beschreibung für Kundentypen siehe hier.
Dort wird auch der Prozess der Migration von brandbox 9 auf 10, bzw. shop-core 7 auf 8 beschrieben. Manche Schritte konnten nicht automatisiert machen gemacht werden, da redaktionelle Pflege notwendig ist.
Debug aktivieren
Über /config/config.php ist er möglich, Debugausgaben für den ShopContext zu aktivieren. Das ist hilfreich für lokale Fehleranalysen.
Eintrag in der /config/config.php
'debug' => [
'shop-core' => [
'context' => false
]
]
Wichtige Funktionen
Aktueller Kontext anhand des ApplicationContexts
\Brandbox\ShopCore\Shop\Context\Manager::getApplicationContext
Hinweis: Hier kann durchaus auch null zurückgegeben werden, wenn für die Kombination aus Lieferland, Kundengruppe und Preisgruppe kein Kundentyp (ShopContext) gefunden wurde.
Aktueller ShopUser anhand des ApplicationContext
\Brandbox\ShopCore\Shop\Context\Manager::getApplicationShopUser
Aktuelles Land anhand des ApplicationContext
\Brandbox\ShopCore\Shop\Context\Manager::getApplicationContextCountry
Aktuelles Land anhand des Kontexts und Bestellprozess
\Brandbox\ShopCore\Shop\Context\Manager::getApplicationShopUserCountry
Priorität:
Lieferland im Bestellprozess
Lieferland der Standardversandmethode
Land des Kunden
\Brandbox\Framework\Brandbox\Country\CountryManager::getSystemDefaultCountry
Kontext setzen und Zurücksetzen
Der Kontext kann mit \Brandbox\ShopCore\Shop\Context\Manager::resetApplicationContext
zurückgesetzt werden. Hier wird der Cache geleert. Das kann notwendig werden, wenn sich das Lieferland im Laufe des PHP-Prozesses ändert und danach auf den neuen Kontext zugegriffen werden soll. Zum Beispiel, wenn der Kunde seine Lieferadresse in der Bestellung ändert.
In manchen Fällen muss der Kontext durch Code gesetzt werden. Dss kann mit \Brandbox\ShopCore\Shop\Context\Manager::setApplicationContext
gemacht werden. Ein Beispiel wäre hier ein Import, der in einer Schleife Informationen abrufen will und diese durch einen simulierten ShopContext machen möchte.