web-dev-qa-db-de.com

Magento - Benutzerdefiniertes Attribut zur Bestellung hinzufügen

Ich versuche, meinen Bestellungen ein benutzerdefiniertes Feld hinzuzufügen. In diesem Moment fand ich den Beitrag, der mir beim Erstellen eines solchen Attributs in meiner Datenbank half: http://fabrizioballiano.net/2011/11/15/create-a-custom-order-attribute-in -magento/

require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));

$installer = new Mage_Sales_Model_Mysql4_Setup;
$attribute  = array(
   'type'          => 'int',
   'backend_type'  => 'text',
   'frontend_input' => 'text',
   'is_user_defined' => true,
   'label'         => 'My Label',
   'visible'       => true,
   'required'      => false,
   'user_defined'  => true,
   'searchable'    => true,
   'filterable'    => true,
   'comparable'    => true,
   'default'       => 0
);
$installer->addAttribute('order', 'special_attribute', $attribute);
$installer->endSetup();

Nachdem ich den obigen Code ausgeführt und mehrere Bestellungen erstellt habe, kann ich alle Bestellungen durchlaufen und den Standardwert für jede Bestellung sehen. 

Die Frage ist, wie kann ich die gewünschten Daten in diesem Feld speichern? Wie kann ich solche Daten abrufen?

Vielen Dank!

18
MatheusJardimB

Fügen Sie dies dem globalen Gültigkeitsbereich in config.xml hinzu. Setzen Sie dann einfach das Attribut im Angebot - es wird automatisch in der Bestellung in der Angebots-zu-Reihenfolge-Konvertierung übertragen.

<global>
...
    <fieldsets>
        <sales_convert_quote>
            <your_special_attribute>
                <to_order>*</to_order>
            </your_special_attribute>
        </sales_convert_quote>
    </fieldsets>
...
</global>

Sie können das Attribut jederzeit über den magischen Getter/Setter abrufen/setzen, z.

$quote->getYourSpecialAttribute()
$order->getYourSpecialAttribute()

$quote->setYourSpecialAttribute()
28
Michael Leiss

Nachdem Sie der billing.phtml-Datei ein Textfeld hinzugefügt und das Feld in Angebot- und Auftragstabellen gespeichert haben, können Sie das Attribut anzeigen. Sie können das Feld unter Mein Konto -> Bestellung anzeigen anzeigen. Nehmen Sie die folgenden Änderungen in custom.xmlfie vor. 

<?xml version="1.0"?>
<layout version="0.1.0">
    <sales_order_view>
        <reference name="my.account.wrapper">
            <block type="custom/custom_order" name="custom.order" template="custom/order.phtml" after='sales.order.info' />
        </reference>
    </sales_order_view>
</layout>

Weitere Informationen finden Sie im Blog So fügen Sie in Magento benutzerdefinierte Attribute hinzu

0
Henry Roger