Как добавить выпадающее количество в корзине для настраиваемого продукта?

Здравствуйте, я использую magento 1.7.0.2 CE. Мне нужно отобразить раскрывающееся меню для количества продукта, чтобы пользователь мог выбрать количество из раскрывающегося списка на странице корзины. Я добавил код в checkout/cart/item/default.phtml для того же,

<?php echo $min_sale_qty = (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($this->getProduct())->getData('min_sale_qty');
 $total_qyt = (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($this->getProduct())->getQty();
     ?>
    <select name="cart[<?php echo $_item->getId() ?>][qty]">
    <?php for($i = $min_sale_qty; $i <= $total_qyt; $i = $i + $min_sale_qty)
      {
      ?>
    <option value="<?php echo $i?>" <?php echo ($i == $this->getQty())? "selected=selected": ""; ?>>
      <?php echo $i?>
    </option>
   <?php }?> 
   </select>

Этот код правильно отображает раскрывающийся список для простых продуктов. Но когда я добавляю настраиваемый продукт в корзину, мне открывается раскрывающийся список без какой-либо опции для выбора.
Кто-нибудь может мне с этим помочь? Заранее спасибо.


person Jaimin Sutariya    schedule 03.10.2013    source источник


Ответы (2)


Я тестировал, и у меня это работает.

    $simpleProduct = $this->getProduct();
    if ($this->getProduct()->getTypeId() == 'configurable') {
        foreach ($_item->getQuote()->getAllItems() as $simpleItem){
            if ($simpleItem->getParentItemId() == $_item->getId()){
                $simpleProduct = $simpleItem->getProduct();
                break;
            }
        }
    }
    $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($simpleProduct);
    $min_sale_qty = (int)$stockItem->getData('min_sale_qty');
    $total_qyt = (int)$stockItem->getQty();

    ?>
    <select name="cart[<?php echo $_item->getId() ?>][qty]">
        <?php for($i = $min_sale_qty; $i <= $total_qyt; $i = $i + $min_sale_qty) : ?>
            <option value="<?php echo $i?>" <?php echo ($i == $this->getQty())? "selected=selected": ""; ?>>
                <?php echo $i?>
            </option>
        <?php endfor;?>
    </select>

Наслаждаться :)

person Nikunj Vadariya    schedule 02.04.2014

Шаг: 1 Перейдите в app / design / frontend / base / default / template / catalog / product ** / view / addtocart.phtml.

В файле addtocart.phtml найдите следующий код (около строки 33)

<input name="qty" type="text" class="input-text qty" id="qty" maxlength="12" value="<?php echo $this->getMinimalQty($_product) ?>" />



Replace with this code:

This code shows the “Available Qty for Product”.
<select class="input-text qty" name="qty" id="qty">
  <?php $i = 1 ?>
  <?php do { ?>
    <option value="<?php echo $i?>">
      <?php echo $i?>
      <?php $i++ ?>
    </option>
    <?php } while ($i <= (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty()) ?></select>


**This code shows the “Maximum Qty Allowed in Shopping Cart”.**

<select class="input-text qty" name="qty" id="qty">
  <?php $i = 1 ?>
  <?php do { ?>
    <option value="<?php echo $i?>">
      <?php echo $i?>
      <?php $i++ ?>
    </option>
    <?php } while ($i <= (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getMaxSaleQty()) ?></select>

Надеюсь, ты решишь свою проблему.

person Niyaz A. Ansari    schedule 30.01.2014