2016-05-15 16 views
0

店主がアプリをインストールした後、いくつかのアプリは、アクティブなテーマファイルにアプリのコードをワンクリックでインストールできます。私の推測によると、これには2つのステップがあります。Shopifyテーマでアプリケーションのコードを自動インストールする方法は?

  1. 新しいスニペット、アセットをテーマファイルに追加します。
  2. #1でAppによって追加されたスニペットへの参照を含むようにテンプレートまたは既存のスニペットを編集する。

#1はかなり簡単で自動的に実行できますが、#2のロジックはロジックが必要であり、アプリケーションが店頭を破損しないようにする必要があります。

私は、ステップ#2を自動的に実行するためのアイデア、アルゴリズム、またはロジックを探しています。私はアプローチに従うことを考えましたが、それは絶対ではありません。

はアプリが近くのコードを含めたいとしカートにボタンを追加し、それがを解析することができファイルをproduct.liquidとキーワード「/カート」を検索し、それに近いコードを追加します。あるいは、</form>を探して、その隣にコードを追加することもできます。

ただし、カートに追加ボタンがproduct.liquidに存在せず、product-block.liquidのようなものに従属していた場合、上記の方法はどちらも失敗します。

このロジックは、アプリがCollection.liquidにコードを追加しようとすると、さらに複雑で脆弱になることがあります。これは、Shopifyのテーマストアに350以上のテーマがあるとみなし、すべてのテーマに統合するためのアプリをテストすることはできません。

私の質問は、Shopifyのテーマにアプリケーションのコードをインストールするにはどうすればよいでしょうか?

私たちのアプリSmart Wishlistの場合、私たちはアプリのコードを手動でインストールしますが、これは商人には適していないため、サポートに時間がかかりすぎます。テーマファイルにコードをインストールするための自動化されたアプローチを開発しようとしています。

ご意見、ご提案、代替案は心から歓迎します。

答えて

0

フォームの終了タグをターゲティングしている可能性がありますか?または、私が言っているような形で提出フィールドを改善してください。

EDIT:申し訳ありませんが私はあまりにも速く答えました。私はスニペットインクルードについての行を読んだだけです。

1

これは詳細な回答ではありませんが、アセットを使用して{%include 'my_asset'%}で液体ファイルを変更するという考えは十分です。あなたのボタンを追加したい部分については、私の提案は、カート/アドのアクションのようなカートに追加するフォームの「標準的な」要素のいくつかを使用することです。つまり、jQueryを使用することによって、このフォームが存在する場合(その「アクション」フィールドでそれを見つけること)、ボタンがそこに追加されます。私はそれがあなたにいくつかのアイデアを与えたことを願っている

更新: #2については、私はにShopifyのAPIを使用します。 'メイン' のテーマを探す) 1。 2)価値がある。 3)</body>または</head>のような標準的なタグを探してください。 4)私のインクルードを文字列操作だけで追加し、それをクライアントに再びポストします。これは、あなたが物事を壊すかもしれない慎重な行動が必要ですが、あなたが何をしているか知っていれば、それは十分安全だと思います。

関連する問題