Ich möchte ein Attribut zur Bestellung hinzufügen, das für den Kunden nicht sichtbar ist. Ich möchte es nur in der Datenbank verwenden und einen bestimmten Wert für jede Bestellung speichern. Ich möchte die Reihenfolge entsprechend diesem Wert drucken. Wie kann ich ein Bestellattribut in Magento hinzufügen? Das Attribut entspricht dem Status der Bestellung. Weiter, wenn ich dieses Attribut in Admin/Sales/Orders anzeigen möchte, wie kann ich das tun?Hinzufügen eines neuen Attributs zur Bestellung in Magento
Antwort
Angenommen, Sie möchten my_custom_input_field
zu Ihrer Bestellung hinzufügen und ein Feld zu Ihrer Admin-Bestellseite hinzufügen (um das Feld zum Frontend hinzuzufügen, müssen Sie nur das Eingabefeld zur Frontvorlage hinzufügen und den Beobachter überprüfen)
In /app/code/local/MageIgniter/CustomOrderStatus/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<MageIgniter_CustomOrderStatus>
<version>1.1</version>
</MageIgniter_CustomOrderStatus>
</modules>
<global>
<fieldsets>
<sales_convert_quote>
<my_custom_input_field><to_order>*</to_order></my_custom_input_field>
</sales_convert_quote>
<sales_convert_order>
<my_custom_input_field><to_quote>*</to_quote></my_custom_input_field>
</sales_convert_order>
</fieldsets>
<helpers>
<customorderstatus>
<class>MageIgniter_CustomOrderStatus_Helper</class>
</customorderstatus>
</helpers>
<models>
<customorderstatus>
<class>MageIgniter_CustomOrderStatus_Model</class>
<resourceModel>customorderstatus_mysql4</resourceModel>
</customorderstatus>
</models>
<resources>
<customorderstatus_setup>
<setup>
<module>MageIgniter_CustomOrderStatus</module>
<class>Mage_Sales_Model_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</customorderstatus_setup>
<customorderstatus_write>
<connection>
<use>core_write</use>
</connection>
</customorderstatus_write>
<customorderstatus_read>
<connection>
<use>core_read</use>
</connection>
</customorderstatus_read>
</resources>
<events>
<adminhtml_sales_order_create_process_data_before>
<observers>
<customorderstatus>
<type>singleton</type>
<class>customorderstatus/observer</class>
<method>saveCustomData</method>
</customorderstatus>
</observers>
</adminhtml_sales_order_create_process_data_before>
</events>
<blocks>
<customorderstatus>
<class>MageIgniter_CustomOrderStatus_Block</class>
</customorderstatus>
</blocks>
</global>
</config>
In /app/code/local/MageIgniter/CustomOrderStatus/sql/customorderstatus_setup/mysql4-install-1.1. php
<?php
$installer = $this;
$installer->startSetup();
$installer->addAttribute("order", "my_custom_input_field", array("type"=>"varchar"));
$installer->addAttribute("quote", "my_custom_input_field", array("type"=>"varchar"));
$installer->endSetup();
In /app/code/local/MageIgniter/CustomOrderStatus/Model/Observer.php
class MageIgniter_CustomOrderStatus_Model_Observer
{
public function saveCustomData($event)
{
$quote = $event->getSession()->getQuote();
$quote->setData('my_custom_input_field', $event->getRequestModel()->getPost('my_custom_input_field'));
return $this;
}
}
(Sie vermeiden Änderungen an Kernstandard machen sollte - Sie sollten um diese einige der Forschung auf dem Weg zu tun)
In /app/design/adminhtml/default/default/template/sales/order/view/info.phtml<?php if($_order->getMyCustomInputField()): ?>
<tr>
<td class="label"><label><?php echo Mage::helper('sales')->__('My Custom Input Field') ?></label></td>
<td class="value"><strong><?php echo $_order->getMyCustomInputField() ?></strong></td>
</tr>
<?php endif; ?>
in/app/design/adminhtml/default/default/template/Vertrieb/Auftrag/erstellen /form/account.phtml
(hinzufügen, um die value="<?php echo Mage...>"
ändern Frontend)
<input id="my_custom_input_field" name="my_custom_input_field" value="<?php echo Mage::getSingleton('adminhtml/session_quote')->getQuote()->getMyCustomInputField() ?>" class="input-text" type="text">
Danke für die Freigabe eines Codes. Ich möchte hier eine Erweiterung erwähnen, die es weniger technisch versierten Personen ermöglicht, zusätzliche Checkout-Felder mit einem einzigen Klick aus dem Backoffice hinzuzufügen. http://www.fmeextensions.com/magento-additional-checkout-attributes-fields.html –
Wie fügen Sie hinzu/schreiben Sie die benutzerdefinierte Spalte in die Tabelle sales_flat_order_grid auch? – user2963379
@ user2963379 ... Magento wird automatisch aktualisiert, wenn für Sie bei der Aktualisierung der Spalte mit dem gleichen Namen in sales_flat_order –
Hinzufügen von benutzerdefinierten umfasst mehrere Schritte, um zu bestellen Attributen. Zuerst müssen Sie der Datei ein Textfeld hinzufügen. Dann müssen Sie dieses Feld in Angebots- und Auftragstabellen hinzufügen und Observer-Klassen erstellen. Einige weitere Dateien wie custom.xm
l und order.phtml
müssen bearbeitet werden, um dieses Attribut anzuzeigen. Siehe
Für komplett Tutorial,
- 1. Magento - Hinzufügen eines benutzerdefinierten Attributs zur Bestellung
- 2. Magento API V2 - Hinzufügen eines zusätzlichen Attributs zur API-Antwort
- 3. Hinzufügen eines benutzerdefinierten Attributs mit Magento-Shop
- 4. Grails: Hinzufügen eines neuen Attributs in Select
- 5. Hinzufügen eines neuen Referenzblocks zu Magento
- 6. Hinzufügen eines Attributs zur Entität in den Core-Daten
- 7. Magento: Ausgabe eines Attributs als Link
- 8. Neue Tabelle in Magento hinzufügen Neue Bestellung erstellen Abschnitt
- 9. Magento: Quote in Bestellung umwandeln
- 10. Erweitern eines Attributs durch Hinzufügen einer Eigenschaft
- 11. Hinzufügen eines neuen Arbeitsblatts zur Arbeitsmappe in xlsxwriter
- 12. Wie erhalten Sie die Optionen eines konfigurierbaren Attributs in Magento?
- 13. Hinzufügen eines benutzerdefinierten Attributs zu json.net
- 14. Magento: Festlegen eines benutzerdefinierten Attributs für das Verkaufs-/Auftragsversandmodell
- 15. Hinzufügen eines neuen Felds zum Erstellen eines Kontoformulars in Magento 2
- 16. Speichern von zusätzlichen Daten mit einer Bestellung in Magento
- 17. Magento kann keine Bestellung machen
- 18. Hinzufügen eines Kategorienattributs in Magento 1.8.1
- 19. Hinzufügen einer neuen "Sortieren nach" in Magento 1.9
- 20. Android Hinzufügen eines neuen Kalenders
- 21. ZF2 Hinzufügen eines benutzerdefinierten Attributs zur Option in einem ausgewählten Formularelement
- 22. Hinzufügen eines neuen Attributs (Elements) zum JSON-Objekt mithilfe von JavaScript
- 23. Rails Shoppe Gem: kann kein Produkt zur Bestellung hinzufügen
- 24. Aktualisieren des Attributs im Magento-Installationsskript
- 25. Hinzufügen eines Attributs zu einem Objekt in PHP
- 26. Hinzufügen eines neuen Ordners in FolderBrowserDialog
- 27. Hinzufügen einer neuen Methode zur Array-Klasse
- 28. Hinzufügen einer neuen Zeile zur SerializeArray-Ausgabe
- 29. Hinzufügen von Spalten zur neuen DataRow
- 30. Hinzufügen eines vorhandenen Ordners zur TFS-Quellcodeverwaltung
@MJG: Ist Ihr Problem gelöst? – Rathinam