2016-07-26 11 views
0

Wie kann ich einen Artikel programmatisch zum Warenkorb hinzufügen, zusammen mit einem vordefinierten Text, der nach der Bestellung im Kommentarverlauf angezeigt wird? Dieser vordefinierte Textkommentar sollte vom Kunden nicht bearbeitet werden können. Es wird im Wesentlichen als Metainformation über die Bestellposition verwendet, über die die Person, die sie erfüllt, informiert werden muss.Programmgesteuertes Hinzufügen von Bestellkommentarverlauf in Magento

Wenn dies nicht möglich ist, gibt es eine andere Möglichkeit, den vordefinierten Text zu diesem Zweck an den Warenkorb anzuhängen?

Antwort

0

Meine Lösung ...

Wenn Sie den Warenkorb, das Zitat Artikel-ID erhalten, dann eine Textdatei auf der Festplatte mit dem ID Zitat Artikel als Dateinamen erstellen . Serialisieren Sie die Daten, die Sie benötigen, in dieser Datei. Erstellen Sie dann einen Beobachter für das Ereignis sales_order_place_before. Die Anführungszeichen-ID wird an dieses Ereignis übergeben, sodass Sie auf diese Textdatei verweisen können.

Verwenden Sie keine Sitzung, um die Daten zu speichern, da die Artikel im Warenkorb bleiben, auch wenn sich der Benutzer abmeldet und sich später wieder anmeldet.

0

Der beste Weg für mich sollte sein, ein Produktattribut für diese Metainformationen zu erstellen und den Attributwert in einem benutzerdefinierten adminhtml-Design auf der Ansichtsauftragsseite anzuzeigen (oder die Lieferung anzuzeigen, die ich nicht kenne). Auf diese Weise müssen Sie keine Beobachter anlegen, Artikelattribute bestellen, ... Der Nachteil ist, dass wenn Sie die Informationen in Ihrem Produkt aktualisieren, der Wert auch in vergangenen Bestellungen aktualisiert wird. Abhängig davon, was Sie wollen, kann dies ein Problem sein.

+0

Der Text, den ich hinzufügen muss, wird für jede Bestellung anders sein. Würde Ihre Lösung in diesem Szenario funktionieren? – MakkyNZ

+0

Nein, das wäre für alle Bestellungen derselbe Text. Sie müssen also etwas mit Ereignissen/Beobachtern tun und speichern Sie die Daten in der Quote_item/Order_items. Sie sollten Artikel auf stackoverflow avout finden, die benutzerdefinierte Artikelattribute erstellen – JonaPkr

1

ich etwas Ähnliches zu tun, aber nicht genau das gleiche ...

ich ein Modul erstellt haben, wo ich hinzufüge, einige neue benutzerdefinierte Werte zu dem Zitat, wenn ein neues Produkt in den Warenkorb hinzugefügt

in dem Modul habe ich einen Beobachter, wenn:

<frontend> 
    <events> 
     <checkout_cart_product_add_after> 
      <observers> 
       <mymodule_addtocart_observer> 
        <class>mymodule_addtocart/observer</class> 
        <method>myMethod</method> 
       </mymodule_addtocart_observer> 
      </observers> 
     </checkout_cart_product_add_after> 

und in meinem Beobachter ich mein Zitat

public function myMethod(Varien_Event_Observer $obs) { 
     $item = $obs->getQuoteItem(); 
     $quote = $item->getQuote(); 
     $quote->setData("myattribute", "myvalue"); 
} 
aktualisieren

Ich denke, Sie können das gleiche Element im Beobachter aktualisieren.

Hoffe, es hilft ...

+0

Ich habe dies versucht, aber ich kann nicht sehen, wo "myattribute" in der Reihenfolge angezeigt wird. Ich sehe den Auftrag durch den Admin – MakkyNZ

+0

In meinem Modul habe ich zuerst den Attributwert in der SQL-Tabelle erstellt: '$ installer-> run (" ALTER TABLE '{$ installer-> getTable (' sales/quote ')} 'ADD' myattribute 'int DEFAULT NULL COMMENT' Beschreibung meines Attributs '; ");' – nano

Verwandte Themen