2013-07-11 3 views
16

Я пытаюсь добавить пользовательское поле в свои заказы. В этот момент, я нашел пост сильфон, который помог мне создать такой атрибут в моей базе данных: http://fabrizioballiano.net/2011/11/15/create-a-custom-order-attribute-in-magento/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(); 

После выполнения кода выше, и создание нескольких заказов, я могу перебрать все заказы и видеть значение по умолчанию для каждого порядка.

Вопрос в том, как хранить данные, которые я хочу в этом поле? Как я могу получить такие данные?

Спасибо!

ответ

27

Добавьте это в область глобальных объектов в config.xml. Затем просто установите атрибут в цитате - он автоматически передается в заказе в заказе, чтобы заказать процесс преобразования.

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

Вы можете получить/установить атрибут в любое время с помощью волшебного приемника/сеттера, например.

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

$quote->setYourSpecialAttribute() 
+1

Он работал! Спасибо man :) – MatheusJardimB

+2

Моя проблема сейчас: это сработало только потому, что я добавил ваши строки xml или мои, также внес вклад? – MatheusJardimB

+4

конечно ... вы добавили атрибут через ваш скрипт установщика. строки xml, которые я дал вам, автоматически выталкивают атрибут посредством преобразования котировки для преобразования заказа. поскольку цитата также сохраняется в db, вы должны также создать атрибут в цитате! просто проверьте таблицу калькуляции заказа клиента db. –

0

После добавления текстового поля в файл billing.phtml и сохранение поля в Цитировании и Order таблицы, можно отобразить атрибут. Вы можете отобразить это поле в разделе «Моя учетная запись -> Просмотр». Внесите следующие изменения в custom.xml fie.

<?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> 

Более подробную информацию, пожалуйста, обратитесь к блогу How to add custom attribute to order in Magento

Смежные вопросы