指令碼要求與限制

若要建立指令碼,您需要 Shopify Plus 方案以級 Script Editor。您也需要瞭解 Ruby 程式語言,或瞭解 Ruby 的開發人員或 Shopify Expert。

指令碼存在某些限制,目的是為了增強安全性,以及確保無論商店中同時有多少客戶在瀏覽,指令碼都能正常執行。為 Shopify 商店建置指令碼時,請留意下列限制。

線上商店和 Storefront API

在您建立 (或編輯) 指令碼時,您應選擇僅在線上商店,或是同時在線上商店和以下應用程式中執行此指令碼:

這些指令碼無法與「購買按鈕」或「批發管道」並用。

已發佈的指令碼

一次只能發佈每種指令碼的一個指令碼。例如,您可以發佈一個商品項目指令碼和一個運費指令碼,但是不能一次發佈兩個商品項目指令碼。

訂單草稿

商品項目指令碼、運送指令碼和付款指令碼不能用於訂單草稿或訂單草稿結帳。

中繼欄位

Shopify 指令碼不能存取中繼欄位

購物車/結帳屬性

Shopify 指令碼無法存取 Shopify Liquid 購物車屬性。您可以新增這些屬性至購物車頁面以收集客戶的額外資訊,但您無法建立指令碼來使用這些資訊。

規則運算式

不支援規則運算式比對。如果要建立商品項目指令碼,您可以使用下列其中一種方法當作變通做法:

佈景主題

您可能必須更新 Liquid 佈景主題以支援指令碼,更重要的是避免造成客戶困惑。例如,某些佈景主題不會在購物車內顯示商品項目折扣。若您碰到此情況,您必須編輯佈景主題以在購物車內顯示商品項目折扣。進一步瞭解您可以針對 Liquid 佈景主題進行哪些類型的修改

資源

指令碼可用的 CPU 和記憶體容量有限。為指令碼保留的資源取決於購物車大小以及指令碼需要的計算量。Shopify 會緊密追蹤這些資源限制,確保您的指令碼能如預期運作。

測試指令碼時,Script Editor 主控台會列印指令碼所使用的分配資源百分比。

輸入/輸出

除了幾個例外情況外,Shopify 指令碼無法輸入/輸出。這表示指令碼無法執行 Web 要求或資料庫呼叫,也無法取得使用者的輸入內容。

不過可使用 puts 方法,將文字列印到 Script Editor App 的主控台中。

時間和隨機性

指令碼無法用於隨機或以時間為依據的計算。Shopify 指令碼無法存取 Time 物件和 rand 方法。

因為每次重新計算購物車總計金額時指令碼都會執行,所以如果客戶經常變更購物車內容,則以時間為依據的指令碼或亂數產生程序將會出現無法預期或令人混淆的結果。不過您可以使用 Launchpad App,排定指令碼在某些事件進行期間執行。

指令碼字元限制

可建立的指令碼長度上限為 16,384 個字元。

準備好開始透過 Shopify 銷售商品了嗎?

免費試用