Magento 1.5.1.0 - При попытке обновить количество товаров на складе getStockData возвращает NULL

У меня есть продукты, загруженные в Magento, для которых я пытаюсь массово обновить количество товаров. Я создал все продукты с помощью Mage_Catalog_Model_Product и установил для них количество с помощью setStockData, например:

$product = new Mage_Catalog_Model_Product();

$product->setTypeId('simple');
$product->setStatus(1);
$product->setSku($sku);
$product->setStockData(array(
    'is_in_stock' => 1,
    'qty' => $record['stockstatus'],
    'manage_stock' => 0,
));
...

Итак, я видел, как setStockData работает ... более 13000 раз.

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

Моя проблема в том, что я могу использовать вариант кода по ссылке выше и получить действительный объект продукта, но когда я вызываю getStockData для объекта, он возвращает NULL:

$product = Mage::getModel('catalog/product')
                ->loadByAttribute('product_code', '678910');

var_dump($product->getName()); // returns 'Hello My Name is Product'
var_dump($product->getProductCode()); // returns '678910'
var_dump($product->getSku()); // returns 'SKU1234'
var_dump($product->getStockData()); // returns NULL (and there is a qty of 52 set)

(Я также пробовал получить продукт без изменений кода по ссылке выше и получил те же результаты, что и ожидал.)

$product_id = Mage::getModel('catalog/product')->getIdBySku('SKU1234');
$product = Mage::getModel('catalog/product');
$product->load($product_id);
$stockData = $product->getStockData();

var_dump($product->getName()); // returns 'Hello My Name is Product'
var_dump($product->getProductCode()); // returns '678910'
var_dump($product->getSku()); // returns 'SKU1234'
var_dump($product->getStockData()); // returns NULL (and there is a qty of 52 set)

Итак, если я не могу получить данные о запасах с помощью getStockData, я не могу установить такие данные о запасах, как:

$product = Mage::getModel('catalog/product')
                ->loadByAttribute('product_code', $record['productcode']);

$stockData = $product->getStockData();

$stockData['qty'] = $record['stockstatus'];
$stockData['is_in_stock'] = ($record['stockstatus'] > 0) ? 1 : 0;

$product->setStockData($stockData);

$product->save();

Что-то мне не хватает? Я не понимаю, почему getStockData возвращает NULL. Может ли кто-нибудь помочь мне понять, что я делаю неправильно?

5
задан Community 23 May 2017 в 10:34
поделиться