如何在sales-gt;订单中添加自定义价格的文本并将其存储在数据库表Magento 1.9中?

时间:2017-10-25 12:29:56

标签: php magento-1.9

我想添加文本字段,如自定义产品说明(请参阅屏幕截图)并将值存储在销售订单表中 enter image description here

1 个答案:

答案 0 :(得分:0)

  1. 添加新的catalog_product属性并创建本地模块(yournamespace_customattribute)
  2. 通过设置脚本

    向订单商品实体添加新属性
    $install = new Mage_Sales_Model_Resource_Setup('core_setup');
    
    $options = array(
        'type'     => Varien_Db_Ddl_Table::TYPE_VARCHAR,
        'visible'  => true,
        'required' => false
    );
    
    $install->addAttribute('quote_item', 'custom_product_description', $options); 
    $install->addAttribute('order_item', 'custom_product_description', $options); 
    
    $install->endSetup();
    
  3. 在config.xml中添加属性

  4.     <sales>
            <quote>
                <item>
                    <product_attributes>
                        <custom_product_description />
                    </product_attributes>
                </item>
            </quote>
        </sales>
    
    1. 在config.xml中添加观察者方法
    2.     <sales_quote_item_set_product>
              <observers>
                  <yournamespace_customattribute>
                      <class>yournamespace_customattribute/observer</class>
                      <method>salesQuoteItemSetCustomAttribute</method>
                  </yournamespace_customattribute>
              </observers>
          </sales_quote_item_set_product>
      
      1. 将方法salesQuoteItemSetCustomAttribute添加到Observer.php
      2.     public function salesQuoteItemSetCustomAttribute($observer)
            {
                $quoteItem = $observer->getQuoteItem();
                $product = $observer->getProduct();
                $quoteItem->setCustomProductDescription($product->getCustomProductDescription());
            }
        
        1. 最后将值传递到sales flat table,将其添加到config.xml
        2. 中的global
              <fieldsets>
                  <sales_convert_quote_item>
                      <custom_product_description>
                          <to_order_item>*</to_order_item>
                      </custom_product_description>
                  </sales_convert_quote_item>
                  <sales_convert_order_item>
                      <custom_product_description>
                          <to_quote_item>*</to_quote_item>
                      </custom_product_description>
                  </sales_convert_order_item>
              </fieldsets>