2013-07-25 3 views
0

Каждый продукт в Magento имеет indiviual Qty минимума для быть в наличииMagmi вопрос о статусе акций

Я использую magmi обновить запас из внешнего файла CSV.

Проблема в том, что при успешном Updation в формате CSV, magmi не относится к минимальному значению Кола установить продукт «в наличии» или «нет в наличии»

Так что все мои продукты endup будучи «в запасе» и только когда я редактирую и сохраняю продукт в admin, он устанавливает его правильно.


выше сценария снова объяснил:

если ток кол-во = 1 & mim_qty = 05 и в Csv Кол-во = 100

после magmi запуска (повторной индексации сделано)

new qty= 100 and i can see at front end at list.phtml 

следующий

Current qty= 100 & mim_qty = 05 and in csv qty= 3 

после magmi пробега (переиндексации сделано)

new qty= 3 and **i can see at front end at list.phtml** 

следующей установкой является общим в бот случае

Manage stock    = 1; 
use_config_manage_stock = 1; 
min_qty     = 05; 

ответ

1

Если вы хотите min_qty быть разобран magmi, то вам необходимо предоставить его в качестве входных данных к magmi около значения qty.

Magmi полагается 95% от исходных данных, а не текущие существующих данные DB (за исключением не тиражировать выбор/MultiSelect параметров или проверки, если продукт существует, получение метаданных атрибутов)

Так, min_qty не проверяются с существующим но значение ввода. если на входе нет min_qty, то magmi не обновляет is_in_stock на основе существующего значения min_qty.

Это поведение, которое я мог бы улучшить в следующем выпуске.

+0

У меня есть код обновления .. он проверяет min_qty, если он есть в magento. – user2206490

0

В классе Magmi_ProductImportEngine под функцией updateStock()

Вместо:

$mqty=(isset($item["min_qty"])?$item["min_qty"]:0); 

Я добавил:

$gsql = "SELECT min_qty FROM cataloginventory_stock_item WHERE product_id=?"; 
$grvalue = $this->selectAll($gsql, array($pid)); 

foreach($grvalue as $gcalminqty) { 

    $gfinalminqty = $gcalminqty['min_qty']; 

} 

$gfinalminqty = (isset($gfinalminqty) ? $gfinalminqty : 0); 

$mqty = (isset($item["min_qty"]) ? $item["min_qty"] : $gfinalminqty); 

Это выглядит для min_qty в CSV, если не читать из Magento, otherwhise использования по умолчанию.

+0

попытался отформатировать ваш код - пожалуйста, улучшите :-) – kleopatra

Смежные вопросы