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

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

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

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

2 ответа

$_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/>';
 }

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

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

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/>';
}

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

$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;
Другие вопросы по тегам