1

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

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

谢谢,丹

4

4 回答 4

2

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

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

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

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

希望有帮助!

谢谢,乔

于 2010-11-01T17:01:18.490 回答
1

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

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

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

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

于 2010-11-01T18:10:17.653 回答
1

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

于 2010-11-01T18:15:59.837 回答
0

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

像往常一样使用 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 脚本仍然可以工作,一切都会正常运行。唯一的缺点是,无论您获取代码时页面的外观如何,其他人都会看到它。因此,我建议删除您的购物车、产品比较以及任何其他具有唯一数据的代码,以免造成任何混淆。

于 2013-06-07T17:49:20.227 回答