Entfernen Sie einen Artikel aus dem Admin-Bestellangebot und fügen Sie programmgesteuert einen neuen Artikel hinzu

magento.stackexchange https://magento.stackexchange.com//questions/70109

  •  13-12-2019
  •  | 
  •  

Frage

Ich arbeite an einem Projekt, das optimiert werden muss admin Auftragserstellung funktion von Magento.

Ich muss einen Artikel entfernen und dann programmgesteuert einen weiteren Artikel hinzufügen, während ich eine Bestellung erstelle.

Zum Beispiel sind bereits einige Artikel zur Bestellung hinzugefügt, jetzt, wenn die Produkt-ID mit übereinstimmt my_product_id, entfernen Sie dieses Produkt von quote und neues Produkt hinzufügen (my_new_product) Bestellen.

Es wird nicht von sein observer, da ich eine hinzufügen muss Schaltfläche um diese Aktion aufzurufen und die Arbeit zu erledigen.

Ich habe erfolgreich eine Schaltfläche hinzugefügt und mit meinem benutzerdefinierten Controller verknüpft.

Ich habe viele Links durchgesehen, aber kein Glück.

Bitte schlagen Sie vor.

War es hilfreich?

Lösung 2

Nach dem Graben für ein paar Tage konnte ich das Ergebnis erzielen.

ein großer dank von @lloiacono , um mich auf die richtige Richtung zu zeigen, jedoch war seine / ihre Antwort nicht gut genug.

in meiner Controller-Datei:

generasacodicetagpre.

Andere Tipps

Update

Da Sie nur die vorhandene Admin-Auftragserstellung optimieren müssen, an die Sie sich anschließen können: verkauf_bestellen_speichern oder adminhtml-Verkauf -Bestellung - Prozessdaten erstellen aber stellen Sie sicher, dass Sie dies in die <adminhtml> knoten in Ihrem config.xml.

Einmal in deinem Beobachter.php können Sie die gewünschten Elemente entfernen, ich würde stattdessen versuchen, mich auch in der an ein Zitatereignis anzuschließen <adminhtml> knoten und entfernen Sie dann den Artikel, wenn möglich, auf Angebotsebene.

So fügen Sie dem Angebot einen Artikel hinzu:

$quote->addProduct($product, new Varien_Object($eventArgs));
$quote->save();

So entfernen Sie einen Artikel aus dem Angebot:

$quote->removeItem($item->getItemId())->save();

Dann können Sie Magento die Admin-Bestellung erstellen lassen:

$adminSalesOrderCreate = Mage::getSingleton('adminhtml/sales_order_create');
$adminSalesOrderCreate->setQuote($quote)->save();

Hier gibt es eine sehr vollständige Antwort: https://magento.stackexchange.com/a/15050/5913

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top