0

Would anyone be kind enough to explain how to change a SKU in an existing order? We import orders from a 3rd party and the SKUs have spaces in them, which need to be removed. I looked at sales_flat_order_item but not sure how to change. Any help will be very appreciated!

4

2 回答 2

1

删除订单商品 SKU 中的空白的一种可能方法是如下所示:

$iIncrementId = '911';
$oOrder = Mage::getModel('sales/order')->load($iIncrementId, 'increment_id');
foreach ($oOrder->getAllVisibleItems() as $oItem) {
    $oItem
        ->setSku(str_replace(' ', '', $oItem->getSku()))
        ->save();
}
于 2012-07-04T08:22:32.907 回答
0

我猜您的意思是更改订单号,因为 SKU 与产品相关,而不是订单。

没有 UI 方法可以更改订单号(有几个扩展,但我强烈建议不要使用其中的任何一个),但如果您有权访问数据库,您可以自己更改它。表 sales_flat_order 有一个 increment_id 字段,其中存储了订单号。该字段是一个 varchar(50) 表示它支持字母数字值。

Magento 在该字段上保留一个唯一索引,因此将无法保留重复项....除非您运行的是 1.4.x 之前的 Magento 版本(实际上是 1.4.0.22)。如果是这种情况,请注意不要重复任何 increment_ids,并尽可能坚持使用数值以防止此错误http://www.magentocommerce.com/bug-tracking/issue?issue=13625

如果您无权访问数据库,您始终可以创建一个升级脚本来完成这项工作,但添加一些逻辑以避免重复,否则安装脚本会打到您的脸上,并且在您修复它之前网站将无法运行

于 2012-07-03T23:05:31.143 回答