簡體   English   中英

Shopify 獲取所有運費

[英]Shopify get all shipping rates

我正在為我的產品頁面創建一個進度條,顯示在獲得免費送貨之前您必須花費多少。 一切都很好,除了我無法獲得客戶免費送貨的運費。 目前我的請求是這樣的:

if (cart.items.some(i => i.requires_shipping === true)) {
   const url = '/cart/shipping_rates.json?' + encodeURI('shipping_address[zip]={$zip}&shipping_address[country]={$country}');
   jQuery.getJSON(url, function(shipping_rates) {
     console.log(shipping_rates);
   });
 }

If 語句檢查產品是否在需要運輸的購物車中。 通過此設置,我將獲得基於當前購物車價值的送貨方式。 說明:如果購物車價值低於 25 歐元的免運費閾值,送貨方式顯示運費為 3.5 歐元,一旦購物車價值高於閾值,則表明免運費。

我想根據客戶居住的國家/地區獲得閾值。有沒有一種方法可以通過請求獲得閾值,而無需根據 shipping_rates 做出復雜的邏輯?

這種方法的問題是您的請求正在檢索給定訂單的當前可用運費,但它們沒有顯示下一個級別。

這種方法存在一些問題:

  1. 您不會獲得下一級詳細信息(例如距離下一次發貨還有多少美元)。 最好將這些信息存儲在某個地方,而 JS 不是一個好地方。
  2. 我不確定此時是否會計算 Script Editor / Shopify Functions 運費折扣。 它將在結帳步驟中,但我從未聽說過在購物車請求級別發生過這種情況。 如果我的擔憂是真的,那么這個端點就不是作為真相來源的最佳選擇。
  3. 您正在發出 javascript 請求,這需要時間並假設您在某處顯示該信息,您正在遇到回流和 CLS 問題 3.1 這樣的請求可能會失敗。

由於您需要在某處定義業務邏輯並且您無法擺脫該要求,因此我強烈建議將該邏輯保留在元字段/主題定制器(等級、折扣值)中並使用流動代碼計算所有內容。 刷新時,您可以使用 Section Rendering API 重新加載頁面的給定部分。 它是這樣解決上述問題的:

  1. 您的層設置存儲在可以使用 liquid 訪問的字段/主題定制器中。
  2. 您無需擔心 API 的虛假結果(管理面板中設置的運費與可能的折扣),因為這是由您定義的。 缺點是您需要在兩個地方保持折扣邏輯 - 后端和前端(流動性)並保持同步。
  3. 因為您使用 liquid 計算所有內容,所以不會出現回流、加載獲取數據和內容布局偏移的問題。

暫無
暫無

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

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