2016-04-28 8 views
0

Ich habe Probleme beim Abrufen und Festlegen eines benutzerdefinierten Attributs in der Reihenfolge.Speichern Sie benutzerdefinierte Attribute in der Reihenfolge

Ich habe den folgenden SQL-Skript:

<?php 

$installer = $this; 
$installer->startSetup(); 

$setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 

$attribute = array(
    'position'   => 1, 
    'type'    => 'text', 
    'input'    => 'varchar', 
    'label'    => 'My Order Field', 
    'global'   => 1, 
    'visible'   => 1, 
    'required'   => 0, 
    'user_defined'  => 1, 
    'searchable'  => 0, 
    'filterable'  => 0, 
    'comparable'  => 0, 
    'visible_on_front' => 1, 
    'visible_in_advanced_search' => 0, 
    'unique'   => 0, 
    'is_configurable' => 0, 
    'position'   => 1, 
); 

$setup->addAttribute('order', 'my_order_field', $attribute); 

$installer->endSetup(); 

ich das Attribut in der Tabelle eav dies nach dem Laufen zu sehen.

Ich habe dann einen Beobachter eingerichtet, der ausgeführt wird, wenn ein neuer Auftrag gespeichert wurde, von dem ich auch bestätigt habe, dass er läuft (mit den die() Anweisungen).

Ich habe jetzt entfernt diejenigen Aussagen sterben und verändert den Bestellcode dazu sparen:

$event = $observer->getEvent(); 
$order = $event->getOrder(); 
$order->setMyOrderField('Hello'); 

Und in meinem Admin-Backend Abschnitt I eine Zeile hinzugefügt haben, die Daten abzurufen:

<tr> 
     <td class="label"><label><?php echo Mage::helper('sales')->__('My Order Field') ?></label></td> 
     <td class="value"><strong><?php echo $_order->getMyOrderField(); ?></strong></td> 
    </tr> 

Aber wenn ich eine neue Bestellung durch nichts erscheint, kann mir jemand sagen, was ich falsch mache in Bezug auf das Speichern von Daten zu meinem benutzerdefinierten Attribut?

Dank

+0

Ist das Feld in sales_flat_order Tabelle zur Verfügung? –

Antwort

0
<?php 

$installer = $this; 
$installer->startSetup(); 

$setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 

$attribute = array(
    'position'   => 1, 
    'type'    => 'text', 
    'input'    => 'varchar', 
    'label'    => 'My Order Field', 
    'global'   => 1, 
    'visible'   => 1, 
    'required'   => 0, 
    'user_defined'  => 1, 
    'searchable'  => 0, 
    'filterable'  => 0, 
    'comparable'  => 0, 
    'visible_on_front' => 1, 
    'visible_in_advanced_search' => 0, 
    'unique'   => 0, 
    'is_configurable' => 0, 
    'position'   => 1, 
); 


$setup->addAttribute('order', 'my_order_field', $attribute); 
$setup->addAttribute('quote', 'my_order_field', $attribute); 

$installer->endSetup(); 

und

$event = $observer->getEvent(); 
$order = $event->getOrder(); 
$order->setMyOrderField('Hello'); 
$order->save(); 
+0

Nur 3 Buchstaben, die nicht Code sind, bin ich ziemlich sicher, dass Sie besser tun können, um Ihre Antwort etwas zu erklären – nicolallias