【问题标题】:Magento - How to set minimum amount of products per order for a category?Magento - 如何为某个类别设置每个订单的最小产品数量?
【发布时间】:2011-05-03 11:39:55
【问题描述】:

是否可以在 Magento 中设置每个订单类别所需的最小产品数量。一位客户销售野生动物画作,其中一个商店类别是“卡片”,一次运送少于 6 张这样的商品并不划算。

如何强制卡片类别中至少有 6 种产品?

谢谢, 丹

【问题讨论】:

  • 为什么不只使用每个产品的“购物车中允许的最小数量”,作为每个产品或全球,而不需要一些自定义编码?
  • 我相信没有全局设置。在配置中,它明确表示“请注意,这些设置适用于购物车订单项,而不是整个购物车”。

标签: php magento e-commerce categories product


【解决方案1】:

B00MER 的建议可能是最简单的方法,如果从业务角度来看,您可以要求用户购买一定数量的卡。缺点是他们需要订购多张同一张卡。

如果您需要允许使用多张不同的卡并仍然强制执行限制,请考虑为整个购物车使用最低订单量。这将涵盖其他产品的少量运输无利可图的情况。

如果这不起作用,请考虑使用表运费并将其用作无利润订单的手续费。或所有个订单的手续费。

如果这不起作用,AFAIK,您需要按照您的描述进行一些自定义代码检查。这将如何与多个子类别等中的产品一起使用?绝对可行,但语义可能很奇怪。

希望有帮助!

谢谢, 乔

【讨论】:

    【解决方案2】:

    作为替代建议,考虑创建一个购物车价格规则,该规则虽然不会阻止数量减少,但可以为潜在客户提供鼓励。

    例如,规则可能具有以下条件:

    • 产品属性组合(如果某个项目是 FOUND 等...)
    • 购物车中的数量等于或大于 6
    • 属性集是你专门用于卡片的集

    然后为这些卡提供免费送货服务。

    【讨论】:

      【解决方案3】:

      如果订单还包含更大的东西,比如帆布画,那么运输卡片的成本可能可以忽略不计。
      将您选择的运输方式的最小重量设置为 1 磅,每张卡片的重量设置为 0.18(五分之一到六分之一之间)。这样一来,客户必须同时购买至少 5 个其他或重的东西。

      【讨论】:

        【解决方案4】:

        我不知道类别,但如果您想为单个产品页面添加允许的最低数量,有一种方法可以做到。

        像往常一样使用 Magento 创建产品页面。创建后转到页面并查看源代码。获取所有代码并将其转储到编辑器(即记事本++)中。从那里向下滚动代码直到大约 560-580 行,具体取决于您的布局。你应该找到javascript函数:

         productAddToCartForm.submit = function(button, url) {
                if (this.validator.validate()) {
                    var form = this.form;
                    var oldUrl = form.action;
        
                    if (url) {
                       form.action = url;
                    }
                    var e = null;
                    try {
                        this.form.submit();
                    } catch (e) {
                    }
                    this.form.action = oldUrl;
                    if (e) {
                        throw e;
                    }
        
                    if (button && button != 'undefined') {
                        button.disabled = true;
                    }
                }
        
            }.bind(productAddToCartForm);
        

        您可以从这里对其进行编辑,使其看起来类似于以下内容:

        productAddToCartForm.submit = function(button, url) {
            var LJSM1 = parseFloat(document.getElementById('bundle-option-1-qty-input').value);
            var L2 = parseFloat(document.getElementById('bundle-option-2-qty-input').value);
            var L3 = parseFloat(document.getElementById('bundle-option-3-qty-input').value);
            var L4 = parseFloat(document.getElementById('bundle-option-4-qty-input').value);
            var L5 = parseFloat(document.getElementById('bundle-option-7-qty-input').value);
            var L6 = parseFloat(document.getElementById('bundle-option-6-qty-input').value);
                if (this.validator.validate()) {
                if((L1+L2+L3+L4+L5+L6) <= 15){
                alert("Sorry you are below the minimum order. Please increase your order to 16 or more to continue.");
                }
                else{
                    var form = this.form;
                    var oldUrl = form.action;
        
                    if (url) {
                       form.action = url;
                    }
                    var e = null;
                    try {
                        this.form.submit();
                    } catch (e) {
                    }
                    this.form.action = oldUrl;
                    if (e) {
                        throw e;
                    }
        
                    if (button && button != 'undefined') {
                        button.disabled = true;
                    }
                }
                }
            }.bind(productAddToCartForm);
        

        在我的例子中,我添加了一个简单的 if/else 语句并调用页面中的选项并将它们分配给我然后求和的变量。

        修改此代码后,您可以将其保存到与原始页面 URL 同名的 .html 文件中,然后将其上传到 magento 目录的根目录。这充当了原始页面的一种掩码,因此在浏览产品时,您将被定向到此页面而不是原始 Magento 页面。购物车、选项和 java 脚本仍然可以工作,一切都会正常运行。唯一的缺点是,无论您获取代码时页面的外观如何,其他人都会看到它。因此,我建议删除您的购物车、产品比较代码以及任何其他具有唯一数据的代码,以免造成任何混淆。最重要的是,如果您对原始 Magento 页面或主题进行任何更改,您将不得不再次快速运行该过程以更新代码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-13
          相关资源
          最近更新 更多