FROM CACHE - jp_header

Shopify Admin API の productVariants のレスポンスが突然空になった

cuervo
Shopify Partner
4 0 1

システムで、variantの取得に下記のようなクエリを実行しています。

GraphQL queryのバージョンは「2021-07」を利用しています。

(別途、最新版でも試してみましたが、結果は同じでした。。。)

query {
  productVariants(first: 1, query: "sku:'xxx' AND vendor:'yyy' AND -product_status:archived") {
    pageInfo {
      hasNextPage
    }
    edges {
      node {
        inventoryItem {
          id
        }
        product {
          status
        }
      }
    }
  }
}

 

5/24までは問題なく動作していましたが、5/25に突然空のレスポンスが返ってくるようになりました。

 

もちろん該当のvariantは存在し、商品のステータスは「下書き」の状態です。

事実、`-product_status:archived` の条件を外すと、variantは取得できます。

{
  "data": {
    "productVariants": {
      "pageInfo": {
        "hasNextPage": false
      },
      "edges": [
        {
          "node": {
            "inventoryItem": {
              "id": "gid://shopify/InventoryItem/xxx"
            },
            "product": {
              "status": "DRAFT"
            }
          }
        }
      ]
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 5,
      "actualQueryCost": 5,
      "throttleStatus": {
        "maximumAvailable": 2000,
        "currentlyAvailable": 1995,
        "restoreRate": 100
      }
    }
  }
}

 

初めは、`-product_status:archived`の条件が悪いのかと思ったのですが、その条件を指定していても、別の`sku`と`vendor`を指定すると取得できるvariantもあります。

 

突然、空のレスポンスになったので、shopify側の仕様変更か不具合を疑ったのですが、

サポートに問い合わせたら、コミュニティーに投稿してみてくださいとのことだったので、

こちらで質問致しました。

 

何か状況がわかる方いますでしょうか?

 

英語のコミュニティーの方でも同じ現象が発生している方がいるようです

https://community.shopify.com/c/shopify-apps/graphql-with-barcode-query-not-working/m-p/1601886

2件の返信2
cuervo
Shopify Partner
4 0 1

こちら再度確認したところ、現時点ではレスポンス結果が元に戻っているようです(5/24以前と同等の結果になる)。

 

結局、原因は不明ですが、バグかどうかもわからないまま、APIの挙動が変わるの困ったな。。。

 

下記件は、急にAPIの挙動変わって、今もそのままだし。

https://community.shopify.com/c/technical-q-a/suddenly-from-today-the-response-of-productvariants-gr...

cuervo
Shopify Partner
4 0 1

こちら他のVariantでも試してみたところ、

まだ「-product_status:archived」を付与することで取得できないものも存在してました。

 

Productの更新日時をそれぞれ確認したところ

・取得できるようになったもの:updatedAtが5/28以降

・取得できないままのもの:updateAtが5/28より前

 

ということで、取得できなかったProductを更新(一時的に在庫数を変更)して、再度同じクエリを投げてみたところ、

取得できるようになりました。

 

5/25時点では、Productを更新しても取得できないままだったので、

5/25は、Shopify側のキャッシュ?がうまく更新できていなかった。

現状は、キャッシュ?は更新されるようになった、ただ、再度更新しないとshopify側のキャッシュ?が最新にならない

といった感じかな。