Zum Hauptinhalt springen

Transmission Events

ConnectorTransferEvent

Wird gefeuert, bevor der Logout-Event ausgelöst wird – also im Moment, in dem der Käufer auf "Transfer" klickt.

EigenschaftWert
Event-Nameagiqon_connector.connector.transfer
PHP-KlasseAgiqonConnector\Connector\Event\ConnectorTransferEvent
KonstanteConnectorTransferEvent::EVENT_NAME

Verfügbare Daten

MethodeRückgabeBeschreibung
getConnectorSession()ConnectorSessionAktuelle Sitzung (hookUrl, additionalFields, transmissionId, …)
getCart()CartWarenkorb zum Zeitpunkt des Transfers (read-only)
getSalesChannelContext()SalesChannelContextShopware-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.

EigenschaftWert
Event-Nameagiqon_connector.transmission.cart_line_item_resolve
PHP-KlasseAgiqonConnector\Connector\Transmission\Event\ConnectorCartLineItemResolveEvent
KonstanteConnectorCartLineItemResolveEvent::EVENT_NAME

Verfügbare Daten

MethodeRückgabeBeschreibung
getItem()arrayRohes LineItem-Array aus dem deserialisierten Payload
getType()stringLineItem-Typ ($item['type']), z. B. 'product'
getSalesChannelContext()SalesChannelContextShopware-Kontext für den Warenkorb-Rebuild
setResolvedLineItem(LineItem $item)voidAufgelöstes LineItem-Objekt zurückgeben
getResolvedLineItem()LineItem|nullGesetztes 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.