行项脚本示例

行项目脚本影响购物车中的项目,并可以更改它们的属性和价格。这些脚本在每次更改购物车属性时运行,例如添加或删除商品、更改送货地址或添加折扣代码。

要使用此页上的模板,请使用空白模板创建一个新脚本。

步骤:

  1. 从你的Shopify管理员,转到应用程序>脚本编辑器
  2. 点击创建脚本
  3. 点击行项目
  4. 选择空白模板,然后按创建脚本
  5. Ruby源代码节,删除默认代码行:<代码>输出。车=输入.车
  6. 从此页复制脚本,并将其粘贴到Ruby源代码部分。
  7. 编辑可定制的设置部分的脚本,以便在存储中发挥作用。
  8. 测试脚本。有关更多信息,请参阅测试和调试Shopify脚本
  9. 后测试:
    • 点击保存草稿保存未发表的脚本草稿,或者
    • 点击保存并发布创建并发布脚本。

分层购物车折扣的花费

使用此脚本提供根据购物车中商品总价值增加的美元金额折扣。这个折扣尽可能平均地分布在购物车中的各个物品上。

例如,如果顾客消费超过150美元,就给他们提供25美元的折扣,如果他们消费超过300美元,就给他们提供50美元的折扣,如果他们消费超过400美元,就给他们提供75美元的折扣。

# ================================ 可定制的设置  ================================# ================================================================#根据消费阈值分级购物车折扣#如果购物车总数大于(或等于)一个输入# threshold,关联的折扣将应用到购物车。的#折扣将尽可能均匀地分摊到所有商品上。# -“threshold”是符合条件所需的花费金额# - 'discount_amount'是应用于#车# - 'discount_message'是显示折扣时的消息#被应用# ================================================================SPENDING_THRESHOLDS阈值:150discount_amount:25discount_message:“花150美元就能得到25美元的折扣!”},阈值:300discount_amount:50discount_message:“花300美元就能得到50美元的折扣!”},阈值:400discount_amount:75discount_message:“花400美元就能减75美元!”},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# DollarDiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DollarDiscountApplicatordef初始化discount_message@discount_messagediscount_message结束def应用line_itemdiscount_amountnew_line_priceline_itemline_price-discount_amountline_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# TieredCartDiscountBySpendCampaign#如果购物车总数大于(或等于)一个输入# threshold,关联的折扣将应用到购物车。的#折扣将尽可能均匀地分摊到所有商品上。# ================================================================TieredCartDiscountBySpendCampaigndef初始化@tierssort_by||:阈值}。反向结束def运行applicable_tier@tiers找到||subtotal_price> =分:One hundred.:阈值])返回如果applicable_tiernil ?discount_applicatorDollarDiscountApplicatorapplicable_tier: discount_message])discount_amountapplicable_tier: discount_amount项目line_itemssort_by|line_item|line_item变体价格自我loop_items项目discount_amountdiscount_applicator结束defloop_itemsline_itemsdiscount_amountdiscount_applicatoravg_discountdiscount_amountto_f1/line_items地图数量:).减少0+)))。2avg_discount分:One hundred.avg_discountdiscount_amount分:One hundred.discount_amountline_itemseach_with_index|line_item指数|打破如果discount_amount< =line_discountavg_discountline_item数量如果discount_amount<line_discount||指数= =line_items大小-1discount_updateline_itemline_price>discount_amount?discount_amountline_itemline_price其他的discount_updateline_itemline_price>line_discount?line_discountline_itemline_price结束discount_amount- =discount_updatediscount_applicator应用line_itemdiscount_update结束结束结束活动TieredCartDiscountBySpendCampaignSPENDING_THRESHOLDS),活动每一个|运动|运动运行输入结束输出输入

按消费分层折扣

使用此脚本提供百分比折扣,折扣根据购物车中商品的总价值增加。

例如,如果顾客消费30美元或以上,就给他们9折,如果他们消费50美元或以上,就给他们15折,如果他们消费100美元或以上,就给他们8折。

# ================================ 可定制的设置  ================================# ================================================================#根据消费门槛分级折扣#如果购物车总数大于(或等于)一个输入# threshold,则关联折扣应用于每个项目。# -“threshold”是符合条件所需的花费金额# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================SPENDING_THRESHOLDS阈值:30.discount_type:百分比discount_amount:10discount_message:“花30美元就能打九折!”},阈值:50discount_type:百分比discount_amount:15discount_message:“花50美元就能打八五折!”},阈值:One hundred.discount_type:百分比discount_amount:20.discount_message:“花100美元就能打8折!”},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# TieredDiscountBySpendCampaign#如果购物车总数大于(或等于)一个输入# threshold,则关联折扣应用于每个项目。# ================================================================TieredDiscountBySpendCampaigndef初始化@tierssort_by||:阈值}。反向结束def运行applicable_tier@tiers找到||subtotal_price> =分:One hundred.:阈值])返回如果applicable_tiernil ?discount_applicatorDiscountApplicatorapplicable_tier: discount_type),applicable_tier: discount_amount),applicable_tier: discount_messageline_items每一个|line_item|下一个如果line_item变体产品gift_card吗?discount_applicator应用line_item结束结束结束活动TieredDiscountBySpendCampaignSPENDING_THRESHOLDS),活动每一个|运动|运动运行输入结束输出输入

按数量分级产品折扣

使用此脚本为特定产品提供批量折扣,折扣百分比根据购物车中这些产品的数量增加。

例如,如果顾客购买2顶或以上帽子,每顶帽子打9折,如果他们购买5顶或以上帽子,每顶帽子打15折。

# ================================ 可定制的设置  ================================# ================================================================#按数量分级产品折扣如果匹配项的总数大于(或#等于)输入的阈值,则相关折扣为#应用于每个匹配项。# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#合格产品。产品/变体ID列表应该只#包含数字(例如。没有引号)。如果使用':all',则此#也可以是“nil”。# - 'tiers'是一个层列表,其中:# -“quantity”是你需要购买的最小数量#合格# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================PRODUCT_DISCOUNT_TIERSproduct_selector_match_type:包括product_selector_type:标签product_selectors:“your_tag”),层:数量:2discount_type:百分比discount_amount:10discount_message:“2人以上9折”},数量:5discount_type:百分比discount_amount:15discount_message:“5岁以上打八五折”},),},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# TieredProductDiscountByQuantityCampaign如果匹配项的总数大于(或#等于)输入的阈值,则相关折扣为#应用于每个匹配项。# ================================================================TieredProductDiscountByQuantityCampaigndef初始化活动@campaigns活动结束def运行@campaigns每一个|运动|product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors),applicable_itemsline_items选择|line_item|product_selector比赛吗?line_item下一个如果applicable_itemsnil ?total_applicable_quantityapplicable_items地图数量:).减少0+运动:层]。sort_by||数量:}。反向applicable_tier找到||数量:< =total_applicable_quantity下一个如果applicable_tiernil ?discount_applicatorDiscountApplicatorapplicable_tier: discount_type),applicable_tier: discount_amount),applicable_tier: discount_messageapplicable_items每一个|line_item|discount_applicator应用line_item结束结束结束结束活动TieredProductDiscountByQuantityCampaignPRODUCT_DISCOUNT_TIERS),活动每一个|运动|运动运行输入结束输出输入

按产品花费分级产品折扣

使用此脚本提供百分比折扣,折扣将根据购物车中特定物品的总价值增加。

例如,如果顾客消费30美元或以上,就给他们9折,如果顾客消费50美元或以上,就给他们15折,如果顾客消费100美元或以上,就给他们8折,但只针对与特定标签匹配的商品。

# ================================ 可定制的设置  ================================# ================================================================#分级产品折扣产品消费Threhsold如果花费在匹配物品上的总金额大于(或#等于)输入的阈值,则相关折扣为#应用于每个匹配项。# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# - 'tiers'是一个层列表,其中:# -“threshold”是需要的最低金额#合格# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================PRODUCT_DISCOUNT_TIERSproduct_selector_match_type:排除product_selector_type:标签product_selectors:“your_tag”“another_tag”),层:阈值:One hundred.discount_type:百分比discount_amount:10discount_message:“花100美元或以上,就能打九折!”},),},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# TieredProductDiscountByProductSpendCampaign如果花费在匹配物品上的总金额大于(或#等于)输入的阈值,则相关折扣为#应用于每个匹配项。# ================================================================TieredProductDiscountByProductSpendCampaigndef初始化活动@campaigns活动结束def运行@campaigns每一个|运动|如果运动: product_selector_type= =:所有total_applicable_costsubtotal_priceapplicable_itemsline_items其他的product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors),applicable_itemsline_items选择|line_item|product_selector比赛吗?line_item下一个如果applicable_itemsnil ?total_applicable_costapplicable_items地图: line_price).减少+结束运动:层]。sort_by||:阈值}。反向applicable_tier找到||total_applicable_cost> =分:One hundred.:阈值])下一个如果applicable_tiernil ?discount_applicatorDiscountApplicatorapplicable_tier: discount_type),applicable_tier: discount_amount),applicable_tier: discount_messageapplicable_items每一个|line_item|discount_applicator应用line_item结束结束结束结束活动TieredProductDiscountByProductSpendCampaignPRODUCT_DISCOUNT_TIERS),活动每一个|运动|运动运行输入结束输出输入

产品折扣

使用此脚本提供特定项目的折扣。

例如,有标签的商品给顾客打九折<代码>折扣

# ================================ 可定制的设置  ================================# ================================================================#按产品折扣任何匹配的项目将按输入的金额打折。# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================PRODUCT_DISCOUNTSproduct_selector_match_type:包括product_selector_type:标签product_selectors:“your_tag”),discount_type:百分比discount_amount:10discount_message:“带标签的产品打九折!”# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# ProductDiscountCampaign任何匹配的项目将按输入的金额打折。# ================================================================ProductDiscountCampaigndef初始化活动@campaigns活动结束def运行@campaigns每一个|运动|product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors),discount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_messageline_items每一个|line_item|下一个除非product_selector比赛吗?line_itemdiscount_applicator应用line_item结束结束结束结束活动ProductDiscountCampaignPRODUCT_DISCOUNTS),活动每一个|运动|运动运行输入结束输出输入

产品折扣按优惠码

如果使用了特定的折扣代码,则使用此脚本提供特定项目的折扣。

例如,有标签的商品给顾客打九折<代码>折扣如果他们使用折扣码<代码>DISCOUNT_10

