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.
「:」が特殊文字扱いになっている関係かもしれません。
2023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024「味噌の可能性を、とき放つ」をコンセプトに、豊かな自然に恵まれた信州で味噌の製造販売を行う新田醸造。江戸末期に創業した老舗のみそ屋さんですが、2024年春、顧客層や販売範囲の...
By Minami_ Jul 30, 2024ネットショッピングは、利便性に優れいている反面、利用に抵抗感がある人も多くいます。Amazonや楽天市場等、大型モールの企業は、知名度や運営企業の信頼性から顧客が不...
By JapanGuru Jul 23, 2024