Mein typischer Anwendungsfall für Gutschriften sind Preisanpassungen (Versandanpassung, Preisnachlass usw.). Es ist selten, dass ich es für die Gesamtrendite verwende.
Es ist seltsam für mich, dass das Standardverhalten von Magento darin besteht, dass ein CreditMemo alle Produkte zurücksendet und den gesamten Versand erstattet. Selbst wenn es Rücksendungen gibt, ist es selten, dass der Versand auch erstattet wird.
Es wäre besser (und sicherer), wenn das CreditMemo standardmäßig 0 US-Dollar (keine Produkte erstattet und kein Versand erstattet) verwendet, sodass Administratoren ausdrücklich angeben, was erstattet wird (standardmäßig nichts). Andernfalls ist es beispielsweise zu einfach, eine Gutschrift zu erstellen, die den Versand erstattet, aber die gesamte Bestellung erstattet!
Gibt es eine Konfiguration oder Anpassung, die es unterstützen würde, ein CreditMemo standardmäßig auf $ 0 zu setzen?
quelle
Antworten:
Ich bin mir nicht sicher, ob Sie das erreichen können, was Sie wollen, ohne die Magento-Basisfunktionalität zu erweitern. Ich musste etwas Ähnliches tun und das habe ich getan: Zuerst habe ich sales_order_creditmemo_totals für automatische Gutschriften umgeschrieben (vielleicht brauchst du das nicht, damit du zum zweiten Teil gehen kannst):
In meinem Modul config.xml:
Dann in Block / Adminhtml / Sales / Creditmemo.php
Wie Sie sehen, habe ich dies getan, um Gutschriften für Bestellungen mit Kundenguthaben zu erstellen. Daher habe ich auch sales_order_totals und sales_order_invoice_totals umgeschrieben, aber ich denke, Sie müssen dies nicht tun.
Zweitens: Ich habe auch eine eigene Vorlage hinzugefügt, um einige Funktionen während der manuellen Erstellung der Gutschrift hinzuzufügen, sodass der Administrator entscheiden kann, wie diese generiert werden sollen. Dafür habe ich eine items.phtml unter app / design / adminhtml / default / default / template / MODUL_NAME / order / creditmemo / create / items.phtml erstellt. In dieser phtml habe ich einige Eingabefelder hinzugefügt, um die Standardwerte zu ändern. Ich habe in meinem Modul auch einen Admin-Controller unter Company_CustomerCredit_Adminhtml_CustomerController hinzugefügt
quelle