# ================================ 可定制的设置  ================================# ================================================================#产品折扣折扣码#如果使用了任何匹配的折扣代码,则任何匹配的项目#将按输入的金额折算。# - 'discount_code_match_type'确定是否下面# strings应该是完全匹配或部分匹配。可以是:# - ':exact'用于精确匹配# - ':partial'表示部分匹配# - 'discount_codes'是一个字符串列表,用于标识折扣#代码# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================PRODUCT_DISCOUNTS_BY_DISCOUNT_CODEdiscount_code_match_type:精确discount_codes:“TESTCODE1”“TESTCODE2”),product_selector_match_type:包括product_selector_type:标签product_selectors:“your_tag”),discount_type:百分比discount_amount:10discount_message:“带标签的产品打九折!”# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# DiscountCodeSelector属性中的任意一个匹配#输入的代码。# ================================================================DiscountCodeSelectordef初始化match_typediscount_codes@comparatormatch_type= =:确切?“= =”“有吗?”@discount_codesdiscount_codes地图|discount_code|discount_codeupcase结束def比赛吗?discount_code@discount_codes任何?|代码|discount_code代码upcase发送@comparator代码结束结束# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# ProductDiscountByCodeCampaign#如果使用了任何匹配的折扣代码,则任何匹配的项目#将按输入的金额折算。# ================================================================ProductDiscountByCodeCampaigndef初始化活动@campaigns活动结束def运行返回如果discount_codenil ?@campaigns每一个|运动|discount_code_selectorDiscountCodeSelector运动: discount_code_match_type),运动: discount_codes下一个除非discount_code_selector比赛吗?discount_codeproduct_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors),discount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_messageline_items每一个|line_item|下一个除非product_selector比赛吗?line_itemdiscount_applicator应用line_item结束结束结束结束活动ProductDiscountByCodeCampaignPRODUCT_DISCOUNTS_BY_DISCOUNT_CODE),活动每一个|运动|运动运行输入结束输出输入

购买特定数量的产品,以折扣获得第二数量的产品

如果购买的数量超过一定数量,则使用此脚本提供特定项目的折扣。

例如,为顾客提供三种带标签的商品<代码>折扣第四件商品打五折<代码>折扣

# ================================ 可定制的设置  ================================# ================================================================#买X,买Y买Z#购买一定数量的匹配物品,得到一定数量的物品使用相同匹配项目的#,以应用所输入的折扣。为#的例子:#“买两件带有‘标签’的产品,再买一件#标有“tag”的标签,优惠10%”# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#合格产品。产品/变体ID列表应该只#包含数字(例如。没有引号)。如果使用':all',则此#也可以是“nil”。# - 'quantity_to_buy'是需要购买的产品数量#合格# - 'quantity_to_discount'是要打折的产品数量# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用#在运行多个offer的情况下需要注意的是#产品选择之间不应该有任何重叠#因为这可能会导致额外的折扣。例如,你应该#不要提供“购买1件X产品,5折优惠1件”,以及“购买2件”# X产品,送一件”# ================================================================BUY_X_GET_Y_FOR_Zproduct_selector_match_type:包括product_selector_type::product_selectors:quantity_to_buy:1quantity_to_discount:1discount_type:百分比discount_amount:50discount_message:“买一件,第二件五折!”},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# BuyXGetYForZCampaign#购买一定数量的匹配物品,得到一定数量的物品使用相同匹配项目的#,以应用所输入的折扣。# ================================================================BuyXGetYForZCampaigndef初始化活动@campaigns活动结束def运行@campaigns每一个|运动|product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors),eligible_itemsline_items选择|line_item|product_selector比赛吗?line_item下一个如果eligible_itemsnil ?eligible_itemseligible_itemssort_by|line_item|-line_item变体价格quantity_to_buy运动: quantity_to_buyquantity_to_discount运动: quantity_to_discountbundle_sizequantity_to_buy+quantity_to_discountnumber_of_bundleseligible_items地图数量:).减少0+/bundle_size).地板上number_of_discountable_itemsnumber_of_bundlesquantity_to_discount下一个除非number_of_discountable_items>0discount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_message自我loop_itemsdiscount_applicatoreligible_itemsnumber_of_discountable_itemsquantity_to_buyquantity_to_discount结束结束defloop_itemsdiscount_applicatorline_itemsnum_to_discountquantity_to_buyquantity_to_discount盈余0bundle_sizequantity_to_buy+quantity_to_discountline_items每一个|line_item|line_quantityline_item数量+盈余如果line_quantity>quantity_to_buybundles_per_lineline_quantity/bundle_size).地板上take_quantitybundles_per_linequantity_to_discount盈余+ =line_quantity-bundle_sizebundles_per_line))如果line_item数量>take_quantitydiscount_itemline_item分裂花:take_quantitydiscount_applicator应用discount_item位置line_itemsfind_indexline_itemline_items插入位置+1discount_itemnum_to_discount- =take_quantity其他的discount_applicator应用line_itemnum_to_discount- =line_item数量结束其他的盈余+ =line_quantity结束打破如果num_to_discount< =0结束结束结束活动BuyXGetYForZCampaignBUY_X_GET_Y_FOR_Z),活动每一个|运动|运动运行输入结束输出输入

购买捆绑销售,可以获得额外的折扣产品

如果他们已经购买了许多其他物品,则使用此脚本提供特定物品的折扣。

例如,如果顾客同时购买一顶帽子、一件t恤和一副太阳镜,就可以免费赠送他们一双袜子。

