2012-07-03 3 views
0

Может кто-нибудь быть любезным, чтобы объяснить, как изменить SKU в существующем порядке? Мы импортируем заказы от третьего лица, а в SKU есть пробелы, которые необходимо удалить. Я посмотрел на sales_flat_order_item, но не уверен, как измениться. Любая помощь будет очень оценена!Изменение SKU в существующем порядке

ответ

0

Я предполагаю, что вы хотите изменить номер заказа, потому что SKU связаны с продуктами, а не с заказами.

Нет способа изменить номер заказа (есть несколько расширений, но я настоятельно рекомендую не использовать ЛЮБОЙ из них), но вы можете изменить его самостоятельно, если у вас есть доступ к базе данных. Таблица sales_flat_order имеет поле increment_id, в котором хранятся номера заказов. Это поле является varchar (50), что означает, что оно поддерживает буквенно-цифровые значения.

Magento хранит индекс UNIQUE в поле, поэтому он не сможет сохранить дубликаты .... если вы не используете версию Magento до 1.4.x (на самом деле, сделайте это 1.4.0.22). Если это так, будьте осторожны, чтобы не дублировать любые increment_ids и, когда это возможно, придерживайтесь числовых значений, чтобы предотвратить эту ошибку. http://www.magentocommerce.com/bug-tracking/issue?issue=13625

Если у вас нет доступа к БД, вы всегда можете создать сценарий обновления, задание, но добавьте некоторую логику, чтобы избежать дублирования, или скрипт установки будет биться вам в лицо, и сайт не будет работать до тех пор, пока вы его не исправите.

+0

Спасибо. Разве не заказывается часть заказа? – jmarquis

+1

В заказе есть коллекция order_items, каждый из которых является снимком продукта в момент размещения заказа. Эти order_items имеют SKU каждый, но не порядок – barbazul

1

Один из возможных способов удаления пробелов в единицах единиц заказа будет таким, как это :

$iIncrementId = '911'; 
$oOrder = Mage::getModel('sales/order')->load($iIncrementId, 'increment_id'); 
foreach ($oOrder->getAllVisibleItems() as $oItem) { 
    $oItem 
     ->setSku(str_replace(' ', '', $oItem->getSku())) 
     ->save(); 
} 
Смежные вопросы