Каким образом можно ограничить количество загружаемых продуктов в пурпурно

Во-первых: я получаю mvc и PHP magento, но я не полностью разбираюсь в том, что могут сделать его «встроенные функции».

Я работаю над тем, чтобы ограничить QTY до 1, когда пользователь выбирает один из моих настраиваемых продуктов BOOK как версию epub или pdf. Я собираюсь начать заниматься этим с помощью jQuery voodoo в теме, чтобы скрыть параметр QTY, если выбор не является «Физическим». Я надеялся, что кто-то может знать, как это сделать или у кого-то есть опыт.

Не стесняйтесь отвечать «делать это в админ» или «кодировать что-то вроде этого»,

благодаря

1
nl ja de

2 ответы

Вы можете ограничить количество элементов, разрешенных в корзине для определенного элемента, отредактировав его и перейдите на вкладку «Ресурсы». Существуют две настройки: «Минимальное количество разрешено в корзине покупок» и «Максимальное количество разрешено в корзине покупок». Снимите флажок «Использовать настройки конфигурации» для «максимально допустимого количества» и установите это как единое целое.

By default both of these are "use config" which means it is also editable in the System -> Configuration -> Inventory tab as well.

4
добавлено
Хороший ответ. Я должен был вернуться сюда раньше. Я написал jquery. Я могу переключиться на этот метод. Все мои продукты импортируются с помощью мыльных вызовов.
добавлено автор CarComp, источник
Ответ magento2: backend> Магазины> Конфигурация> Каталог> Инвертировать> Опции продукта> Максимальное количество в корзине: = 1
добавлено автор nicolallias, источник

Вот как я реализовал его в системе импорта, чтобы следить за вашим ответом. Все будущие продукты будут иметь конфигурацию, как вы сказали, а текущие обрабатываются через jQuery

catalogInventoryStockItemUpdateEntity stock;

if (this.deliveryType != DeliveryTypes.Simple)
{
    stock = new catalogInventoryStockItemUpdateEntity
                {
                    use_config_manage_stockSpecified = true,
                    use_config_manage_stock = 0,
                    manage_stockSpecified = true,
                    manage_stock = 0,
                    backorders = 0,
                    is_in_stockSpecified = true,
                    is_in_stock = 1,
                    use_config_max_sale_qtySpecified = true,
                    use_config_max_sale_qty = 0,
                    max_sale_qtySpecified = true,
                    max_sale_qty = 1
                };
}
else
{

    stock = new catalogInventoryStockItemUpdateEntity
                {
                    manage_stockSpecified = true,
                    is_qty_decimal = 1,
                    is_qty_decimalSpecified = true,
                    qty = this.InventoryQuantity.ToString(CultureInfo.InvariantCulture),
                    backorders = 0,
                    is_in_stockSpecified = true,
                    is_in_stock = 1,
                    manage_stock = 1
                };
}

return stock;

Heres, как я сделал внешний вид, выглядел немного лучше. Я добавил небольшой эффект затухания, и сумма изменилась и объясняет, почему она меняется. Я вставил следующее в мою тему /var/www/app/design/frontend/NKI/default/template/catalog/product/view.phtml

<script type="text/javascript">

jQuery(document).ready(function() {
    jQuery('#attribute501').change(function() {
            var x = jQuery(this).val();
           //If its not a physical book
            var qtyInput = jQuery('#theQty').find('#qty');
            jQuery(qtyInput).val(1);
            var qtyExplain = jQuery('#qtyExplain');

            if (x) {

                    if (x != 3) {
                            jQuery(qtyExplain).fadeIn('slow');
                            jQuery(qtyInput).attr("disabled",true);
                    } else {
                            jQuery(qtyExplain).fadeOut('slow');
                            jQuery(qtyInput).attr("disabled",false);
                    }
            } else {
                    jQuery(qtyExplain).fadeOut('slow');
                    jQuery(qtyInput).attr("disabled",false);

            }
    });

});

</script>

Также в /var/www/app/design/frontend/NKI/default/template/catalog/product/view/addtocart.phtml Я изменил это на это

<?php $_product = $this->getProduct() ?>

<?php if($_product->isSaleable()): ?>
    <div class="add-to-cart" style="width: 365px">
        <?php if(!$_product->isGrouped()): ?>
        <div id="qtyExplain" style="display:none">
                

Downloads are unlimited. Quantity is limited to one item.

</div> <div id="theQty" style="display: inline" > <input type="text" name="qty" id="qty" maxlength="12" value="<?php echo $this->getMinimalQty($_product) ?>" title="<?php echo $this->__('Qty') ?>" class="input-text qty" /> </div> <?php endif; ?> <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="productAddToCartForm.submit()"><?php echo $this->__('Add to Cart') ?></button> <?php echo $this->getChildHtml('', true, true) ?> </div> <?php endif; ?>

Кроме того, для корзины покупок я добавил следующий код в следующий файл по строке 154 /var/www/app/design/frontend/NKI/default/template/checkout/cart/item/default.phtml

 <?php
        if ($_item->getIsVirtual()): ?>
                <?php echo $_item->getQty();?>
        <?php else: ?>

        <input name="cart[<?php echo $_item->getId() ?>][qty]" value="<?php echo $this->getQty() ?>" size="4" title="<?php echo $this->__('Qty') ?>" class="input-text qty" maxlength="12" />
        <?php endif; ?>
0
добавлено