# ================================ 可定制的设置  ================================# ================================================================#购买VWX产品,以Z折扣获得Y产品#购买一捆特定的物品,以折扣价获得另一件物品。#例如:#“买一件t恤、一顶帽子和太阳镜,就能免费得到一双袜子”# - 'bundle_items'是组成# bundle,其中:# - 'product_id'是产品的ID# - 'quantity_needed'是完成所需的数量#捆绑包# - 'quantity_to_buy'是符合条件的捆绑包数量#购买折扣产品# - 'discount_product_selector_match_type#查找与输入匹配或不匹配的产品#选择器。可以是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'discount_product_selector_type'决定如何合格#产品将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'discount_product_selectors'是一个标识符列表(从#以上)的合格产品。产品/变体ID列表#应该只包含数字(例如。没有引号)。如果':all'为# used,这也可以是'nil'。# - 'quantity_to_discount'是要折扣的项目数量每报价## - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================BUNDLE_DISCOUNTSbundle_items:product_id:1234567890987quantity_needed:1},product_id:1234567890986quantity_needed:1},),quantity_to_buy:1discount_product_selector_match_type:包括discount_product_selector_type: product_iddiscount_product_selectors:1234567890123),quantity_to_discount:1discount_type:百分比discount_amount:10discount_message:“购买VWX产品,9折获得Y产品”},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# BundleSelector#找到所输入的bundle中的任何项目并保存#。# ================================================================BundleSelectordef初始化bundle_items@bundle_itemsbundle_items减少({})|accbundle_item|accbundle_item: product_id]]cart_items:[],quantity_needed:bundle_item: quantity_needed),total_quantity:0acc结束结束def构建line_items每一个|line_item|下一个除非@bundle_itemsline_item变体产品id@bundle_itemsline_item变体产品id] [: cart_items]。line_item@bundle_itemsline_item变体产品id] [: total_quantity+ =line_item数量结束@bundle_items结束结束# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# DiscountLoop#循环所提供的行项并对所提供的行项进行折扣按所提供的折扣编号。# ================================================================DiscountLoopdef初始化discount_applicator@discount_applicatordiscount_applicator结束defloop_itemsline_itemsnum_to_discountline_itemseach_with_index|line_item|打破如果num_to_discount< =0如果line_item数量>num_to_discountsplit_line_itemline_item分裂花:num_to_discount@discount_applicator应用split_line_item位置line_itemsfind_indexline_itemline_items插入位置+1split_line_item打破其他的@discount_applicator应用line_itemnum_to_discount- =line_item数量结束结束结束结束# ================================================================# BundleDiscountCampaign#如果输入的bundle存在,则输入的折扣为#应用到输入的产品。# ================================================================BundleDiscountCampaigndef初始化活动@campaigns活动结束def运行@campaigns每一个|运动|bundle_selectorBundleSelector运动: bundle_items])bundle_itemsbundle_selector构建下一个如果bundle_items任何?|product_idproduct_info|product_info: total_quantity<product_info: quantity_needed结束num_bundlesbundle_items地图|product_idproduct_info|product_info: total_quantity/product_info: quantity_needed])结束num_bundlesnum_bundles最小值地板上product_selectorProductSelector运动: discount_product_selector_match_type),运动: discount_product_selector_type),运动: discount_product_selectors),discount_itemsline_items选择|line_item|product_selector比赛吗?line_item下一个如果discount_itemsnil ?discount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_messagediscount_loopDiscountLoopdiscount_applicatordiscount_looploop_itemsdiscount_items运动: quantity_to_discountnum_bundles))结束结束结束活动BundleDiscountCampaignBUNDLE_DISCOUNTS),活动每一个|运动|运动运行输入结束输出输入

包的折扣

使用此脚本可在将特定产品集添加到购物车时提供折扣。

例如,为顾客购买一件t恤、一顶帽子和一副太阳镜提供八折优惠。

# ================================ 可定制的设置  ================================# ================================================================#购买WXY产品,获得Z折扣#购买一捆特定的产品,以a的价格购买#折扣。例如:#“买一件t恤、一顶帽子和太阳镜,每件都打八折”# - 'bundle_items'是组成# bundle,其中:# - 'product_id'是产品的ID# - 'quantity_needed'是完成所需的数量#捆绑包# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================BUNDLE_DISCOUNTSbundle_items:product_id:1234567890987quantity_needed:1},product_id:1234567890986quantity_needed:1},),discount_type:百分比discount_amount:10discount_message:“购买X产品和Y产品,可以打九折!”},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# BundleSelector#找到所输入的bundle中的任何项目并保存#。# ================================================================BundleSelectordef初始化bundle_items@bundle_itemsbundle_items减少({})|accbundle_item|accbundle_item: product_id]]cart_items:[],quantity_needed:bundle_item: quantity_needed),total_quantity:0acc结束结束def构建line_items每一个|line_item|下一个如果line_itemline_price_changed吗?下一个除非@bundle_itemsline_item变体产品id@bundle_itemsline_item变体产品id] [: cart_items]。line_item@bundle_itemsline_item变体产品id] [: total_quantity+ =line_item数量结束@bundle_items结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# DiscountLoop#循环所提供的行项并对所提供的行项进行折扣按所提供的折扣编号。# ================================================================DiscountLoopdef初始化discount_applicator@discount_applicatordiscount_applicator结束defloop_itemsline_itemsnum_to_discountline_itemseach_with_index|line_item|打破如果num_to_discount< =0如果line_item数量>num_to_discountsplit_line_itemline_item分裂花:num_to_discount@discount_applicator应用split_line_item位置line_itemsfind_indexline_itemline_items插入位置+1split_line_item打破其他的@discount_applicator应用line_itemnum_to_discount- =line_item数量结束结束结束结束# ================================================================# BundleDiscountCampaign#如果输入的bundle存在,则输入的折扣为#应用到bundle中的每个项目。# ================================================================BundleDiscountCampaigndef初始化活动@campaigns活动结束def运行@campaigns每一个|运动|bundle_selectorBundleSelector运动: bundle_items])bundle_itemsbundle_selector构建下一个如果bundle_items任何?|product_idproduct_info|product_info: total_quantity<product_info: quantity_needed结束num_bundlesbundle_items地图|product_idproduct_info|product_info: total_quantity/product_info: quantity_needed])结束num_bundlesnum_bundles最小值地板上discount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_messagediscount_loopDiscountLoopdiscount_applicatorbundle_items每一个|product_idproduct_info|discount_looploop_itemsproduct_info: cart_items),product_info: quantity_needednum_bundles),结束结束结束结束活动BundleDiscountCampaignBUNDLE_DISCOUNTS),活动每一个|运动|运动运行输入结束输出输入

买一送一的优惠

当客户购买一定数量的不同产品时,使用此脚本提供商品的百分比折扣。

例如,如果顾客购买两件t恤,就可以打九折买一顶帽子。

