1

この一見単純な質問に対する回答を Commerce Server 2007 で検索しましたが、役に立たないものは見つかりませんでした。これは可能なはずのことのようです。Commerce Server 2007 で 1 つの配送方法のみに割引を適用する方法を教えてください。

4

3 に答える 3

2

ユーザーが特定の配送方法を選択した場合にのみ割引を適用したい場合、これはそのままでは不可能です。

カスタムパイプラインコンポーネントはいつでも作成できますが、パイプラインでの割引の処理は複雑になる可能性があります。

于 2009-07-08T07:51:11.480 に答える
2

私は以前にこの問題に遭遇しました。標準の配達オプションがこれまでに割引される唯一のものであり、翌日と国際的なオプションは常に全額であるというシナリオがありました。

この例では、標準以外の配送方法が選択された場合に配送割引を削除するカスタムパイプラインコンポーネントを作成しました。

このスクリプトコンポーネントをShippingDiscountAdjustコンポーネントの下のパイプライン全体に追加しました。これは、標準の配信IDをハードコーディングしたため、少しハックですが、変更されないため、問題を解決できます。

    関数MSCSExecute(config、orderform、context、flags)

        薄暗い出荷'バスケット内の出荷のSimpleList
        薄暗い出荷'リストからの出荷辞書
        薄暗いsShipmentID

        '各出荷の配送料割引を保存します(ShippingDiscountAdjustによって記述されます)
        isNull(orderForm.Value( "shipments"))でない場合は、
            出荷の設定=orderForm.Value( "shipments")    
            出荷の出荷ごとに            
               sShipmentID = shipship( "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")+ shipship.value( "_ cy_shipping_discounts_subtotal")
                     Shipship.value( "_ cy_shipping_discounts_subtotal")= 0
                次

                orderForm.value( "_ cy_shipping_discounts_total")= 0
            終了する場合
        終了する場合

        MSCSExecute = 1
    終了機能

    サブMSCSOpen(config)

    サブ終了


    サブMSCSClose()

    サブ終了
于 2009-07-11T10:37:03.090 に答える