2009-06-24 44 views

回答

2

我遇到過這個問題之前,我有一個場景,其中標準交付選項是唯一一個會打折,第二天和國際選項將永遠是全價。

在這種情況下,我編寫了一個自定義管道組件,如果選擇了除標準以外的其他任何運輸方式,則會刪除所有運輸折扣。

我將這個scriptor組件添加到ShippingDiscountAdjust組件下面的總管道中,這是一種破解,因爲我對標準交付ID進行了硬編碼,但這不會改變,所以我可以避開它:

 
    function MSCSExecute(config, orderform, context, flags) 

     Dim shipments  ' SimpleList of shipments in the basket 
     Dim shipment  ' An shipment dictionary from the list 
     Dim sShipmentID 

     ' Save shipping discounts for each shipment (as written by ShippingDiscountAdjust) 
     If not isNull(orderForm.Value("shipments")) then 
      Set shipments = orderForm.Value("shipments")  
      For Each shipment in shipments    
       sShipmentID = shipment("shipping_method_id") 
      Next 

      if sShipmentID <> "{00000000-0000-0000-0000-005719007655}" and orderForm.value("_cy_shipping_discounts_total") > 0 then 
       orderform.value("_shipping_discount_description") = "" 

       For Each shipment in shipments    
        orderForm.value("_cy_shipping_total") =orderForm.value("_cy_shipping_total") + shipment.value("_cy_shipping_discounts_subtotal") 
        shipment.value("_cy_shipping_discounts_subtotal") = 0 
       Next 

       orderForm.value("_cy_shipping_discounts_total") = 0 
      end if 
     End If 

     MSCSExecute = 1 
    end function 

    sub MSCSOpen(config) 

    end sub 


    sub MSCSClose() 

    end sub 
+0

您在管道的哪個階段放置了組件?你還添加了哪些管道? – James 2009-07-11 20:48:48

2

如果您希望折扣僅適用於用戶選擇了某種送貨方式,那麼這是不可能的。

您可以隨時編寫自定義管道組件,但處理管道中的折扣可能會很複雜。

0

Steve和Erwin是正確的。目前還沒有開箱即用的解決方案,但您可以嘗試使用自定義管道組件或腳本組件解決該問題。

有一個商業的選擇。 Enticify是一個可以替代Commerce Server折扣管道組件的替代產品,支持特定折扣方式amongst other things)。

聲明:我是Enticify員工。

Enticify增加了的概念貨運表達式。您可以像使用那樣使用這些資格表達式(您實際上將其設置在「市場營銷經理資格」標籤中)。但是,您可以通過定位像shipping_method_id這樣的屬性來制定折扣運費方式。

這裏你可以看到裝運表達瞄準shipping_method_id(但你可以瞄準其他貨物性質):

Enticify Shipment Expression targeting the shipping method id

在這裏,你看到它的合格表達式對話框中列出:

enter image description here

運行時,此折扣僅適用於滿足此表達式的貨件。您可以在Enticify Shipping Discounts documentation中閱讀更多內容。這是非常強大的,因爲它也可以用來限定產品折扣(例如,當您選擇第二天的運費時,可以獲得產品X的折扣)。