Hallo zusammen,
ich arbeite derzeit an einem benutzerdefinierten Plugin für Shopware und habe ein Problem im Zusammenhang mit Aktionen/Promotions im Warenkorb festgestellt. Hier ist die Situation:
Wenn ich ein Produkt über mein benutzerdefiniertes Plugin programmatisch zum Warenkorb hinzufüge (mit der folgenden Logik: ), wird keine aktive Promotion ausgelöst. Wenn ich anschließend jedoch ein Produkt über den standardmäßigen Shopware-Prozess zum Warenkorb hinzufüge, wird die Promotion sowohl auf das neu hinzugefügte Produkt als auch auf das ursprünglich über meine benutzerdefinierte Methode hinzugefügte Produkt angewendet.
Das deutet darauf hin, dass meinem benutzerdefiniert hinzugefügten Produkt etwas Wesentliches fehlt, damit die Promotion sofort funktioniert.
Es ist erwähnenswert, dass während des Prozesses keine Fehler auftreten – weder beim Hinzufügen des Produkts zum Warenkorb über meine benutzerdefinierte Logik noch beim Einrichten oder Anwenden der Promotions.
Hat jemand ein ähnliches Problem gehabt? Gibt es bestimmte Services, Events oder Methoden, die ich aufrufen muss, damit Promotions ordnungsgemäß auf benutzerdefiniert hinzugefügte Produkte angewendet werden?
Ich wäre dankbar für jeden Hinweis oder Vorschlag, wie ich dieses Problem lösen kann. Vielen Dank im Voraus!
Hier ist der Code mit meiner benutzerdefinierten Logik:
$lineItem = $this->factory->create([
'type' => LineItem::PRODUCT_LINE_ITEM_TYPE,
'referencedId' => $variationId,
'quantity' => 1,
'payload' => [
'customPayload' => 'myCustomPayload',
'index' => $index,
],
], $context);
$lineItem->setStackable(false);
$this->cartService->add($cart, $lineItem, $context);
Mit besten Grüßen