簡體   English   中英

Shopify 腳本僅在所有產品包含相同標簽時才允許結帳

[英]Shopify script to allow checkout only when all products contain same tag

我正在為 Shopify Plus 編寫一個 LineItem 腳本,該腳本檢查以確保所有訂單項共享至少一個包含“集合”一詞的產品標簽。

只有當所有產品都來自同一個系列時,才能在我們的商店下訂單,因此我們使用特定標簽標記系列中的每個產品。 部分產品包含在多個 collections 中。

我的邏輯是:

  • 遍歷所有訂單項並:
    1. 將包含“集合”的標簽推送到所有標簽數組中
    2. 計算購物車中的行項目。
  • 將唯一值復制到第二個數組
  • 雙循環遍歷唯一值數組和所有標簽數組以計算標簽出現在購物車中的次數
  • 如果標簽出現的次數等於訂單項的數量,則“可以結帳”
quantity_products = 0
all_product_tags = ''
ok_to_checkout = false

all_product_tags = Input.cart.line_items.select do |line_item|
  tag = line_item.variant.product.tags
  quantity_products += 1
end

unique_tags = all_product_tags
unique_tags | split: ' ' | uniq | join: ' '

unique_tags.each do | cart_tags |
  count = 0
  all_product_tags.each do | all_tags |
    if cart_tags = all_tags
      count +=1
    end
  end
  if count = quantity_products
    ok_to_checkout = true
  end
end 

我無法從在線教程中區分使用 Liquid 和 Ruby。 當我嘗試創建唯一數組時出現錯誤。

我看到了這篇文章,但是我的一些產品包含在多個 collections 中,所以它不起作用: Allow shopify cart to checkout only if all cart items have the same specific tag

你能做的唯一一件對我有意義的事情就是迭代購物車。 第一件物品的收藏標簽成為黃金標准。 如果下一個項目中的任何一個不符合該黃金標准,則意味着該產品不是來自同一個系列。 怎么辦? 你要刪除項目嗎? 您不能只是停止結帳。 您不能標記項目,除非向違規項目添加標簽,然后購物車將顯示為非法。 然后你需要 Liquid 來確保非法購物車沒有結賬按鈕。 你在那里玩的非常奇怪的模式。

這不是您對 Ruby 或 Liquid 的問題,而是您將如何正確引導客戶建造一輛通過檢查的推車,以及如何糾正壞車。 您可能不想自動刪除違規商品,但您也不想提交不良購物車。 因此,您幾乎別無選擇,只能根據您添加到違規產品的標簽來實施這種在購物車上顯示/隱藏結帳按鈕的模式,然后確保它們易於查看和刪除。

我打賭你的實際購物車轉化率會因這種模式而直線下降。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM