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.