# ================================ 可定制的设置  ================================# ================================================================#购买W产品V,以Z折扣获得Y产品X#购买一定数量的匹配物品,得到一定数量的#一组不同的匹配项目与输入的折扣#应用。例如:#“买两件t恤,打九折送一顶帽子”# - 'buy_product_selector_match_type'决定我们是否查看#用于与输入的选择器匹配或不匹配的产品。#可以是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'buy_product_selector_type'确定合格的产品#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'buy_product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该只#包含数字(例如。没有引号)。如果使用':all',则此#也可以是“nil”。# - 'quantity_to_buy'是需要购买的产品数量#合格# -“get_selector_match_type”与“Buy”相同#版本以上# -“get_product_selector_type”与“Buy”相同#版本以上# - 'get_product_selectors'和' Buy '的意思相同#版本以上# - 'quantity_to_discount'是要打折的产品数量# - 'allow_incomplete_bundle'确定是否部分#商品要打折,可以打折,也可以全部打折#需要在场。可以是:# - 'true'# - 'false'# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================BUYVOFW_GETXOFY_FORZbuy_product_selector_match_type:包括buy_product_selector_type:标签buy_product_selectors:“your_tag”“another_tag”),quantity_to_buy:1get_product_selector_match_type:包括get_product_selector_type:标签get_product_selectors:“your_other_tag”“a_different_tag”),quantity_to_discount:1allow_incomplete_bundle:discount_type:百分比discount_amount:One hundred.discount_message:“买X产品,免费送Y产品!”},buy_product_selector_match_type:包括buy_product_selector_type: product_idbuy_product_selectors:12345678909871234567890986),quantity_to_buy:1get_product_selector_match_type:包括get_product_selector_type: product_idget_product_selectors:12345678909851234567890984),quantity_to_discount:1allow_incomplete_bundle:discount_type:美元discount_amount:10discount_message:“买X产品,Y产品就能减价10美元!”},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# DiscountLoop#循环所提供的行项并对所提供的行项进行折扣按所提供的折扣编号。# ================================================================DiscountLoopdef初始化discount_applicator@discount_applicatordiscount_applicator结束defloop_itemsline_itemsnum_to_discountline_items每一个|line_item|打破如果num_to_discount< =0如果line_item数量>num_to_discountsplit_line_itemline_item分裂花:num_to_discount@discount_applicator应用split_line_item位置line_itemsfind_indexline_itemline_items插入位置+1split_line_item打破其他的@discount_applicator应用line_itemnum_to_discount- =line_item数量结束结束结束结束# ================================================================# BuyVofWGetXofYForZCampaign#购买一定数量的匹配物品,得到一定数量的#一组不同的匹配项目与输入的折扣#应用。# ================================================================BuyVofWGetXofYForZCampaigndef初始化活动@campaigns活动结束def运行@campaigns每一个|运动|buy_product_selectorProductSelector运动: buy_product_selector_match_type),运动: buy_product_selector_type),运动: buy_product_selectors),get_product_selectorProductSelector运动: get_product_selector_match_type),运动: get_product_selector_type),运动: get_product_selectors),buy_items[]get_item[]line_items每一个|line_item|buy_itemsline_item如果buy_product_selector比赛吗?line_itemget_itemline_item如果get_product_selector比赛吗?line_item结束下一个如果buy_items空的吗?||get_item空的吗?get_itemget_itemsort_by|line_item|line_item变体价格quantity_to_buy运动: quantity_to_buyquantity_to_discount运动: quantity_to_discountbuy_offersbuy_items地图数量:).减少0+/quantity_to_buy).地板上如果运动: allow_incomplete_bundlenumber_of_bundlesbuy_offers其他的get_offersget_item地图数量:).减少0+/quantity_to_discount).地板上number_of_bundlesbuy_offersget_offers]。最小值结束number_of_discountable_itemsnumber_of_bundlesquantity_to_discount下一个除非number_of_discountable_items>0discount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_messagediscount_loopDiscountLoopdiscount_applicatordiscount_looploop_itemsget_itemnumber_of_discountable_items结束结束结束活动BuyVofWGetXofYForZCampaignBUYVOFW_GETXOFY_FORZ),活动每一个|运动|运动运行输入结束输出输入

以特定的金额购买特定数量的产品

使用此脚本以选定的价格提供一些产品。

例如,以20美元的价格向顾客提供2件t恤。

# ================================ 可定制的设置  ================================# ================================================================#花Z美元购买Y产品的X#以特定价格购买特定数量的匹配物品。#例如:“20美元买两件t恤”# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# - 'quantity_to_buy'是需要购买的产品数量#合格# - 'final_price '是所有产品的收费#是报价的一部分# - 'discount_message'是显示折扣时的消息#被应用# ================================================================BUY_X_GET_Y_FOR_Zproduct_selector_match_type:包括product_selector_type:标签product_selectors:“your_tag”),quantity_to_buy:2final_price:One hundred.discount_message:“20美元买两个”},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DollarDiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DollarDiscountApplicatordef初始化discount_message@discount_messagediscount_message结束def应用line_itemdiscount_amountnew_line_priceline_itemline_price-discount_amountline_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# BuyXOfYForZCampaign#以特定价格购买特定数量的匹配物品。# ================================================================BuyXOfYForZCampaigndef初始化活动@campaigns活动结束def运行@campaigns每一个|运动|product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors),eligible_itemsline_items选择|line_item|product_selector比赛吗?line_item下一个如果eligible_itemsnil ?eligible_item_counteligible_items地图数量:).减少0+quantity_to_buy运动: quantity_to_buynumber_of_offerseligible_item_count/quantity_to_buy).地板上下一个除非number_of_offers>0number_of_discountable_itemsnumber_of_offersquantity_to_buytotal_offer_price分:One hundred.number_of_offers运动: final_price])discount_applicatorDollarDiscountApplicator运动: discount_message])自我loop_itemseligible_itemsnumber_of_discountable_itemstotal_offer_pricediscount_applicator结束结束defloop_itemsline_itemsnum_to_discounttotal_pricediscount_applicatorcurrent_priceavg_pricetotal_price1/num_to_discountline_itemsline_itemssort_by|line_item|line_item变体价格line_items每一个|line_item|打破如果num_to_discount< =0如果line_item数量>num_to_discountsplit_line_itemline_item分裂花:num_to_discountdiscount_amountsplit_line_itemline_price-total_price-current_pricediscount_applicator应用split_line_itemdiscount_amount位置line_itemsfind_indexline_itemline_items插入位置+1split_line_item打破elsifline_item数量= =num_to_discountdiscount_amountline_itemline_price-total_price-current_pricediscount_applicator应用line_itemdiscount_amount打破其他的如果line_item变体价格< =avg_pricecurrent_price+ =line_itemline_price其他的discount_amountline_item变体价格-avg_priceline_item数量current_price+ =line_itemline_price-discount_amountdiscount_applicator应用line_itemdiscount_amount结束num_to_discount- =line_item数量结束结束结束结束活动BuyXOfYForZCampaignBUY_X_GET_Y_FOR_Z),活动每一个|运动|运动运行输入结束输出输入

