# Kann ich ein zusazlich attribute zum ajaxAddArticleCart aktion passen?

**URL:** <https://forum.shopware.com/t/kann-ich-ein-zusazlich-attribute-zum-ajaxaddarticlecart-aktion-passen/49583>\
**Category:** Programmierung\
**Created:** [20. November 2017 um 11:02 UTC](https://forum.shopware.com/t/kann-ich-ein-zusazlich-attribute-zum-ajaxaddarticlecart-aktion-passen/49583 "2017-11-20T11:02:47Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![flynorc](https://avatars.discourse-cdn.com/v4/letter/f/90db22/32.png) [@flynorc](https://forum.shopware.com/u/flynorc)\
**Post date:** [20. November 2017 um 11:02 UTC](https://forum.shopware.com/t/kann-ich-ein-zusazlich-attribute-zum-ajaxaddarticlecart-aktion-passen/49583/1 "2017-11-20T11:02:47Z")

</div>

Hi!

Ich habe ein Produkt, wo ein zusazlich Attribute gespeichert soll sein, wenn dieser Produkt in Warenkorb gelegt ist. Und ich sehe das wenn „Add to cart“ geklickt ist, ist normaleweise

checkout/ajaxAddArticleCart angerufen, mit sAdd attribute (article number) und ein callback (diese callback funktion verstehe ich noch nicht ganz genau).&nbsp;  
Gibts ein möglichkeit das ich zusatlich auch ein nummer passe und dan die nummer zum artikel in warenkorb (und später in Bestellung) sehen kann?

Weil ich muss ein Email schicken wenn bestellung bezahlt ist, und inhalt ist abhengig von diese zusatlich Attribute.

Vielen dank für alle Infos!

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [20. November 2017 um 11:54 UTC](https://forum.shopware.com/t/kann-ich-ein-zusazlich-attribute-zum-ajaxaddarticlecart-aktion-passen/49583/2 "2017-11-20T11:54:51Z")

</div>

Das geht. Du müsstest dir ein Plugin schreiben, dass folgendesn macht:

- Freitextfeld an der Tabelle s\_order\_basket\_attributes und s\_order\_details\_attributes&nbsp;anlegen
- Template der Buybox&nbsp;erweitern, sodass du dort eine Zahl eintragen kannst. Innerhalb des Tags.
- die&nbsp;ajaxAddArticleCart Action hooken, sodass nach dem ausführen der Action deine Zahl in dein Freitextfeld geschrieben wird
- in der Klasse sBasket::saveOrder gibt es irgendwo ein Event das gefeuert wird. Da müsstest du dich dran hängen in dein Freitextfeld aus der s\_order\_basket\_atttributes in die s\_order\_detail\_attributes übernehmen. Ich glaube der Eintrag in der s\_order\_baskeit wird irgendwann im Laufe der saveOrder Methode gelöscht. Evtl. musst du da mit zwei Events arbeiten. 1.&nbsp;Event Freitextfeld auslesen bevor es gelöscht wird. 2. Event Freitextfeld füllen nachdem die Order erstellt wurde.

Ich denke so müsste es theoretisch funktionieren. Habe mir den Prozess mit der Order in Shopware nicht genau angeschaut. Keine Garantie das es nicht irgendwo ne kleine Abweichung gibt.

---

<div class="post-metadata">

**Author:** ![flynorc](https://avatars.discourse-cdn.com/v4/letter/f/90db22/32.png) [@flynorc](https://forum.shopware.com/u/flynorc)\
**Post date:** [20. November 2017 um 12:04 UTC](https://forum.shopware.com/t/kann-ich-ein-zusazlich-attribute-zum-ajaxaddarticlecart-aktion-passen/49583/3 "2017-11-20T12:04:02Z")

</div>

Vielen dank für deine antwort!  
Diese „extra“ field kommt schon von system, weil das ein referenz zum eine andere custom tabelle entity ist. Ich versuche das mit deine hilfreiche punkte zum machen und wenn es nicht weiter geht melde ich nochmal und suche mehr hilfe 🙂

---

<div class="post-metadata">

**Author:** ![flynorc](https://avatars.discourse-cdn.com/v4/letter/f/90db22/32.png) [@flynorc](https://forum.shopware.com/u/flynorc)\
**Post date:** [11. Dezember 2017 um 11:52 UTC](https://forum.shopware.com/t/kann-ich-ein-zusazlich-attribute-zum-ajaxaddarticlecart-aktion-passen/49583/4 "2017-12-11T11:52:24Z")

</div>

Ich versuche jetzt wieder das gleiche und leider finde ich nich die richtige events…

Ich habe form so gemacht das es nach checkout/ajaxAddArticleCart geht und _sAdd_ parameter hat ein produkt id und _cPhotoId_ parameter ist gleich photo id. Jetzt habe ich 2 problemen:

1. wenn ein produkt mit gleiche product id schon in warenkorb ist, dann ist $chkBasketForArticle nicht false und deswegen ist diese code ausgeführt (detei engine/Shopware/Core/sBasket.php

deswegen ist dann kein neue „zusatliche“ produkt in korb aber nur gleiche mit $quantity vergrosern. Ist es möglich für nur ein produkt sagen das wenn benutzer mehrfach gleiche produkt in korb hinlegt, das es als mehrere produkte bleibt? Ich habe gechekt function checkIfArticleIsInBasket, aber diese query kann ich nicht mit ein event erweitern…, weil event gibt nur ein notify Shopware\_Modules\_Basket\_AddArticle\_CheckBasketForArticle und wenn ich richtig verstehe diese [Shopware events](https://developers.shopware.com/developers-guide/event-guide/) tutorial, kann ich mit notify nix ändern?

&nbsp;

1. in funktion sAddArticle&nbsp; (auch sBasket.php datei)&nbsp; gibt 3 events:

- Shopware\_Modules\_Basket\_AddArticle\_Start (als notifyuntil)
- Shopware\_Modules\_Basket\_AddArticle\_FilterSql (als filter)
- Shopware\_Modules\_Basket\_AddArticle\_Added (als notify)

wenn ich richtig verstehe, kann ich erste benutzen wenn ich ein product in warenkorb nicht haben will  
zweite wenn ich produkt selber ändern will  
und für mein zweck soll ich dann Shopware\_Modules\_Basket\_AddArticle\_Added nehmen und hier nochmal von datenbank model bei ID finden, attribute erstellen (von request), und speichern?  
gibt es a bessere möglichkeit?

&nbsp;

Vielen dank für hilfe.

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [13. Dezember 2017 um 14:22 UTC](https://forum.shopware.com/t/kann-ich-ein-zusazlich-attribute-zum-ajaxaddarticlecart-aktion-passen/49583/5 "2017-12-13T14:22:00Z")

</div>

1. Das ist richtig. Mit dem Event kannst du nichts Ändern. Die letzte Lösung ist ein Hook zu nutzen und die Methode checkIfArticleIsInBasket()&nbsp;zu ersetzen oder mit einem After Hook. Danach noch eine zusätlziche Prüfung durchzuführen. Das Hook System wir auf dem von dir genannten Link ganz unten berschrieben.

2. Es gibt bestimmt noch andere Lösungen. Aber ich denke du hast dir schon die beste und sauberste überlegt. Ich würde es genauso machen.
