对于 Shopify,使用脚本编辑器,是他们实现以下功能的代码:
阻止所有联盟代码和奖励代码(来自第 3 方应用程序的所有折扣代码)用于 Shopify 商店中的任何促销商品的自定义脚本?
需要一个执行以下操作的脚本:
下面的代码仅适用于单个商品,如果您的购物车中有多个商品,则折扣代码根本不起作用。
# ID of product you want to block
productId = 8883643220277
# 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
要在 Shopify 的脚本编辑器中实现此自定义折扣功能,我们需要创建一个脚本:
这里有一个适合您需求的优化脚本:
# Define tags or collections to block discounts
BLOCKED_TAGS = ["sale", "discount-exempt"] # Tags for products you want to block from 3rd-party discounts
BLOCKED_COLLECTIONS = ["sale-collection"] # Collections to block from 3rd-party discounts
# Checks if a line item is in a sale/blocked collection or has a blocked tag
def sale_item?(product)
(product.tags & BLOCKED_TAGS).any? || (product.collections.map(&:handle) & BLOCKED_COLLECTIONS).any?
end
# Checks if a discount code is from a 3rd-party app
def third_party_discount?(discount_code)
discount_code && discount_code.starts_with?("APP_") # Assuming 3rd-party codes have a specific prefix like "APP_"
end
Input.cart.line_items.each do |line_item|
product = line_item.variant.product
# Check if product is a sale item or in blocked collection/tag
if sale_item?(product)
# Block discount code if it's from a 3rd-party app
if third_party_discount?(Input.cart.discount_code.code)
Input.cart.discount_code.reject({message: "Cannot be used on sale items or selected products"})
end
end
end
Output.cart = Input.cart
此脚本假设:
第三方折扣代码具有特定标识符或前缀(例如 APP_)。根据您的应用程序的设置调整此标识符。 您想要限制折扣的产品应标记为促销或免折扣,或放置在特定系列中,例如促销系列。
注意:脚本编辑器仅适用于 Shopify Plus 计划,并且在检查折扣代码是否为第三方代码方面有限制。但是,此脚本的设置是为了在这些限制内尽可能实现目标。
专业提示:在 Shopify 上管理联营公司并跟踪他们的折扣和佣金可能会很棘手,尤其是当您有这样的独特折扣规则时。如果您正在寻找联属网络营销解决方案,请查看Afflr。