阻止销售商品中的附属代码和奖励代码

问题描述 投票:0回答:1

对于 Shopify,使用脚本编辑器,是他们实现以下功能的代码:

阻止所有联盟代码和奖励代码(来自第 3 方应用程序的所有折扣代码)用于 Shopify 商店中的任何促销商品的自定义脚本?

需要一个执行以下操作的脚本:

  • 仅阻止来自第 3 方应用程序的折扣代码应用于所有销售商品。
  • 仅允许在 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 shopify-app shopifyscripts
1个回答
0
投票

要在 Shopify 的脚本编辑器中实现此自定义折扣功能,我们需要创建一个脚本:

  • 阻止来自第 3 方应用程序的促销商品的所有折扣代码。
  • 仅允许在 Shopify 中为非促销商品创建折扣代码。
  • 允许您通过标签或系列指定某些将被阻止使用 3rd 方折扣代码的产品。
  • 确保第 3 方和 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

© www.soinside.com 2019 - 2024. All rights reserved.