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のチェックアウトは世界一コンバージョン率が高いチェックアウトです。2023年4月に実施された世界3大手マネジメントコンサルティング会社の共同調査によると、Sho...
By Minami_ Apr 11, 2024Shopifyのルーツ Shopifyは、スノーボードをオンラインで販売したいという夢を叶えるために2004年に誕生しました。当時は大企業だけがインターネットで販売す...
By JapanGuru Apr 7, 2024リエンゲージメントの自動化で売り上げ向上へ!素敵なオンラインストアを作成し、見込み顧客の携帯へ広告を直接に送信する、またはSNSなどで宣伝すると、お客様がストアに行き着...
By Mirai Mar 24, 2024