2012-07-03 35 views
0

是否有人會解釋如何更改現有訂單中的SKU?我們從第三方進口訂單,SKU中有空格,需要刪除。我看着sales_flat_order_item,但不知道如何改變。任何幫助將非常感激!以現有訂單更改SKU

回答

0

我猜你的意思是更改訂單號,因爲SKU與產品相關,而不是訂單。

沒有UI方式來更改訂單號(有幾個擴展名,但我強烈建議不要使用它們中的任何一個),但如果您有權訪問數據庫,則可以自行更改。表sales_flat_order具有存儲訂單號的increment_id字段。這個字段是一個varchar(50),這意味着它支持字母數字值。

Magento在字段上保留一個UNIQUE索引,所以不能保留重複....除非你在1.4.x之前運行Magento版本(實際上是1.4.0.22)。如果是這種情況,請注意不要複製任何increment_id,並儘可能使用數值來防止此錯誤http://www.magentocommerce.com/bug-tracking/issue?issue=13625

如果您無權訪問數據庫,則始終可以創建升級腳本但添加一些邏輯,以避免重複或安裝腳本將吹在你的臉上,該網站將無法正常工作,直到您修復它

+0

謝謝。不是訂單的部分順序嗎? – jmarquis

+1

訂單中有一組order_items,每個訂單都是訂單發出時產品的快照。這些order_items每個都有一個SKU,但不包括訂單 – barbazul

1

一個可能的方式來刪除訂單項SKU中的空白將是s/t像這樣:

$iIncrementId = '911'; 
$oOrder = Mage::getModel('sales/order')->load($iIncrementId, 'increment_id'); 
foreach ($oOrder->getAllVisibleItems() as $oItem) { 
    $oItem 
     ->setSku(str_replace(' ', '', $oItem->getSku())) 
     ->save(); 
}