FROM CACHE - jp_header

bulkOperationをPOSTしたが、処理されない。

解決済
akky
Shopify Partner
18 2 2

背景

bulkOperationを使用し、商品バリエーションのメタフィールドを更新したいと考えております。メタフィールドにはサイズの在庫状況が保存されています。

少なくとも1ヶ月前までは問題なく、bulkOperationを実行出来ていたのですが、ここ最近上手く実行出来ていないようです。

問題点

bulkOperationRunMutationを実行後、ステータスは"CREATED"を返しますが、何時間経っても値が更新されていませんでした。

currentBulkOperationでリクエスト状況を確認した所、データはnullが返ってきます。

そこでIDを指定してリクエスト状況を確認しましたが、nullが返って来ます。

 

query {
  node(id: "gid://shopify/BulkOperation/1045659713751") {
    ... on BulkOperation {
      id
      status
      errorCode
      createdAt
      completedAt
      objectCount
      fileSize
      url
      partialDataUrl
    }
  }
}

 

 

戻り値

 

{
  "data": {
    "node": null
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 1,
      "actualQueryCost": 1,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 999,
        "restoreRate": 50
      }
    }
  }
}

 

 bulkOperationRunMutation バージョンは2022-01

 

    mutation {
      bulkOperationRunMutation(
        mutation: "mutation call($input: ProductVariantInput!) { productVariantUpdate(input: $input) { userErrors {field message }}}",
        stagedUploadPath: "${stagedUploadPath}") {
        bulkOperation {
          id
          url
          status
        }
        userErrors {
          message
          field
        }
      }
    }
    

アップロードしたファイルのサンプル。(このような値が、あと2000件ほどあります)

{
  input: {
    id: "gid://shopify/ProductVariant/40234007134359",
    metafields: [
      {
        namespace: "my_fields",
        key: "_size",
        type: "single_line_text_field",
        value: "",
        id: "gid://shopify/Metafield/22406796935383",
      },
    ],
  },
}

 

質問

問題点を突き止めたいのですが、エラーログを確認出来ない為問題箇所がわかりません。

bulkOperationRunMutationのUseErrorsは空を返し、bulkOperation IDを返しますので、ここには問題がないように思えます。

アップロードしたファイルに問題があり、処理中にエラーが発生したと考えられますが、IDを指定したbulkOperationでステータスを確認してもnullを返すため、確認出来ません。

 

質問は、「bulkOperationの処理したログの確認方法を教えて下さい

1 件の受理された解決策

ベストソリューション
akky
Shopify Partner
18 2 2

成功

解決しました。

bulkOperationでバリエーションのメタフィールドを一括で更新したかったのですが、そこで問題があったようです。

 

メタフィールドの型を「single_line_text_field」を設定しており、例えば"M"→""に更新する際にエラーになるようです。この問題はエラーとして記録されないようです。

値は空にする場合は""と更新するのではなく、メタフィールドを削除することで解決しました。

元の投稿で解決策を見る

2件の返信2
akky
Shopify Partner
18 2 2

似たような内容で下記のトピックスが見つかりました。

BulkOperation Graphql API Return "Null" In URL Field

 

こちらはMutationではクエリーです。

こちらのトピックでの解決策はAPIを変えたら、動いたそうです。

akky
Shopify Partner
18 2 2

成功

解決しました。

bulkOperationでバリエーションのメタフィールドを一括で更新したかったのですが、そこで問題があったようです。

 

メタフィールドの型を「single_line_text_field」を設定しており、例えば"M"→""に更新する際にエラーになるようです。この問題はエラーとして記録されないようです。

値は空にする場合は""と更新するのではなく、メタフィールドを削除することで解決しました。