2

まず、magento の mvc と php を入手しましたが、その「組み込み機能」で何ができるかを完全には理解していません。

ユーザーが BOOK 構成可能製品の 1 つを epub または pdf バージョンとして選択したときに、QTY を 1 に制限する方法に取り組んでいます。選択が「物理的」でない場合、QTYオプションを非表示にするために、テーマにjQuery voodooを使用してそれに取り組む準備をしています。誰かがこれを行う方法を知っているか、以前にこれを行った経験があることを望んでいました。

「管理者でこれを行う」または「このようなコードを作成する」で自由に答えてください

ありがとう

4

2 に答える 2

4

特定のアイテムを編集して[在庫]タブに移動すると、カートで許可されるアイテムの数を制限できます。「ショッピングカートで許可される最小数量」と「ショッピングカートで許可される最大数量」の2つの設定があります。「許可される最大数量」の「構成設定を使用する」のチェックを外し、これを1に設定します。

デフォルトでは、これらは両方とも「use config」です。これは、「システム」->「構成」->「インベントリ」タブでも編集できることを意味します。

于 2013-01-09T15:43:17.497 に答える
0

あなたの答えに従うために、インポートシステムにどのように実装したかを次に示します。将来の製品はすべてあなたが言ったような構成になり、現在のものは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;

フロントエンドの見栄えを少し良くした方法は次のとおりです。小さなフェード効果を追加したところ、量が変化し、変化している理由が説明されています。以下をテーマに挿入しました /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">
                <p>Downloads are unlimited. Quantity is limited to one item.</p>
        </div>

        <div id="theQty" style="display: inline" >
        <label for="qty"><?php echo $this->__('Qty:') ?></label>
        <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()"><span><span><?php echo $this->__('Add to Cart') ?></span></span></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()): ?>
                <span><?php echo $_item->getQty();?></span>
        <?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; ?>
于 2013-01-09T20:04:03.703 に答える