Как показать "Минимальное кол-во разрешено в корзине" на странице со списком товаров

Я использую Magento 1.9. Я хочу показать "Минимальное кол-во разрешено в корзине" на странице list.phtml. Например, я установил минимальное количество "6" в атрибуте "Продукт", тогда он должен показывать "6" в начале. Я пытаюсь написать этот код, но он выдает ошибку. Возможно я пишу неправильный код.

 <?php 
$productQuantity = Mage::getModel("cataloginvetory/stock_item")->loadByProduct($_product->getId());
echo $productQuantity->getMinSaleQty(); ?>

Я получаю следующую ошибку

Неустранимая ошибка: вызов функции-члена loadByProduct() для необъекта в //list.phtml

3 ответа

Решение

Здесь немного логики

<?php                 
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product);
                 echo $stockItem->getMinSaleQty() && $stockItem->getMinSaleQty() > 0 ? $stockItem->getMinSaleQty() * 1 : null;
 ?>

Есть две ошибки, которые я вижу сразу.

Во-первых, "cataloginvetory / stock_item" - это опечатка. Это должно быть "каталог инвентаризации / stock_item."

Во-вторых, loadByProduct принимает продукт, а не идентификатор продукта.

Это должно выглядеть так:

<?php 
$productQuantity = Mage::getModel("cataloginventory/stock_item")->loadByProduct($_product);
echo $productQuantity->getMinSaleQty(); ?>

Я не смог протестировать функцию getMinSaleQty(), потому что у меня не включено на моем сайте.

Mage::getModel("cataloginvetory/stock_item") не возвращает объект. использование var_dump() чтобы узнать, что возвращает статическая функция Мага.

echo var_dump(Mage::getModel("cataloginvetory/stock_item"));

Я предполагаю, что он вернется с NULL или false. Если это так, то что-то идет не так в getModel() (возможно, неверные параметры)

Другие вопросы по тегам