购买即送赠品

如果购物车总额大于某一特定金额,则使用此脚本提供特定产品的折扣。

例如,如果顾客消费超过75美元,为他们提供免费礼物。

# ================================ 可定制的设置  ================================# ================================================================#花X美元,以Z折扣获得Y产品#如果购物车总数大于(或等于)输入的#阈值(减去折扣金额),则输入的#匹配项将按输入的金额折扣价。# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# -“threshold”是符合资格所需花费的金额# - 'quantity_to_discount'是要折扣的项目数量#如果合格# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================SPENDX_GETY_FORZproduct_selector_match_type:包括product_selector_type: product_idproduct_selectors:1234567890123),阈值:75quantity_to_discount:1discount_type:百分比discount_amount:One hundred.discount_message:“花75美元或更多就能免费获得X产品!”},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# DiscountLoop#循环所提供的行项并对所提供的行项进行折扣按所提供的折扣编号。# ================================================================DiscountLoopdef初始化discount_applicator@discount_applicatordiscount_applicator结束defloop_itemsline_itemsnum_to_discountline_items每一个|line_item|打破如果num_to_discount< =0如果line_item数量>num_to_discountsplit_line_itemline_item分裂花:num_to_discount@discount_applicator应用split_line_item位置line_itemsfind_indexline_itemline_items插入位置+1split_line_item打破其他的@discount_applicator应用line_itemnum_to_discount- =line_item数量结束结束结束结束# ================================================================# SpendXGetYForZCampaign#如果购物车总数大于(或等于)输入的#阈值(减去折扣金额),则输入的#匹配项将按输入的金额折扣价。# ================================================================SpendXGetYForZCampaigndef初始化活动@campaigns活动结束def运行@campaigns每一个|运动|阈值分:One hundred.运动:阈值下一个如果subtotal_price<阈值product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors),eligible_itemsline_items选择|line_item|product_selector比赛吗?line_item下一个如果eligible_itemsnil ?eligible_itemseligible_itemssort_by|line_item|line_item变体价格num_to_discount运动: quantity_to_discountcart_totalsubtotal_priceeligible_items每一个|line_item|打破如果num_to_discount< =0如果line_item数量>num_to_discountcart_total- =line_item变体价格num_to_discount打破其他的cart_total- =line_itemline_pricenum_to_discount- =line_item数量结束结束下一个如果cart_total<阈值discount_applicatordiscount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_messagediscount_loopDiscountLoopdiscount_applicatordiscount_looploop_itemseligible_items运动: quantity_to_discount])结束结束结束活动SpendXGetYForZCampaignSPENDX_GETY_FORZ),活动每一个|运动|运动运行输入结束输出输入

产品折扣由客户标签

使用此脚本为带有特定标签的客户提供特定产品的折扣。

例如,如果客户有<代码>贵宾标签。

# ================================ 可定制的设置  ================================# ================================================================#产品折扣按客户标签如果我们有一个匹配的客户(通过标签),输入的折扣#将应用于任何匹配项。# - 'customer_tag_match_type'决定我们是否寻找客户#是否使用输入的标签进行标记。可以是:# - ':include'检查客户是否被标记# - ':exclude'以确保客户没有被标记# - 'customer_tags'是用于识别合格标签的列表#客户# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================DISCOUNTS_FOR_CUSTOMER_TAGcustomer_tag_match_type:包括customer_tags:“贵宾”),product_selector_match_type:包括product_selector_type::product_selectors:discount_type:百分比discount_amount:20.discount_message:“VIP客户有折扣!”},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# CustomerTagSelector#查找所提供的客户是否有任何输入的标记。# ================================================================CustomerTagSelectordef初始化match_type标签@comparatormatch_type= =:包括?“什么?”“没有吗?”@ tags标签地图|标签|标签downcase结束def比赛吗?客户customer_tags客户标签地图|标签|标签downcase@ tagscustomer_tags).发送@comparator结束结束# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# DiscountForCustomerTagCampaign如果我们有一个匹配的客户(通过标签),输入的折扣#应用于任何匹配项。# ================================================================DiscountForCustomerTagCampaigndef初始化活动@campaigns活动结束def运行返回除非客户标签@campaigns每一个|运动|customer_tag_selectorCustomerTagSelector运动: customer_tag_match_type),运动: customer_tags])下一个除非customer_tag_selector比赛吗?客户product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectorsdiscount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_messageline_items每一个|line_item|下一个除非product_selector比赛吗?line_itemdiscount_applicator应用line_item结束结束结束结束活动DiscountForCustomerTagCampaignDISCOUNTS_FOR_CUSTOMER_TAG),活动每一个|运动|运动运行输入结束输出输入

