Liquid、JavaScriptなどに関する質問
ShopifyAPIに詳しい方教えてください。
私共の使用している唯一のプライベートアプリで下記の様な警告が出ています。
「開発者が4月 1, 2021より前にあなたの利用しているプライベートアプリを更新する必要があります」
現在のWebhook APIのバージョンは「2019-4」になっています。
プルダウンで2021-01が選択でき一度テストをしてみたいのですが、その後、検証のため2019-4戻すことはできますでしょうか?
戻せないと困るので躊躇しています。
解決済! ベストソリューションを見る。
成功
REST APIの場合、バージョンをつけたURLがドキュメントに記載されています。
GET /admin/api/2021-01/orders.json
GET /admin/api/2021-01/orders/{order_id}.json
https://shopify.dev/docs/admin-api/rest/reference/orders/order
バージョンがURLに記載されてあれば、外部サーバからJsonを取得できるようになります。
ドキュメントには記載されていないのですが、
バージョンがURLに記載されていなくても、管理画面にログインしているブラウザであれば取得できるようです。
(取得できる内容に多少差異があるように思えますが)
これはAPIのバグなのかセキュリティホールなのかは私にも分かりません。
現段階で管理者用に使っているだけであれば問題ないかもしれませんが。
成功
返ってくるヘッダ情報も見てみないと原因は掴めませんが、1つ気になるのが、 since_id のパラメータです。
「指定した注文IDの後の情報を表示する」パラメーターですが、時系列が合ってなければ出てこないと思います。
https://shopify.dev/docs/admin-api/rest/reference/orders/order
あとは注文がクローズされている場合も出てきませんので、status=any をつけて試すのも手です。
GET /admin/api/2021-04/orders.json?status=any
管理画面でAPIのバージョンの選択は出来たと思いますが、APIを利用しているアプリ側も合わせて更新する必要があります。
APIのバージョンを戻す意味はちょっと分からないですが、テストということであればもう一つテスト用の開発ストアを作り、そちらで試してから本番環境で実装されたほうが良いと思います。
ありがとうございました。いただいた内容をもとに調査しました。
Webhook APIのバージョンを2021-01にして数日様子を見ましたが問題なく動いています。
ここで一つ質問があるのですがプライベートアプリ側では受注データのみをAPIで取得しており
現在まで、SHOPIFYから取得したキーを設定して、APIに、下記のようにアクセスして問題なく必要なデータを取得しています。
$shopify_key='93dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx523@xxxxxxxxxxxxxxx.myshopify.com';
$url='https://'.$shopify_key.'/admin/orders.json?';
今回、2021年4月1日から「バージョンを指定する必要がある」との事ですが、上のAPIキーに埋め込んで指定するような
ことなのでしょうか?
成功
REST APIの場合、バージョンをつけたURLがドキュメントに記載されています。
GET /admin/api/2021-01/orders.json
GET /admin/api/2021-01/orders/{order_id}.json
https://shopify.dev/docs/admin-api/rest/reference/orders/order
バージョンがURLに記載されてあれば、外部サーバからJsonを取得できるようになります。
ドキュメントには記載されていないのですが、
バージョンがURLに記載されていなくても、管理画面にログインしているブラウザであれば取得できるようです。
(取得できる内容に多少差異があるように思えますが)
これはAPIのバグなのかセキュリティホールなのかは私にも分かりません。
現段階で管理者用に使っているだけであれば問題ないかもしれませんが。
下記のURLでAPIから注文データを取得していました。
https://<shop>.myshopify.com/admin/orders.json?since_id=3716884791485&limit=50&page=2
先日上記のような返事をいただき、4月に入っても正常に動作しており安心しておりました。しかしその後
4月8日まで正常に取得できていましたが、それ以降、オーダー情報が取得できなくなりました。
下記のようにAPIバージョンを設定しても結果は同じで取得できません。
admin/api/2021-01/orders.json?since_id=3716884791485&limit=50&page=1
jsonは下記のように帰ってきますので、接続はできているようですが、受注データが空です。
※念のためテスト用に実際に注文しましたが、そのデータも取得できません。
Array
(
[orders] => Array
(
)
)
それとSHOPIFYの管理画面にログイン中に同じブラウザのアドレスバーに取得用のURLをコピペしても
アクセスは拒否されます。
原因は何でしょうか、ご教示をお願いいたします。
成功
返ってくるヘッダ情報も見てみないと原因は掴めませんが、1つ気になるのが、 since_id のパラメータです。
「指定した注文IDの後の情報を表示する」パラメーターですが、時系列が合ってなければ出てこないと思います。
https://shopify.dev/docs/admin-api/rest/reference/orders/order
あとは注文がクローズされている場合も出てきませんので、status=any をつけて試すのも手です。
GET /admin/api/2021-04/orders.json?status=any
ありがとうございます。
ページングができないようになったのですね。
教えていただいた情報をもとに無事更新することができました。
ありがとうございました!
Shopify アカデミーの学習パスと認定スキルバッジExpanding Your Shopify Business Internationallyを活用して、国際的にビジネ...
By Shopify Feb 7, 2025Shopify アカデミーの学習パスB2B on Shopify:立ち上げとカスタマイズで卸売販売に進出しましょう。これら3つの無料コースは、ShopifyストアでB2B機能...
By Shopify Jan 31, 2025サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 2024