В Magento 1.9, как я могу установить пользовательское поле для заказа?


Мне нужно иметь еще одно дополнительное поле для каждого заказа. Я могу добавить этот атрибут с помощью этого кода:

<?php
$installer = $this;
$installer->startSetup();

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$setup->addAttribute('order', 'order_dropship_export_status', array(
        'position'          => 1,
        'type'              => 'text',
        'label'             => 'order_dropship_export_status',
        '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,

));

$installer->endSetup();

И это поле добавляется в таблицу атрибутов eav_attribute в Magento. Однако, когда я устанавливаю его с помощью:

$order = Mage::getModel("sales/order") -> load($a_ids[0]);
$order -> setOrderDropshipExportStatus("XXXXXX");
$order -> save();

Он нигде не сохранен. Где и как я могу сохранить этот атрибут для заказа?

Author: Vladimir Despotovic, 2017-10-13

1 answers

Вы проверили свой config.xml настройки? Убедитесь в правильности настроек.

MyPack/CustomStatus/etc/config.xml

<global> 
    <resources>
        <customstatus_setup>
            <setup>
                <module>MyPack_CustomStatus</module>
                <class>Mage_Sales_Model_Resource_Setup</class>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </customstatus_setup>
        <customstatus_write>
            <connection>
                <use>core_write</use>
            </connection>
        </customstatus_write>
        <customstatus_read>
            <connection>
                <use>core_read</use>
            </connection>
        </customstatus_read>
    </resources>
     <fieldsets>
        <sales_convert_quote>                           
            <order_dropship_export_status><to_order>*</to_order></order_dropship_export_status>
        </sales_convert_quote>

        <sales_convert_order>                                              
            <order_dropship_export_status><to_quote>*</to_quote></order_dropship_export_status>
        </sales_convert_order>
    </fieldsets>
</global>

MyPack/CustomStatus/sql/customstatus_setup/install-1.1.0.php

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

$installer->addAttribute("order", "order_dropship_export_status", array("type"=>"varchar"));
$installer->addAttribute("quote", "order_dropship_export_status", array("type"=>"varchar"));
$installer->endSetup();

Теперь вы можете получить доступ к этому пользовательскому файлу, используя:

//set value
$order->setData('order_dropship_export_status', 'Your Value');
$order->save();

//get value
$order->getData('order_dropship_export_status');
 0
Author: batMask, 2018-02-23 10:57:35