Показать инвентарь простого продукта настраиваемых продуктов в Magento

Я совсем новичок в Magento. Насколько я понимаю, мне нужно формировать настраиваемые продукты, чтобы управлять разным размером продукта. Я хочу показать количество запасов каждого размера отдельно на странице просмотра продукта. Это возможно? Имя моего атрибута — «размер». Я использовал следующий код, чтобы получить количество запасов. Тем не менее, он не может получить количество отдельных простых продуктов для настраиваемого продукта.

<?php   
$__manStock = $_product->getStockItem()->getManageStock();

$__invAmt =(int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty('small');
if ($__manStock > 0)
    {
    echo $this->__("$__invAmt");
    }
?>

person oodalgic    schedule 13.02.2013    source источник


Ответы (3)


$_product — это ваш настраиваемый продукт.

Чтобы получить все его простые продукты, используйте:

$_product->getTypeInstance(true)->getUsedProducts ( null, $_product);

Итак, у вас может быть что-то вроде:

foreach ($_product->getTypeInstance(true)->getUsedProducts ( null, $_product) as $simple) {
     $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($simple)->getQty();
     echo $simple->getName()." with size ".$simple->getSize()." have a stock of $stock";
     echo '<br/>';
 }

Я позволяю вам адаптироваться к вашим точным потребностям и задавать вопросы, если это необходимо

person dagfr    schedule 15.02.2013

Я суммирую все произведения до числа и округляю его без запятых:

$itemsinstock = 0;
foreach ($_product->getTypeInstance(true)->getUsedProducts ( null, $_product) as $simple) {
    $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($simple)->getQty();
    $stock = round($stock,2);
    echo $simple->getName()." : $stock pieces";
    echo '<br/>';
    $itemsinstock+= $stock;
}
echo $itemsinstock;
person TonkBerlin    schedule 03.09.2014

Пожалуйста, сообщите мне о местоположении файла, в который будет добавлен приведенный ниже код.

foreach ($_product->getTypeInstance(true)->getUsedProducts ( null, $_product) as $simple) {
  $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($simple)->getQty();
  echo $simple->getName()." with size ".$simple->getSize()." have a stock of $stock";
  echo '<br/>';
}
person Vipin    schedule 24.09.2019