[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-08-13 UTC。"],[[["\u003cp\u003eThe Merchant API is the new version of the Content API for Shopping and allows for partial product data updates using supplemental feeds.\u003c/p\u003e\n"],["\u003cp\u003eSupplemental feeds enable adding or updating product data by using the \u003ccode\u003efeedId\u003c/code\u003e parameter with \u003ccode\u003eproducts.insert\u003c/code\u003e, \u003ccode\u003eproducts.delete\u003c/code\u003e, \u003ccode\u003eproducts.custombatch.insert\u003c/code\u003e, and \u003ccode\u003eproducts.custombatch.delete\u003c/code\u003e methods.\u003c/p\u003e\n"],["\u003cp\u003eUsing supplemental feeds to update product data only affects the specified fields, leaving other product data unchanged unless previously included in a request for the same feed.\u003c/p\u003e\n"],["\u003cp\u003eWhen using the \u003ccode\u003eproducts.delete\u003c/code\u003e method with a supplemental feed, it removes only the supplemental data, reverting the product to its original state before the supplemental feed update.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eproducts.custombatch\u003c/code\u003e method enables making changes to multiple products in a single API call to reduce individual requests, but avoid combining insert and delete operations for the same product within a single batch call.\u003c/p\u003e\n"]]],["The Merchant API's beta version introduces supplemental feeds for partial product data updates. Use `products.insert` to add or overwrite specific fields, while keeping others unchanged, by including the `feedId` parameter. `products.delete` removes supplemental data for a specific feed without affecting original product data. `custombatch` methods enable bulk `insert` or `delete` operations for multiple products using the `feedId`. When using `custombatch`, do not delete and insert in one request. Including the `feedId` is essential to avoid unintended full data replacements or deletions.\n"],null,["# Use supplemental feeds with the Content API\n\nYou can use supplemental feeds to make partial updates to product data by adding\nthe `feedId` as a query parameter when making calls to the\n[`products.insert`](/shopping-content/reference/rest/v2.1/products/insert),\n[`products.delete`](/shopping-content/reference/rest/v2.1/products/delete),\n[`products.custombatch.insert`](/shopping-content/reference/rest/v2.1/products/custombatch),\nand\n[`products.custombatch.delete`](/shopping-content/reference/rest/v2.1/products/custombatch)\nmethods.\n\nFor example, you can make a `products.insert` supplemental feed method call to\nthe following URL: \n\n```text\nPOST https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products?feedId=feedId\n```\n| **Note:** You can only use supplemental feeds to update existing products.\n\nproducts.insert\n---------------\n\nThe supplemental feed `products.insert` method adds the product fields you send\nin the request body, overwriting those fields if they exist. When using a\nsupplemental feed, this method leaves all other product fields unchanged, unless\nthe fields had been included in a previous request for the same feed. While data\nadded via other feeds is not affected, each request overwrites the previous\nrequests for the same feed. This means that if you add or update a field via a\nsupplemental feed request, and then do not include the field in a subsequent\nrequest, the data for the omitted field is removed from the feed. This behavior\ndiffers from calling `products.insert` without a supplemental feed, which\ndeletes all existing product data and replaces it with the fields you send in\nthe request body.\n| **Warning:** If you do not include `feedId` as a query parameter in your request, the method will behave like a regular `products.insert` call and completely replace all product data with the content of the request body. This means that existing values for any fields not included in the request will be deleted.\n\nUse the following URL to make a request to the supplemental feed\n`Product.insert` service: \n\n```text\nPOST https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products?feedId=feedId\n```\n\nYou must include the `offerId`, `feedLabel`, `channel`, and\n`contentLanguage` fields in the request body. All other fields are optional.\n\n#### Example\n\nTo change the availability of a product from \"in stock\" to \"out of stock\", you\ncould use the following request body to make a supplemental feeds\n`Product.insert` method call: \n\n {\n \"offerId\": \"1111111111\",\n \"contentLanguage\": \"en\",\n \"feedLabel\": \"US\",\n \"channel\": \"online\",\n \"availability\": \"out of stock\",\n }\n\n| **Note:** By default, if the same product attributes are modified by multiple supplemental feeds, the values from the supplemental feed that was created last (not the feed that was updated last) are used for the product's final attributes. For example, if values for the price field are provided via three supplemental feeds, the value from the feed that was created last will take precedence. You can customize how data from multiple feeds is merged by defining [feed rules](//support.google.com/merchants/answer/7450276) in Merchant Center.\n\nproducts.delete\n---------------\n\nThe `products.delete` method removes all of the supplemental data that was\npreviously added by `products.insert` calls using the specified supplemental\nfeed. Calling this method for a supplemental feed does not affect the original\nproduct data added before the supplemental feed `Product.insert` call(s) were\nmade. You can think of this like removing a layer of data for a specific feed;\nthe data added via other feeds is unaffected, and the product effectively\nreverts to its previous state before the supplemental feed layer was added. This\ndiffers from calling `products.delete` without a supplemental feed, which\ndeletes the entire product and all of its data.\n| **Warning:** If you do not include `feedId` as a query parameter in your request, the product will be deleted and removed from your account.\n\nUse the following URL to make a request the supplemental feed `products.delete`\nservice, where the `productId` is the\n[REST ID](/shopping-content/v2/reference/v2/products#id)\nof the product, represented as: `channel:contentLanguage:feedLabel:offerId`: \n\n```text\nDELETE https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products/productId?feedId=feedId\n```\n\nNo request body is needed for supplemental feeds `products.delete` method calls.\n\nproducts.custombatch\n--------------------\n\nThe `custombatch` methods allow you to `insert` or `delete` supplemental feed\ndata for multiple products using a single API call to minimize the number of API\ncalls made.\n| **Warning:** Do not insert and delete supplemental feed data for a single product in one `custombatch` call. The order of operations in `custombatch` is not guaranteed so making a dual call may either cancel itself out or cause unexpected behavior.\n\nUse the following request URL to make a `custombatch` call: \n\n```text\nhttps://shoppingcontent.googleapis.com/content/v2.1/products/batch\n```\n\nFor all supplemental feed `custombatch` calls, you must include the `batchId`,\n`merchantID`, `method`, and `feedId` parameters in the request\nbody.\n\n### products.custombatch:insert\n\nWhen making supplemental feed calls to the `products.custombatch:insert` method,\nyou must include the `offerId`, `feedLabel`, `channel`, and\n`contentLanguage` in the request body, in addition to the required `batchId`,\n`merchantID`, and `method` parameters. All other product fields are optional.\n\n#### Example\n\nTo update the `price` value for two existing products, you could use the\nfollowing request to make a `products.custombatch:insert` method call:. \n\n {\n \"entries\": [\n {\n \"batchId\": 1111,\n \"merchantId\": 1234567,\n \"method\": \"insert\",\n \"feedId\": \"7654321\",\n \"product\": {\n \"offerId\": \"1111111111\",\n \"contentLanguage\": \"en\",\n \"targetCountry\": \"US\",\n \"feedLabel\": \"US\",\n \"channel\": \"online\",\n \"price\": {\n \"value\": \"30.99\",\n \"currency\": \"USD\"\n }\n }\n },\n {\n \"batchId\": 1112,\n \"merchantId\": 1234567,\n \"method\": \"insert\",\n \"feedId\": \"7654321\",\n \"product\": {\n \"offerId\": \"2222222222\",\n \"contentLanguage\": \"en\",\n \"targetCountry\": \"US\",\n \"feedLabel\": \"US\",\n \"channel\": \"online\",\n \"price\": {\n \"value\": \"33.99\",\n \"currency\": \"USD\"\n },\n },\n }\n }\n\n### products.custombatch:delete\n\nTo remove all updates made to two products via a specified supplemental feed,\nyou could use the following request to make a `products.custombatch:delete`\nmethod call: \n\n {\n \"entries\": [\n {\n \"batchId\": 1115,\n \"merchantId\": 1234567,\n \"method\": \"delete\",\n \"feedId\": \"7654321\",\n \"productId\": \"online:en:US:1111111111\"\n },\n {\n \"batchId\": 1116,\n \"merchantId\": 1234567,\n \"method\": \"delete\",\n \"feedId\": \"7654321\",\n \"productId\": \"online:en:US:2222222222\"\n }\n ]\n }"]]