Модуль группировки конфигурируемых продуктов

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 skiller
  • Группа: Пользователь
  • Сообщений: 32
  • Регистрация: 04.10.2010

19.07.2011 11:05

Добрый день. Сейчас делаю модуль для группировки конфигурируемых товаров (так же предусмотрена возможность группировки симпл товаров с доп. опциями). Застрял вот в таком месте: при добавлении товара в корзину маджента не видит выбранных опций. Т.е. в корзине опция отображается, но маджента ругается на невыбранные опции. чтоб нагляднее можно было посмотреть - хttp://prod.soft-loft.com/index.php/products/groupconf2.html, вот этот товар. Это в группу добавлен 1 конфигурируемый товар. когда несколько товаров - вылетает с ошибкой, но это где-то не перебираются все товары, что ли... то будет отдельный вопрос. Как решить такую проблему? Спасибо.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

19.07.2011 11:07

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

#3 skiller
  • Группа: Пользователь
  • Сообщений: 32
  • Регистрация: 04.10.2010

19.07.2011 11:10

Может не совсем понял вопрос, но вот код, который выводит товар на странице товара - а дальше стандартные файлы мадженты, там еще ничего не менялось.
<?php
$_product    = $this->getProduct();
$_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes());
$_formId = "product_addtocart_form_".$_product->getId();
$_formJsVar = "productAddToCartForm".$_product->getId();
?>

<tr>
<td><h3><?php echo $_product->getName() ?></h3></td>
<td>
    <?php echo $this->getPriceHtml($_product) ?>
 </td><td>   
    <div class="add-to-cart">
        <?php if(!$_product->isGrouped()): ?>
        <label for="qty"><?php echo $this->__('Qty:') ?></label>
        <input type="text" name="super_group[<?php echo $_product->getId(); ?>]" id="qty" maxlength="12" value="<?php echo $this->getMinimalQty($_product) ?>" title="<?php echo $this->__('Qty') ?>" class="input-text qty" />
        <?php endif; ?>        
        <?php echo $this->getChildHtml('', true, true) ?>
    </div>  
    <script type="text/javascript">
    //<![CDATA[
            var <?php echo $_formJsVar ?> = new VarienForm('<?php echo $_formId ?>');
            <?php echo $_formJsVar ?>.submit = function(){
                    if (this.validator.validate()) {
                            this.form.submit();
                    }
            }.bind(<?php echo $_formJsVar ?>);
    //]]>
    </script>
</td>
</tr><tr>
<td colspan="3">
<?php if ($_product->isSaleable() && count($_attributes)):?>
    <dl>
    <?php foreach($_attributes as $_attribute): ?>
        <dt><label><?php echo $_attribute->getLabel() ?><span class="required">&nbsp;*</span></label></dt>
        <dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
          <select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
            <option><?php echo $this->__('Choose an Option...') ?></option>
            <?php
            foreach($_attribute['prices'] as $option){
                echo '<option value="'.$option['value_index'].'" price="'.$option['.pricing_value.'].'">'.$option['store_label'].'</option>';
            }
            ?>
        </dd>
    <?php endforeach; ?>
    </dl>
</td>
</tr>
<?php endif;?>


#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

19.07.2011 11:33

Заочно можно предположить 2 версии:
1) система не в состоянии определить артикул или цену выбранного покупетелем значения опции
2) у товара имеются другие обязательные для выбора покупателем опции, кроме цвета

Первое вероятней.
Надо смотреть административные настройки товара, а затем провести отладку программного кода.

Поделиться темой: