2016-05-15 23 views
0

店主在Shopify後安裝任何應用程序,幾個應用程序提供一鍵安裝應用程序代碼到活動主題文件。根據我的猜測,這涉及兩個步驟。如何在Shopify主題中自動安裝App的代碼?

  1. 將新的片段,資產添加到主題文件。
  2. 編輯模板或現有片段以包含App#1中添加的片段引用。

雖然#1相當簡單,可以自動完成,但#2需要高度精確的邏輯,以免應用程序打破店面。

我正在尋找任何想法,算法或邏輯來自動執行步驟#2。我想到了以下的方法,但它並非萬無一失。

假設一個應用程序要包括代碼附近添加到購物車按鈕,它可以分析product.liquid文件,然後搜索關鍵字「/購物車」,代碼附加在它附近。或者,它可以查找</form>並在其旁邊附加代碼。

但是,當在Product.liquid中不存在Add to Cart按鈕並且從屬於諸如product-block.liquid之類的東西時,上述兩種方法都會失敗。

如果某些應用程序試圖向Collection.liquid添加代碼,該邏輯可能變得更加複雜和易受攻擊。當我們認爲Shopify主題商店中有350多個主題並且無法測試應用程序以便與所有主題進行集成時,這會變得更加複雜。

我的問題是,在Shopify主題中安裝應用代碼的最佳策略是什麼?

對於我們的應用程序Smart Wishlist,我們執行應用程序代碼的手動安裝,但這不被認爲是商家友好且需要太多支持時間。我們正在嘗試開發一些萬無一失的自動化方法來將代碼安裝到主題文件中。

任何建議,意見,備選方案都竭誠歡迎。

回答

0

也許鎖定窗體關閉標籤?或者更好的形式提交領域我會說。

編輯:抱歉,我回答太快。我剛剛閱讀了關於snippet include的一行。

1

這不是一個關於此事的詳細答案,但正如您所說的使用資產然後使用{%include'my_asset'%}修改液體文件的想法就夠了。對於您想要添加按鈕的部分,我的建議是使用「購物車」表單中的某些「標準」元素,如「購物車/添加」的操作。這意味着通過使用jQuery,如果這個表單存在(通過它的「action」字段找到它),在那裏附加你的按鈕。我希望能給你一些想法。

更新: #2我會使用Shopify API來: 1)找到 '主' 的主題。 2)把它的價值。 3)找到一個標準標籤,如</body></head>,無論適合你。 4)添加我的包含在它的值只是字符串操作,然後再次發佈它回到客戶端。這需要謹慎的行動,因爲你可能會破壞事情,但如果你知道你在做什麼,我認爲這是足夠安全的。

相關問題