产品折扣由客户营销ob欧宝娱乐app下载地址

使用此脚本向接受营销的客户提供特定产品的折扣。ob欧宝娱乐app下载地址

例如,为任何接受营销的客户提供10%的产品折扣。ob欧宝娱乐app下载地址

# ================================ 可定制的设置  ================================# ================================================================#客户营销的产品折扣ob欧宝娱乐app下载地址#如果客户接受营销,则任何匹配的项目都是ob欧宝娱乐app下载地址#以输入的金额折现。# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================PRODUCT_DISCOUNTS_BY_CUSTOMER_ob欧宝娱乐app下载地址MARKETINGproduct_selector_match_type:包括product_selector_type::product_selectors:discount_type:百分比discount_amount:10discount_message:“订阅客户9折优惠!”# ================================ 脚本代码(不要编辑 ) ===============================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# ProductDiscountByCustomerob欧宝娱乐app下载地址MarketingCampaign#如果客户接受营销,则任何匹配的项目都是ob欧宝娱乐app下载地址#以输入的金额折现。# ================================================================ProductDiscountByCustomerob欧宝娱乐app下载地址MarketingCampaigndef初始化活动@campaigns活动结束def运行返回如果客户nil ?@campaigns每一个|运动|下一个除非客户accepts_ob欧宝娱乐app下载地址marketing吗?product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectorsdiscount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_messageline_items每一个|line_item|下一个除非product_selector比赛吗?line_itemdiscount_applicator应用line_item结束结束结束结束活动ProductDiscountByCustomerob欧宝娱乐app下载地址MarketingCampaignPRODUCT_DISCOUNTS_BY_CUSTOMER_ob欧宝娱乐app下载地址MARKETING),活动每一个|运动|运动运行输入结束输出输入

产品折扣按客户订单计数

使用此脚本为具有特定订单数量的客户提供特定产品的折扣。

例如,为任何没有订单的客户提供10%的折扣。

# ================================ 可定制的设置  ================================# ================================================================#产品折扣按订单计数#如果客户已经下了匹配数量的订单,任何#匹配项将按输入的金额折扣价。# - 'order_count_match_type'决定我们如何比较#客户的订单数量到输入的限制。可以是:# - ':greater_than'以确保客户的订单计数#大于输入的限制# - ':greater_than_equal'确保客户的订单# count大于或等于输入的限制# - ':less_than'以确保客户的订单计数为#小于输入的限制# - ':less_than_equal'确保客户的订单# count小于或等于输入的限制# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# - 'discount_type'是要提供的折扣类型。可以#:# - ': % '# - ':dollar'# - 'discount_amount'是百分比/美元折扣# apply(每项)# - 'discount_message'是显示折扣时的消息#被应用# ================================================================PRODUCT_DISCOUNTS_BY_ORDER_COUNTorder_count_match_type: less_thanorder_count_limit:1product_selector_match_type:包括product_selector_type::product_selectors:discount_type:百分比discount_amount:10discount_message:“首次购房者打九折!”# ================================ 脚本代码(不要编辑 ) ===============================# ================================================================# OrderCountSelector#查找客户是否下了一定数量的订单# ================================================================OrderCountSelectordef初始化match_type限制@match_typematch_type@limit限制结束def比赛吗?客户如果自我respond_to吗?@match_type自我发送@match_type客户@limit其他的提高RuntimeError“无效的订单计数匹配类型”结束结束defgreater_than客户限制客户orders_count>限制结束defgreater_than_equal客户限制客户orders_count> =限制结束defless_than客户限制客户orders_count<限制结束defless_than_equal客户限制客户orders_count< =限制结束结束# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DiscountApplicator#将输入的折扣应用到所提供的行项目。# ================================================================DiscountApplicatordef初始化discount_typediscount_amountdiscount_message@discount_typediscount_type@discount_messagediscount_message@discount_amount如果discount_type= =: %1-discount_amount0.01其他的分:One hundred.discount_amount结束结束def应用line_itemnew_line_price如果@discount_type= =: %line_itemline_price@discount_amount其他的line_itemline_price-@discount_amountline_item数量),]。马克斯结束line_itemchange_line_pricenew_line_price信息:@discount_message结束结束# ================================================================# ProductDiscountByOrderCountCampaign#如果客户已经下了匹配数量的订单,任何#匹配项将按输入的金额折扣价。# ================================================================ProductDiscountByOrderCountCampaigndef初始化活动@campaigns活动结束def运行返回如果客户nil ?@campaigns每一个|运动|order_count_selectorOrderCountSelector运动: order_count_match_type),运动: order_count_limit下一个除非order_count_selector比赛吗?客户product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectorsdiscount_applicatorDiscountApplicator运动: discount_type),运动: discount_amount),运动: discount_messageline_items每一个|line_item|下一个除非product_selector比赛吗?line_itemdiscount_applicator应用line_item结束结束结束结束活动ProductDiscountByOrderCountCampaignPRODUCT_DISCOUNTS_BY_ORDER_COUNT),活动每一个|运动|运动运行输入结束输出输入

禁用折扣代码

使用此脚本可禁用在结帐过程中使用折扣代码。

例如,当你的商店正在促销时,防止顾客使用折扣代码。

