2017-02-15 77 views
0

我想在Shopify中編寫一個腳本,以防止在特定產品上呈現折扣。我知道這是不對的,但這樣的事情:某些產品shopify腳本的屏蔽折扣

Input.cart.line_items.each do |line_item| 
    product = line_item.variant.product 

    if product = 123456789 
    CartDiscount.remove("Discount does not apply") 
    end 

end 

Output.cart = Input.cart 

我看着documentation,看到.reject({ message: String })方法,但它適用於整個車。有沒有辦法將這個本地化爲一個實例?

回答

0

老問題,但我找到了一個解決方案:基本上,你不能「折扣本地化」特定產品。你必須阻止整個購物車獲得折扣。這種方法我最終採取低於:

# ID of product you want to block 
productId = 10199241991 

# Runs through a loop of items in your cart 
Input.cart.line_items.each do |line_item| 
    product = line_item.variant.product 
    puts product.id 
    next if product.gift_card? 
    next unless product.id == productId 
    case Input.cart.discount_code 
    when CartDiscount::Percentage 
    Input.cart.discount_code.reject({message: "Cannot be used with this product"}) 
    end 
end 


Output.cart = Input.cart 
0

折扣很容易。首先...從購物車中獲得折扣碼。你知道它適用於整個購物車。現在你有一個金額,或百分比,或者你在代碼中給予客戶的任何東西。現在踢腳本的美麗。

對於每種產品,決定是否打折。如果是,則應用從提供給該物料的折扣代碼中知道的折扣金額。如果它是一種不打折扣的產品,請保留價格。

您正在爲腳本引擎支付大筆費用。如果你不能自己編程,請付錢給別人!學習一個工作腳本來學習,試圖超越自己,你會更好。

因此,您實際上可以拒絕購物車的折扣代碼,但仍然會打折產品,某些產品,並非全部或其他產品。

+0

這並不完全回答我的問題 - 我要本地化的'.reject({消息:字符串})'單品,但仍適用折扣到適用的購物車中的其他物品。這可能嗎? – kawnah

+0

誰標記了正確答案?我爲什麼要打擾這一點。 Amatuer小時... –