Artikel werden mehrfach zum Warenkorb hinzugefügt

Wenn ich auf der Produkt-Detail-Seite auf den “In den Warenkorb” Button klicke, wird der Artikel teilweise bis zu 50 mal in den Warenkorb gelegt. In den Chrome Entwickler-Tools konnte ich nachgucken, dass es daran liegt, dass der Request ganz oft abgeschickt wird (siehe Screenshot). Jemand eine Idee woran das liegt? Unten ist auch noch ein Screenshot des gerenderten Formulars. Soweit ich weiß habe ich nichts im Theme daran geändert.

Requests

Das Problem ist, dass ich folgende Template-Erweiterung habe, um in den Artikel-Listings Warenkorb-Buttons anzuzeigen:

{extends file='parent:frontend/listing/product-box/product-price.tpl'}

{* Default price *}
{block name='frontend_listing_box_article_price_default' append}
    
        
            
            
            
            
            
                
                    
                
            
        
    
{/block}

Diese werden aber jetzt nicht nur im Listing angezeigt, sondern auch auf der Artikel-Detail Seite in den Bereichen „Ähnliche Artikel“, „Kunden kauften auch“ und „Kunden haben sich ebenfalls angesehen“. Das soll auch so sein. Allerdings selektiert das jQuery anscheinend jetzt jedes Formular mit data-add-article=„true“ und schickt für jedes einen Request ab. Wenn ich bei dem Artikel also auf „In den Warenkorb“ klicke, wird der Artikel auch für jeden Artikel zum Warenkorb hinzugefügt, der in den oben genannten Bereichen vorhanden ist.

Wie kann ich das lösen, außer die Buttons in den Bereichen auszublenden? In den Listings wird nämlich bei einem Klick der Artikel auch nur einmal zum Warenkorb hinzugefügt und nicht für jeden Artikel im Listing ein mal.

Ich stand vor dem gleichen Problem und konnte eine Lösung dafür finden.
Der Thread ist schon etwas älter aber eventull kann man dennoch damit jemanden helfen.

Mit der Lösung muss man entweder den Button auf der Detailseite oder den Button in der Produkt-Box ändern.

(Beispiel Produkt-Box)
Schritt 1:

data-add-article="true"

Diesen Attribut muss man bei der Form oder je nachdem bei dem Button ändern, z.B. in:

data-box-add-article="true"

Schritt 2:

Das Attribut im StateManager hinterlegen (Javascript):

StateManager.addPlugin('*[data-box-add-article="true"]', 'swAddArticle');

Und fertig!

1 „Gefällt mir“