Transmission Events
ConnectorTransferEvent
Wird gefeuert, bevor der Logout-Event ausgelöst wird – also im Moment, in dem der Käufer auf "Transfer" klickt.
| Eigenschaft | Wert |
|---|---|
| Event-Name | agiqon_connector.connector.transfer |
| PHP-Klasse | AgiqonConnector\Connector\Event\ConnectorTransferEvent |
| Konstante | ConnectorTransferEvent::EVENT_NAME |
Verfügbare Daten
| Methode | Rückgabe | Beschreibung |
|---|---|---|
getConnectorSession() | ConnectorSession | Aktuelle Sitzung (hookUrl, additionalFields, transmissionId, …) |
getCart() | Cart | Warenkorb zum Zeitpunkt des Transfers (read-only) |
getSalesChannelContext() | SalesChannelContext | Shopware-Kontext des Käufers |
Beispiel
use AgiqonConnector\Connector\Event\ConnectorTransferEvent;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
#[AsEventListener(event: ConnectorTransferEvent::EVENT_NAME)]
final class MyTransferListener
{
public function __invoke(ConnectorTransferEvent $event): void
{
$cart = $event->getCart();
$session = $event->getConnectorSession();
// z. B. externe API benachrichtigen oder eigene Daten speichern
}
}
ConnectorCartLineItemResolveEvent
Wird beim Wiederherstellen des Warenkorbs aus dem Transmission-Payload gefeuert. Das passiert im Auto-Modus, wenn eine Shopware-Bestellung aus dem gespeicherten cartPayload erzeugt wird.
| Eigenschaft | Wert |
|---|---|
| Event-Name | agiqon_connector.transmission.cart_line_item_resolve |
| PHP-Klasse | AgiqonConnector\Connector\Transmission\Event\ConnectorCartLineItemResolveEvent |
| Konstante | ConnectorCartLineItemResolveEvent::EVENT_NAME |
Verfügbare Daten
| Methode | Rückgabe | Beschreibung |
|---|---|---|
getItem() | array | Rohes LineItem-Array aus dem deserialisierten Payload |
getType() | string | LineItem-Typ ($item['type']), z. B. 'product' |
getSalesChannelContext() | SalesChannelContext | Shopware-Kontext für den Warenkorb-Rebuild |
setResolvedLineItem(LineItem $item) | void | Aufgelöstes LineItem-Objekt zurückgeben |
getResolvedLineItem() | LineItem|null | Gesetztes LineItem-Objekt |
Eigene LineItem-Typen unterstützen
Ein Listener mit höherer Priorität als der Default-Handler kann eigene Typen (z. B. aus einem Plugin) auflösen:
use AgiqonConnector\Connector\Transmission\Event\ConnectorCartLineItemResolveEvent;
use Shopware\Core\Checkout\Cart\LineItem\LineItem;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
#[AsEventListener(event: ConnectorCartLineItemResolveEvent::EVENT_NAME, priority: 100)]
final class MyCustomLineItemResolver
{
public function __invoke(ConnectorCartLineItemResolveEvent $event): void
{
if ($event->getType() !== 'my_custom_type') {
return;
}
$item = $event->getItem();
$lineItem = new LineItem(
$item['id'],
'my_custom_type',
$item['referencedId'] ?? null,
(int) ($item['quantity'] ?? 1)
);
$event->setResolvedLineItem($lineItem);
}
}
hinweis
Wird kein Listener das Event auflösen (kein setResolvedLineItem() aufgerufen), wird die Position beim Warenkorb-Rebuild stillschweigend übersprungen.