Gibt es eine Möglichkeit, dass wenn man den „In den Warenkorb“ - Button drückt, erst alle Artikel die bereits im Warenkorb liegen, gelöscht werden? (Am liebsten anhand eines definierten Attributes einer speziellen Form)
Wie kann ich im Listing Artikel aus dem Warenkorb ausgeben lassen? Mir reicht Ordernumber und Menge.
Ergänzend dazu muss ich sagen, dass der Shop lediglich die Funktion hat, ein Array von ordernumbers und values in den Warenkorb zu legen, welche vorher nach verschiedenen Parametern zusammengestellt werden.
Wenn ich die Artikel nun in den Warenkorb gelegt habe und wieder zurück klicke und wieder die Artikel in den Warenkorb lege, dann sind alle Artikel 2x drin. Es müsste nur so sein, dass immer nur die Artikel im Warenkorb sein dürfen, die man zuletzt zusammengestellt hat und über das array per sAddAccessoires übergibt.
Hoffe das ist einigermaßen verständlich ausgedrückt.
Ich habe jetzt einfach zu Testzwecken das SwagGlobalVariables - Plugin genommen und die .php angepasst und versucht so umzusetzen. Leider funktioniert das so allerdings nicht. Habe ich da irgendwas grundlegendes falsch?
Den Aufruf von Add kannst Du ja schon mal sparen - die Action wird ja so oder so aufgerufen.
Edit: Sollte so gehen - aber bitte nicht die Action nachbauen und gar nicht den forward! Das wird ja später regulär ausgeführt.
Danke schonmal! Wie müsste die Plugin Struktur denn aussehen? Habe jetzt mal versucht, das ganze anhand des Controller Beispiel Plugin (https://developers.shopware.com/developers-guide/controller/#example) zu versuchen, aber da erhalte ich direkt einen 500- Fehler beim aktivieren des Beispiel-Plugins.
So funktioniert das jedoch auch nicht (es werden keine Artikel mehr hinzugefügt & auch keine gelöscht)
public function onPreDispatchCheckout(\Enlight_Event_EventArgs $args)
{
/** @var \Shopware_Controllers_Frontend_Checkout $controller */
$controller = $args->get('subject');
if ($controller->Request()->getActionName() == 'addAccessories') {
$basket = $this->getBasket();
foreach ($basket['content'] as $item) {
$this->basket->sDeleteArticle($item['id']);
}
}
}