1

我在 Commerce Server 2007 中搜索并搜索了这个看似简单的问题的答案,但没有发现任何有用的信息。这似乎应该是可能的。如何使折扣仅适用于 Commerce Server 2007 中的一种运输方式?

4

3 回答 3

2

如果您希望仅在用户选择了某种运输方式时才适用折扣,那么开箱即用是不可能的。

您始终可以编写自定义管道组件,但处理管道中的折扣可能会很复杂。

于 2009-07-08T07:51:11.480 回答
2

我之前遇到过这个问题,我有一个场景,标准交付选项是唯一可以打折的选项,第二天和国际选项总是全价。

在这种情况下,我编写了一个自定义管道组件,如果选择了标准以外的任何其他运输方式,它会删除任何运输折扣。

我将此脚本组件添加到 ShippingDiscountAdjust 组件下方的总管道中,这有点像我已经硬编码标准交付 ID 的黑客,但这不会改变,所以我可以侥幸逃脱:

    功能MSCSExecute(配置,订单,上下文,标志)

        Dim shipping ' SimpleList of shipping in the basket
        Dim shipping ' 列表中的一个货件字典
        Dim sshipmentID

        ' 保存每批货物的运费折扣(由 ShippingDiscountAdjust 编写)
        如果不是 isNull(orderForm.Value("shipments")) 那么
            设置出货量 = orderForm.Value("shipments")    
            对于货件中的每个货件            
               sShipmentID = shipping("shipping_method_id")
            下一个

            如果 sShipmentID <> "{00000000-0000-0000-0000-005719007655}" 和 orderForm.value("_cy_shipping_discounts_total") > 0 那么
                orderform.value("_shipping_discount_description") = ""

                对于货件中的每个货件            
                     orderForm.value("_cy_shipping_total") =orderForm.value("_cy_shipping_total") + shipping.value("_cy_shipping_discounts_subtotal")
                     shipping.value("_cy_shipping_discounts_subtotal") = 0
                下一个

                orderForm.value("_cy_shipping_discounts_total") = 0
            万一
        万一

        MSCSExecute = 1
    结束函数

    子 MSCSOpen(配置)

    结束子


    子 MSCSClose()

    结束子
于 2009-07-11T10:37:03.090 回答
0

史蒂夫和欧文是对的。对此没有开箱即用的解决方案,但您可以尝试使用自定义管道组件或脚本组件来解决它。

有一个商业替代品。 Enticify是 Commerce Server 折扣管道组件的直接替代品,它支持特定于运输方式的折扣除其他外)。

免责声明:我是 Enticify 的员工。

Enticify 添加了Shipment Expressions的概念。您可以像使用Eligibility Expressions一样使用它们(实际上是在 Marketing Manager Eligibility 选项卡中设置它们)。但是,您可以通过定位诸如shipping_method_id.

在这里,您可以看到针对以下货件的货件表达式shipping_method_id(但您可以针对其他货件属性):

以运输方式 ID 为目标的 Enticify Shipment Expression

在这里,您可以看到它在资格表达式对话框中列出:

在此处输入图像描述

运行时,此折扣仅适用于满足此表达式的货件。您可以在Enticify Shipping Discounts 文档中阅读更多信息。这非常强大,因为它也可以用于限定产品折扣(例如,当您选择次日发货时获得产品 X 的折扣)。

于 2013-10-11T10:39:06.917 回答