2016-05-13 29 views
0

私たちはオートパーツを販売しており、各パーツは特定の年、メーカー、モデル、サブモデルなどにしか適合しません。私たちのバリアントはShopifyの制限を超えているため、可能なすべての組み合わせのJSON記述を含む各パーツのメイフィールドを追加することを検討していますその車両に利用可能である。私はそのデータを製品ページの一連のカスケードドロップダウン選択リストに解析したいと思います。下のJSONの例を使用して、最初の選択リストで1973を選択すると、2番目の選択リストでChevroletまたはGMCを選択できます。 3番目のリストは使用可能なモデルを示し、4番目の選択リストはユーザーがリットルを選択できるようになります。ShopifyのMetafield JSONからカスケード選択リストを作成するにはどうすればよいですか?

残念ながら、私はこの液状物質の選択リストにこのJSONデータをどのように送るのかわかりません。JSONが正しくフォーマットされているかどうかはわかりません。誰も私がShopify製品液体にこのデータを表示するための次のステップを習得するのに役立つリソースに私を導いたり誘導したりするのを手助けできますか?ここでも、このJSONはメタフィールドに格納されることに注意してください。

次は1つのパートのmetafield JSONの例である:

{"VEHICLES":[{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"7.4"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"7.4"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"7.4"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"7.4"},]} 
+0

あなたはそのパターンを実行できません。メタフィールドにJSONを保存するのは問題ありませんが、フロントエンドのクライアントサイドのJavascriptだけがJSONを解析して処理できます。したがって、フロントエンドにその製品が何であるかを知らせるJSONペイロードで製品をエンコードすると仮定すると、Shopify製品の経験をより良くするフロントエンドコードを書くことができます。 これは私があなたが今何をすることができるということですか?どういうわけか、顧客に適切な製品だけが表示されるようにしますか? JSONデータのフィルタによって、顧客が正しいバリアントを取得できる可能性がありますか? –

+0

Davidに感謝します。それは理にかなっている。はい、これの一部は、顧客が利用可能なバリアントを選択し、車両に適合しない製品を注文しないようにすることです。私はあなたが指摘したように、これを使用してホームページとカテゴリページ用のフィッテインメントセレクタを作成することもできれば幸いです。問題は、当社の製品のほとんどが私が挙げたもの(似ているがSKUに変更はない)と似ているが、当社の製品のいくつかは真のバリエーションである(つまり、色やサイズを変更するとSKUを変更する) 。要するに、意味のあるデータモデルがうまく動作するのに問題があります。 – bonaventure

+0

私はまあまあです。いくつかの時間前に私はタイヤを販売する店を作ることを任されました。 Make、Model Yearのデータはタイヤの選択につながった。広範囲にわたる、プライムタイムの電子商取引ドメインのための準備が整っていません... –

答えて

0

あなたが意図し何を達成するために、あなたはそれを容易にするために説明するようにJSONの構造も同じレベルにする必要があります。

は次のように配置されたデータを持っている:

var Vehicles = { 
    'Years' : ['1973'], 
    '1973' : { 
     'Make' : ['Chevrolet', 'GMC'], 
     'Chervolet' : { 
      'Models' : ['K20 Pickup', 'K30 Pickup'], 
      'K20 Pickup' : { 
       'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'], 
       '4.1' : '<link>', 
       '4.8' : '<link>', 
       '5.0' : '<link>', 
       '5.7' : '<link>', 
       '7.4' : '<link>' 
      }, 
      'K30 Pickup' : { 
       'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'], 
       '4.1' : '<link>', 
       '4.8' : '<link>', 
       '5.0' : '<link>', 
       '5.7' : '<link>', 
       '7.4' : '<link>' 
      } 
     }, 
     'GMC' : { 
      'Models' : ['K25/K2500 Pickup', 'K35/K3500 Pickup'], 
      'K25/K2500 Pickup' : { 
       'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'], 
       '4.1' : '<link>', 
       '4.8' : '<link>', 
       '5.0' : '<link>', 
       '5.7' : '<link>', 
       '7.4' : '<link>' 
      }, 
      'K35/K3500 Pickup' : { 
       'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'], 
       '4.1' : '<link>', 
       '4.8' : '<link>', 
       '5.0' : '<link>', 
       '5.7' : '<link>', 
       '7.4' : '<link>' 
      } 
     } 
    } 
} 

構造を追跡し、また、フィールドを取得しやすくなります。たとえば、誰かが「Chervolet」を選択した場合は、Vehicles['1973']['Chervolet']['Models']の値を取得して3番目のドロップダウンを入力するだけです。

P.S.各JSONオブジェクトの "キー"を直接呼び出せる方法がありますが、私はそれで良い成功率を出していないので、アドバイスできません。

+0

ありがとうございました!それははるかに理にかなっています。私はこの構造を消費するために対応するスクリプトを生成できるかどうか調べるために最善を尽くします。私が掘り下げるときに私はより多くの質問をするかもしれませんが、これは素晴らしいスタートです。再度、感謝します。 – bonaventure

関連する問題