按现有顺序更改SKU

时间:2012-07-03 21:57:33

标签: magento

是否有人能够解释如何更改现有订单中的SKU?我们从第三方导入订单,SKU中有空格,需要删除。我查看了sales_flat_order_item,但不确定如何更改。任何帮助将非常感谢!

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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

如果您无权访问数据库,您可以随时创建一个执行该作业的升级脚本,但添加一些逻辑以避免重复,或者安装脚本会在您的脸上吹响,直到您的网站才会生效解决它