2017-02-15 13 views
0

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 })方法を見ましたが、それは全体のカートに適用されます。これを1つのインスタンスにローカライズする方法はありますか?

答えて

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

誰が正しい答えをマークしますか?なぜ私はこれを気にするのですか?アマチュア時間... –

関連する問題