Shopify アプリに関する話題はこちら
注文情報を Shopify Admin API (GraphQL) で取得する実装をしているのですが、 `query` オプションによるフィルタリングで `created_at` を指定しているのですが、「日付」によるフィルタリングはされますが、「時刻」によるフィルタリングがされないようです。
例えば以下のような Query を実行した場合:
{
orders(first: 10, query: "created_at:>2021-11-10T07:46:21Z") {
edges {
node {
createdAt
}
}
}
}
以下の結果が返ってきました:
{
"data": {
"orders": {
"edges": [
{
"node": {
"createdAt": "2021-11-10T07:13:23Z"
}
},
{
"node": {
"createdAt": "2021-11-10T07:48:24Z"
}
}
]
}
}
}
created_at:>2021-11-10T07:46:21Z を指定しているので 2021-11-10T07:13:23Z の結果は除外しかったのですが、結果には含まれてしまっています。
日付の部分を created_at:>2021-11-11T00:00:00Z とすると除外されるので「日付」では有効なようです。
この振る舞いについて特にドキュメントでは解説されていなかったようなのですが、不具合なのか仕様なのか、ご存じの方がおられたら教えて頂きたいです。
解決済! ベストソリューションを見る。
成功
質問者の佐藤さんとは同僚ですが、引っかかる方が多そうなのでここで回答します 🙂
正しく抽出するためには、日時部分にクオートが必要です。例えば、"created_at:>'2021-10-04T05:00:00Z'" のような指定をすれば、5時以降のものが正しく抽出されます。
日時部分をクオートせずに "created_at:>2021-10-04T05:00:00Z" のように指定すると、質問のとおり0時として扱われてしまうようです。
詳しい説明はありませんが、ドキュメントにも一応「Date value はクオートしろ」と書かれています。
Any name, or any quoted string (single or double quotes are both permitted). Date values must be a string surrounded by quotes.
「:」が特殊文字扱いになっている関係かもしれません。
成功
質問者の佐藤さんとは同僚ですが、引っかかる方が多そうなのでここで回答します 🙂
正しく抽出するためには、日時部分にクオートが必要です。例えば、"created_at:>'2021-10-04T05:00:00Z'" のような指定をすれば、5時以降のものが正しく抽出されます。
日時部分をクオートせずに "created_at:>2021-10-04T05:00:00Z" のように指定すると、質問のとおり0時として扱われてしまうようです。
詳しい説明はありませんが、ドキュメントにも一応「Date value はクオートしろ」と書かれています。
Any name, or any quoted string (single or double quotes are both permitted). Date values must be a string surrounded by quotes.
「:」が特殊文字扱いになっている関係かもしれません。
オンラインストアを運営する中で、商品の返品や交換は重要なプロセスとなります。Shopify管理画面を通して簡単に返品や交換が行えることをご存知でしょうか?希望する場合は、お客...
By Mirai Sep 15, 2024Shopifyの請求書の支払いが失敗したという通知を受け取って驚いたことはありますか。初めての支払いでエラーが発生したり、これまで何の問題もなく支払いできていたのに突然失敗し...
By Minami_ Sep 8, 20242023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024