# ================================ 可定制的设置  ================================# ================================================================#禁用折扣代码使用#任何折扣代码将被拒绝与输入的消息。# - 'REJECTION_MESSAGE'是显示折扣的消息#代码被拒绝# ================================================================REJECTION_MESSAGE“本次促销期间不能使用折扣码”# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# DisableDiscountCodesCampaign#任何折扣代码将被拒绝与输入的消息。# ================================================================DisableDiscountCodesCampaigndef初始化rejection_message@rejection_messagerejection_message结束def运行返回如果discount_codenil ?discount_code拒绝信息:@rejection_message结束结束活动DisableDiscountCodesCampaignREJECTION_MESSAGE),活动每一个|运动|运动运行输入结束输出输入

禁用产品折扣代码

如果购物车中有特定的产品,则使用此脚本禁止在结帐过程中使用折扣代码。

例如,如果产品带有<代码>折扣在手推车里。

# ================================ 可定制的设置  ================================# ================================================================禁用产品的折扣代码#是否使用任何匹配的折扣代码,以及任何匹配的项目#是在购物车中,折扣代码被拒绝与输入#消息。# - 'discount_code_match_type'确定是否下面# strings应该是完全匹配或部分匹配。可以是:# - ':exact'用于精确匹配# - ':partial'表示部分匹配# - 'discount_codes'是一个字符串列表,用于标识折扣#代码# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# - 'rejection_message'是显示折扣的消息#代码被拒绝# ================================================================REJECT_DISCOUNT_CODE_FOR_PRODUCTSdiscount_code_match_type:精确discount_codes:“TESTCODE1”“TESTCODE2”),product_selector_match_type:包括product_selector_type:标签product_selectors:“折扣”),rejection_message:“折扣代码不能用于‘打折’产品”# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# DiscountCodeSelector属性中的任意一个匹配#输入的代码。# ================================================================DiscountCodeSelectordef初始化match_typediscount_codes@comparatormatch_type= =:确切?“= =”“有吗?”@discount_codesdiscount_codes地图|discount_code|discount_codeupcase结束def比赛吗?discount_code@discount_codes任何?|代码|discount_code代码upcase发送@comparator代码结束结束# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# DisableDiscountCodesForProductsCampaign#是否使用任何匹配的折扣代码,以及任何匹配的项目#是在购物车中,折扣代码被拒绝与输入#消息。# ================================================================DisableDiscountCodesForProductsCampaigndef初始化活动@campaigns活动结束def运行返回如果discount_codenil ?@campaigns每一个|运动|discount_code_selectorDiscountCodeSelector运动: discount_code_match_type),运动: discount_codes下一个除非discount_code_selector比赛吗?discount_codeproduct_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors),下一个除非line_items任何?|line_item|product_selector比赛吗?line_itemdiscount_code拒绝信息:运动: rejection_message])结束结束结束活动DisableDiscountCodesForProductsCampaignREJECT_DISCOUNT_CODE_FOR_PRODUCTS),活动每一个|运动|运动运行输入结束输出输入

限制产品数量

使用此脚本将数量限制应用于特定产品。

例如,防止客户在一次订单中购买超过一个“X产品”。

# ================================ 可定制的设置  ================================# ================================================================#产品数量限制如果任意匹配项的数量大于#输入的阈值,多余的物品将从购物车中移除。#需要注意的是,我们不会通知客户#当这种情况发生时。# - 'enable'决定活动是否运行。可以是:# - 'true'运行# - 'false'表示不运行# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - ':all'用于所有产品# - 'product_selectors'是一个标识符列表(从上面)#用于合格产品。产品/变体ID列表应该#只包含数字(例如。没有引号)。如果使用':all',# this也可以是'nil'。# - 'variant_level_limit'确定是否低于限制#应用于变量或总量级别。为#示例,我可以有X个单独匹配的项目,#或者我只能有X个匹配的项目总数?#可以是:# - 'true'限制在一个变量级别# -“false”限制总数# - 'quantity_allowed'是允许的产品数量# ================================================================QUANTITY_LIMITS启用:真正的活动:product_selector_match_type:包括product_selector_type:标签product_selectors:“有限”),variant_level_limit:真正的quantity_allowed:2},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束def所有line_item真正的结束结束# ================================================================# ProductQuantityLimitCampaign如果任意匹配项的数量大于#输入的阈值,多余的物品将从购物车中移除。# ================================================================ProductQuantityLimitCampaigndef初始化启用活动@enable启用@campaigns活动结束def运行返回除非@enable@campaigns每一个|运动|product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors如果运动: variant_level_limitapplicable_items{}line_items每一个|line_item|下一个除非product_selector比赛吗?line_itemidline_item变体id如果applicable_itemsid]。nil ?applicable_itemsid项目:[],total_quantity:0结束applicable_itemsid] [:项目]。line_itemapplicable_itemsid] [: total_quantity+ =line_item数量结束下一个如果applicable_itemsnil ?applicable_items每一个|id信息|下一个除非信息: total_quantity>运动: quantity_allowednum_to_remove信息: total_quantity-运动: quantity_allowed自我loop_items信息:项目),num_to_remove结束其他的applicable_itemsline_items选择|line_item|product_selector比赛吗?line_item下一个如果applicable_itemsnil ?total_quantityapplicable_items地图数量:).减少0+下一个除非total_quantity>运动: quantity_allowednum_to_removetotal_quantity-运动: quantity_allowed自我loop_itemsapplicable_itemsnum_to_remove结束结束结束defloop_itemsline_itemsnum_to_removeline_items每一个|line_item|如果line_item数量>num_to_removesplit_line_itemline_item分裂花:num_to_remove打破其他的指数line_itemsfind_indexline_itemline_itemsdelete_at指数num_to_remove- =line_item数量结束打破如果num_to_remove< =0结束结束结束活动ProductQuantityLimitCampaignQUANTITY_LIMITS:使),QUANTITY_LIMITS:活动),),活动每一个|运动|运动运行输入结束输出输入

准备好开始与ShoOB欧宝娱乐APPpify销售?

免费试用