2012-02-14 24 views
0

升級到1.6.2.0的Magento(1.4)的product_option場表sales_flat_order_item當一個新的訂單沒有更新後。Magento的選項,發票(數據庫未安裝)

在較老的訂單前的升級條目顯示爲:

一個:2:{S:15:「info_buyRequest」;一個:3:{S:7: 」選項「;一個: 2 ...等

但升級後:

一個0:{}

我已經嘗試切換到標準模板,添加新選項的測試產品,刪除擴展名無效。

也許有人知道如何填充product_options字段?

值被插入到sales_flat_quote_item_option當產品被添加到籃的選項,而不是sales_flat_order_item當實際順序放置。

謝謝。

回答

1

升級後我還沒有遇到過這個問題,但是這裏有一些指針,希望能幫助您找出問題並提供一些背景信息。

從報價項目到訂單項目的轉換由Mage_Sales_Model_Convert_Quote::itemToOrderItem()處理。

這是如何複製產品選項。

$options = $item->getProductOrderOptions(); 
if (!$options) { 
    $options = $item->getProduct() 
     ->getTypeInstance(true) 
     ->getOrderOptions($item->getProduct()); 
} 
$orderItem->setProductOptions($options); 

getOrderOptions()取出由產品的選項陣列,包括info_buyRequest和任何選定的屬性選項。

複合產品處理已經與Magento 1.5統一。任何選項(無論它們是可配置的產品選項,捆綁的產品配置還是自定義選項)都由同一複合產品子系統處理。

這些更改也旨在儘可能保持向後兼容性,但是一些覆蓋深層核心功能的擴展必須升級才能使用新進程。

要了解是否有任何改寫問題,請運行以下代碼來檢查目錄和銷售模塊。

require_once 'app/Mage.php'; 
Mage::app(); 

print_r(array(
    'Mage_Catalog Model Rewrites' => Mage::getConfig()->getNode('global/models/catalog/rewrite'), 
    'Mage_Sales Model Rewrites' => Mage::getConfig()->getNode('global/models/sales/rewrite') 
)); 

如果產品款型,銷售訂單或報價的項目或銷售轉換或服務模式被改寫,嘗試禁用這些擴展。

+0

非常感謝Vinai花時間寫出這個優秀的教育解釋。原來那個app/code/core/Mage/Sales/Model/Convert/order。php和quote.php(在搜索Mage_Sales_Model_Convert_Quote後發現)正在被一個很久以前被遺忘的,沒有正確卸載的擴展重寫,以創建自定義發票。 – Gumtee 2012-02-14 11:10:06