Liquid、JavaScriptなどに関する質問
Shopifyの各商品のvendor情報をWordpressに連携して表示したいです。
イメージとしてはこちら(https://katasekk.co.jp/goodcast/category/?na=2)のようにvendor(販売元)をWordpressのページ上にテキストで表示し、リンク先はShopifyのVender(検索フィルターで該当のVendorに絞り込んだ検索結果)に遷移させたいです。
Shopify上でVendorを追加・削除するとWordpressにも自動反映され、在庫なしの時は非表示となるように連携できるとベストです。
Shopifyアプリの「BuyButton」でコレクションのボタンを作成し、vendorで絞り込みできるかトライしましたが、Wordpressに埋め込んだJavascriptをカスタマイズしてvendorを制御する方法にたどり着けませんでした。
また、Wordpressの無料プラグインでは、vendor情報を連携可能なものが見当たりませんでした。
もしお気づきの点があればアドバイスいただけると幸いです。
よろしくお願いいたします。
アプリなどで簡単に実現する方法があるのかもしれないのですが、
私は下記の方法しか思いつきませんでした。
また、詳細まで記載するのが難しいのでコンセプトのみの説明になることご容赦ください。
[方向性]
ShopifyのAdmin APIを利用します。
[やり方]
[Admin API]
参考: https://shopify.dev/docs/api/admin
下記のURLに、QueryをPOSTします。
https://{yourstore_name}.myshopify.com/admin/api/yyyy-mm/graphql.json
{yourstore_name}は後質問者様のストアのURLに合わせてご変更ください。
yyyy-mmは、APIのバージョンです。
https://shopify.dev/docs/api/usage/versioning
2023-01で良いかと思います。
POSTするQuery
{
shop {
productVendors (first:10){
edges {
node
}
}
}
}
first: 10が取得数です。
設定できる最大値は250ですので、
vendorの数が251以上ある場合は、やり方が複雑になります。
APIがコールが成功すると下記のようなJSONデータを取得できます。
{
"data": {
"shop": {
"productVendors": {
"edges": [
{
"node": "vendor01"
},
{
"node": "vendor02"
},
{
"node": "vendor03"
},
{
"node": "vendor04"
}
]
}
}
},
"extensions": {
"cost": {
"requestedQueryCost": 2,
"actualQueryCost": 2,
"throttleStatus": {
"maximumAvailable": 10000.0,
"currentlyAvailable": 9998,
"restoreRate": 500.0
}
}
}
}
このJSONの値を使ってPHPで整形すれば、
ご希望のVendorのリストが作れるはずです。
コンセプトの説明だけ恐縮ですが、
参考になれば幸いです。
(キュー田辺)
ご回答ありがとうございます。
ご教示いただいた内容をよく確認して実施してみます。
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024