Показать инвентарь простого продукта настраиваемых продуктов в 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;