指令碼要求與限制
若要建立指令碼,您需要採用 Shopify Plus 方案且安裝 Script Editor。您也需要瞭解 Ruby 程式語言,或瞭解 Ruby 的開發人員或 Shopify 專家。 深入瞭解如何聘請 Shopify 專家。
指令碼存在某些限制,目的是為了增強安全性,以及確保無論商店中同時有多少客戶在瀏覽,指令碼都能正常執行。為 Shopify 商店建置指令碼時,請留意下列限制。
此頁面上
線上商店和 Storefront API
在您建立 (或編輯) 指令碼時,您應選擇僅在線上商店,或是同時在線上商店和以下應用程式中執行此指令碼:
- 以 Storefront API、JavaScript Buy SDK、Mobile Buy SDK (Android 和 iOS) 建立的自訂應用程式
- 會產生結帳作業的自訂應用程式
- Tapcart 和 Plobal 應用程式 的行動版應用程式建立工具
若要讓指令碼成功執行,網站必須內建購物車功能,且不能同時使用購買按鈕、Facebook 或批發銷售管道。
已發佈的指令碼
一次只能發佈每種指令碼的一個指令碼。例如,您可以發佈一個商品項目指令碼和一個運費指令碼,但是不能一次發佈兩個商品項目指令碼。
Shopify 指令碼數量上限
您最多可以建立 200 個 Shopify 指令碼。
訂單草稿
商品項目指令碼、運送指令碼和付款指令碼不能用於訂單草稿或訂單草稿結帳。
中繼欄位
Shopify 指令碼無法存取中繼欄位。
購物車/結帳屬性
Shopify 指令碼無法存取 Shopify Liquid 購物車屬性。您可以新增這些屬性至購物車頁面以蒐集顧客的額外資訊,但無法建立使用這些資訊的指令碼。
折扣代碼
Scripts 指令碼可以存取折扣代碼套用狀態、折扣金額和折扣類型 (固定金額、百分比或運費),但無法存取套用方法 (購物車或商品項目折扣)。因此 Scripts 指令碼無法存取折扣後總金額,也無法存取自動折扣。
存取購物車套用的折扣的商品項目及運送指令碼與折扣組合不相容。.discount_code 方式只能回傳單一折扣代碼。不支援使用折扣組合包含多個折扣代碼的購物車。
商品項目
Scripts 指令碼無法將商品加入購物車,或調高商品的價格。
運費
Scripts 指令碼無法調高運費費率的價格。
規則運算式
不支援規則運算式比對。如果要建立商品項目指令碼,您可以使用下列其中一種方法當作變通做法:
- 分割方法
- start_with 和 end_with 方法
- 包含方法
佈景主題
您可能必須更新 Liquid 佈景主題以支援指令碼,並避免造成顧客困惑。例如,某些佈景主題不會在購物車內顯示商品項目折扣。若您碰到此情況,您必須編輯佈景主題以在購物車內顯示商品項目折扣。進一步瞭解您可以針對 Liquid 佈景主題進行哪些類型的修改。
資源
指令碼可用的 CPU 和記憶體容量有限。為指令碼保留的資源取決於購物車大小以及指令碼需要的計算量。Shopify 會緊密追蹤這些資源限制,確保您的指令碼能如預期運作。
測試指令碼時,Script Editor 主控台會列印指令碼所使用的分配資源百分比。
輸入/輸出
除了幾個例外情況外,Shopify 指令碼無法輸入/輸出。這表示指令碼無法執行 Web 要求或資料庫呼叫,也無法取得使用者的輸入內容。
不過可使用 puts
方法,將文字列印到 Script Editor App 的主控台中。
時間和隨機性
指令碼無法用於隨機或以時間為依據的計算。Shopify 指令碼無法存取 Time
物件和 rand
方法。
因為每次重新計算購物車總計金額時指令碼都會執行,所以如果顧客經常變更購物車內容,則以時間為依據的指令碼或亂數產生程序將會出現無法預期或令人混淆的結果。不過您可以使用 Launchpad 應用程式,排定指令碼在某些事件進行期間執行。
指令碼字元限制
可建立的指令碼長度上限為 24,576 個字元。
訂閱產品訂單
若您的商品項目和運送指令碼為訂閱產品打折,則該折扣適用於以下款項:
- 僅限每次配送付費的第一筆款項 (不適用於已排定的訂單)
- 預付訂閱產品訂單的總金額
深入瞭解訂閱產品和指令碼。
加速結帳作業
當您使用 Shopify 指令碼的加速結帳作業時,系統會在顧客選擇加速付款方式後套用運費折扣,因此訂單金額變更不會在顧客的裝置或瀏覽器中反映。因此訂單金額變更不會在顧客的裝置或瀏覽器中反映。顧客會在加速結帳作業中看見訂單原始價格,但系統會以正確折扣價格向他們收費。
Shopify Point of Sale (POS)
Shopify 指令碼不適用於 Shopify Point of Sale (POS) 應用程式。
重新命名付款閘道
您無法重新命名具有標誌的付款閘道。