Установка is_in_stock для продукта в magento

1

Я пытаюсь написать сценарий для установки изменений в 'is_in_stock' для продуктов SKU в Magento, используя php/mage.

Это то, что у меня есть до сих пор, в Magento 1.9.2.1

require_once $_SERVER['DOCUMENT_ROOT'].'/app/Mage.php';
$app = Mage::app();
set_time_limit(0);

$inStock = array('NOTAVAILABLE'=>'0','AVAILABLE'=>'1');
$updated=0;

$SKU = '801647';
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$SKU);

if ($product) {
    //Product found, so we need to update it in Magento.

    $productId = $product->getId();
    $stockItem =Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
    $stockItemId = $stockItem->getId();

    echo "is_in_stock before: ",$stockItem->getIsInStock()," <br />";


    if((int) $stockItem->getIsInStock() !== (int) $inStock["NOTAVAILABLE"]){
        try {

            $stockItem->setStockData('is_in_stock', (int) $inStock["NOTAVAILABLE"]);

            $stockItem->save();
            $product->save();
            $updated++;

            echo "SKU: '",$SKU,"' <br /> Name: '",(string) $product->name,"', <br />is_in_stock after: ",$stockItem->getIsInStock()," <br />";
        }
    }
}

Это результат:

 is_in_stock before: 1 

 Product: 
 SKU: '801647' 
 Name: 'BAMBOLA PIPEDREAM EXTREME DOLLZ VARSITY VICKY LIFE-SIZE LOVE DOLL', 

 is_in_stock after: 1               

Как вы можете видеть, никаких изменений в "is_in_stock" не было, и я не могу понять, что не так в моем коде.

Заранее благодарю за помощь и терпение

  • 0
    чего вы хотите достичь, вы хотите превратить «is_in_stock» с 1 на 0?
Теги:
magento

1 ответ

0

Вместо этого вы использовали setStockData, попробуйте следующее:

$stockItem->setData('is_in_stock', (int) $inStock["NOTAVAILABLE"]);

или

$stockItem->setIsInStock((int)$inStock["NOTAVAILABLE"]);
  • 0
    Я пробовал оба, но все равно дает мне тот же результат

Ещё вопросы

Сообщество Overcoder
Наверх
Меню