<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="content_v2_1.html">Content API for Shopping</a> . <a href="content_v2_1.products.html">products</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#custombatch">custombatch(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves, inserts, and deletes multiple products in a single request.</p>
<p class="toc_element">
  <code><a href="#delete">delete(merchantId, productId, feedId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a product from your Merchant Center account.</p>
<p class="toc_element">
  <code><a href="#get">get(merchantId, productId, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a product from your Merchant Center account.</p>
<p class="toc_element">
  <code><a href="#insert">insert(merchantId, body=None, feedId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Uploads a product to your Merchant Center account. If an item with the same channel, contentLanguage, offerId, and targetCountry already exists, this method updates that entry.</p>
<p class="toc_element">
  <code><a href="#list">list(merchantId, maxResults=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists the products in your Merchant Center account. The response might contain fewer items than specified by maxResults. Rely on nextPageToken to determine if there are more items to be requested.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#update">update(merchantId, productId, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an existing product in your Merchant Center account. Only updates attributes provided in the request.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="custombatch">custombatch(body=None, x__xgafv=None)</code>
  <pre>Retrieves, inserts, and deletes multiple products in a single request.

Args:
  body: object, The request body.
    The object takes the form of:

{
  &quot;entries&quot;: [ # The request entries to be processed in the batch.
    { # A batch entry encoding a single non-batch products request.
      &quot;batchId&quot;: 42, # An entry ID, unique within the batch request.
      &quot;feedId&quot;: &quot;A String&quot;, # The Content API Supplemental Feed ID. If present then product insertion or deletion applies to a supplemental feed instead of primary Content API feed.
      &quot;merchantId&quot;: &quot;A String&quot;, # The ID of the managing account.
      &quot;method&quot;: &quot;A String&quot;, # The method of the batch entry. Acceptable values are: - &quot;`delete`&quot; - &quot;`get`&quot; - &quot;`insert`&quot; - &quot;`update`&quot;
      &quot;product&quot;: { #  Required product attributes are primarily defined by the products data specification. See the Products Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect. # The product to insert or update. Only required if the method is `insert` or `update`. If the `update` method is used with `updateMask` only to delete a field, then this isn&#x27;t required. For example, setting `salePrice` on the `updateMask` and not providing a `product` will result in an existing sale price on the product specified by `productId` being deleted.
        &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
          &quot;A String&quot;,
        ],
        &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
        &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
        &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
          &quot;A String&quot;,
        ],
        &quot;adsRedirect&quot;: &quot;A String&quot;, # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
        &quot;adult&quot;: True or False, # Should be set to true if the item is targeted towards adults.
        &quot;ageGroup&quot;: &quot;A String&quot;, # Target age group of the item.
        &quot;availability&quot;: &quot;A String&quot;, # Availability status of the item.
        &quot;availabilityDate&quot;: &quot;A String&quot;, # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
        &quot;brand&quot;: &quot;A String&quot;, # Brand of the item.
        &quot;canonicalLink&quot;: &quot;A String&quot;, # URL for the canonical version of your item&#x27;s landing page.
        &quot;channel&quot;: &quot;A String&quot;, # Required. The item&#x27;s channel (online or local). Acceptable values are: - &quot;`local`&quot; - &quot;`online`&quot;
        &quot;color&quot;: &quot;A String&quot;, # Color of the item.
        &quot;condition&quot;: &quot;A String&quot;, # Condition or state of the item.
        &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
        &quot;costOfGoodsSold&quot;: { # Cost of goods sold. Used for gross profit reporting.
          &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
          &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
        },
        &quot;customAttributes&quot;: [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., `{ &quot;name&quot;: &quot;size type&quot;, &quot;value&quot;: &quot;regular&quot; }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).
          {
            &quot;groupValues&quot;: [ # Subattributes within this attribute group. Exactly one of value or groupValues must be provided.
              # Object with schema name: CustomAttribute
            ],
            &quot;name&quot;: &quot;A String&quot;, # The name of the attribute. Underscores will be replaced by spaces upon insertion.
            &quot;value&quot;: &quot;A String&quot;, # The value of the attribute.
          },
        ],
        &quot;customLabel0&quot;: &quot;A String&quot;, # Custom label 0 for custom grouping of items in a Shopping campaign.
        &quot;customLabel1&quot;: &quot;A String&quot;, # Custom label 1 for custom grouping of items in a Shopping campaign.
        &quot;customLabel2&quot;: &quot;A String&quot;, # Custom label 2 for custom grouping of items in a Shopping campaign.
        &quot;customLabel3&quot;: &quot;A String&quot;, # Custom label 3 for custom grouping of items in a Shopping campaign.
        &quot;customLabel4&quot;: &quot;A String&quot;, # Custom label 4 for custom grouping of items in a Shopping campaign.
        &quot;description&quot;: &quot;A String&quot;, # Description of the item.
        &quot;displayAdsId&quot;: &quot;A String&quot;, # An identifier for an item for dynamic remarketing campaigns.
        &quot;displayAdsLink&quot;: &quot;A String&quot;, # URL directly to your item&#x27;s landing page for dynamic remarketing campaigns.
        &quot;displayAdsSimilarIds&quot;: [ # Advertiser-specified recommendations.
          &quot;A String&quot;,
        ],
        &quot;displayAdsTitle&quot;: &quot;A String&quot;, # Title of an item for dynamic remarketing campaigns.
        &quot;displayAdsValue&quot;: 3.14, # Offer margin for dynamic remarketing campaigns.
        &quot;energyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
        &quot;excludedDestinations&quot;: [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
          &quot;A String&quot;,
        ],
        &quot;expirationDate&quot;: &quot;A String&quot;, # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
        &quot;gender&quot;: &quot;A String&quot;, # Target gender of the item.
        &quot;googleProductCategory&quot;: &quot;A String&quot;, # Google&#x27;s category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.
        &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number (GTIN) of the item.
        &quot;id&quot;: &quot;A String&quot;, # The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product is of the form channel:contentLanguage: targetCountry: offerId.
        &quot;identifierExists&quot;: True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
        &quot;imageLink&quot;: &quot;A String&quot;, # URL of an image of the item.
        &quot;includedDestinations&quot;: [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.
          &quot;A String&quot;,
        ],
        &quot;installment&quot;: { # Number and amount of installments to pay for an item.
          &quot;amount&quot;: { # The amount the buyer has to pay per month.
            &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
            &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
          },
          &quot;months&quot;: &quot;A String&quot;, # The number of installments the buyer has to pay.
        },
        &quot;isBundle&quot;: True or False, # Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.
        &quot;itemGroupId&quot;: &quot;A String&quot;, # Shared identifier for all variants of the same product.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#product`&quot;
        &quot;link&quot;: &quot;A String&quot;, # URL directly linking to your item&#x27;s page on your website.
        &quot;linkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront.
        &quot;loyaltyPoints&quot;: { # Loyalty points that users receive after purchasing the item. Japan only.
          &quot;name&quot;: &quot;A String&quot;, # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
          &quot;pointsValue&quot;: &quot;A String&quot;, # The retailer&#x27;s loyalty points in absolute value.
          &quot;ratio&quot;: 3.14, # The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.
        },
        &quot;material&quot;: &quot;A String&quot;, # The material of which the item is made.
        &quot;maxEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
        &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximal product handling time (in business days).
        &quot;minEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
        &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimal product handling time (in business days).
        &quot;mobileLink&quot;: &quot;A String&quot;, # URL for the mobile-optimized version of your item&#x27;s landing page.
        &quot;mobileLinkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront optimized for mobile devices.
        &quot;mpn&quot;: &quot;A String&quot;, # Manufacturer Part Number (MPN) of the item.
        &quot;multipack&quot;: &quot;A String&quot;, # The number of identical products in a merchant-defined multipack.
        &quot;offerId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.
        &quot;pattern&quot;: &quot;A String&quot;, # The item&#x27;s pattern (e.g. polka dots).
        &quot;pickupMethod&quot;: &quot;A String&quot;, # The pick up option for the item. Acceptable values are: - &quot;`buy`&quot; - &quot;`reserve`&quot; - &quot;`ship to store`&quot; - &quot;`not supported`&quot;
        &quot;pickupSla&quot;: &quot;A String&quot;, # Item store pickup timeline. Acceptable values are: - &quot;`same day`&quot; - &quot;`next day`&quot; - &quot;`2-day`&quot; - &quot;`3-day`&quot; - &quot;`4-day`&quot; - &quot;`5-day`&quot; - &quot;`6-day`&quot; - &quot;`7-day`&quot; - &quot;`multi-week`&quot;
        &quot;price&quot;: { # Price of the item.
          &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
          &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
        },
        &quot;productDetails&quot;: [ # Technical specification or additional product details.
          {
            &quot;attributeName&quot;: &quot;A String&quot;, # The name of the product detail.
            &quot;attributeValue&quot;: &quot;A String&quot;, # The value of the product detail.
            &quot;sectionName&quot;: &quot;A String&quot;, # The section header used to group a set of product details.
          },
        ],
        &quot;productHighlights&quot;: [ # Bullet points describing the most relevant highlights of a product.
          &quot;A String&quot;,
        ],
        &quot;productTypes&quot;: [ # Categories of the item (formatted as in products data specification).
          &quot;A String&quot;,
        ],
        &quot;promotionIds&quot;: [ # The unique ID of a promotion.
          &quot;A String&quot;,
        ],
        &quot;salePrice&quot;: { # Advertised sale price of the item.
          &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
          &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
        },
        &quot;salePriceEffectiveDate&quot;: &quot;A String&quot;, # Date range during which the item is on sale (see products data specification ).
        &quot;sellOnGoogleQuantity&quot;: &quot;A String&quot;, # The quantity of the product that is available for selling on Google. Supported only for online products.
        &quot;shipping&quot;: [ # Shipping rules.
          {
            &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
            &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
            &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
            &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
            &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
            &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
            &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
            &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
            &quot;price&quot;: { # Fixed shipping price, represented as a number.
              &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
              &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
            },
            &quot;region&quot;: &quot;A String&quot;, # The geographic region to which a shipping rate applies.
            &quot;service&quot;: &quot;A String&quot;, # A free-form description of the service class or delivery speed.
          },
        ],
        &quot;shippingHeight&quot;: { # Height of the item for shipping.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
          &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
        },
        &quot;shippingLabel&quot;: &quot;A String&quot;, # The shipping label of the product, used to group product in account-level shipping rules.
        &quot;shippingLength&quot;: { # Length of the item for shipping.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
          &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
        },
        &quot;shippingWeight&quot;: { # Weight of the item for shipping.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
          &quot;value&quot;: 3.14, # The weight of the product used to calculate the shipping cost of the item.
        },
        &quot;shippingWidth&quot;: { # Width of the item for shipping.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
          &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
        },
        &quot;shoppingAdsExcludedCountries&quot;: [ # List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
          &quot;A String&quot;,
        ],
        &quot;sizeSystem&quot;: &quot;A String&quot;, # System in which the size is specified. Recommended for apparel items.
        &quot;sizeType&quot;: &quot;A String&quot;, # The cut of the item. Recommended for apparel items.
        &quot;sizes&quot;: [ # Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
          &quot;A String&quot;,
        ],
        &quot;source&quot;: &quot;A String&quot;, # The source of the offer, i.e., how the offer was created. Acceptable values are: - &quot;`api`&quot; - &quot;`crawl`&quot; - &quot;`feed`&quot;
        &quot;subscriptionCost&quot;: { # Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract.
          &quot;amount&quot;: { # The amount the buyer has to pay per subscription period.
            &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
            &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
          },
          &quot;period&quot;: &quot;A String&quot;, # The type of subscription period.
          &quot;periodLength&quot;: &quot;A String&quot;, # The number of subscription periods the buyer has to pay.
        },
        &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
        &quot;taxCategory&quot;: &quot;A String&quot;, # The tax category of the product, used to configure detailed tax nexus in account-level tax settings.
        &quot;taxes&quot;: [ # Tax information.
          {
            &quot;country&quot;: &quot;A String&quot;, # The country within which the item is taxed, specified as a CLDR territory code.
            &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the tax rate applies to as defined in the AdWords API.
            &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
            &quot;rate&quot;: 3.14, # The percentage of tax rate that applies to the item price.
            &quot;region&quot;: &quot;A String&quot;, # The geographic region to which the tax rate applies.
            &quot;taxShip&quot;: True or False, # Should be set to true if tax is charged on shipping.
          },
        ],
        &quot;title&quot;: &quot;A String&quot;, # Title of the item.
        &quot;transitTimeLabel&quot;: &quot;A String&quot;, # The transit time label of the product, used to group product in account-level transit time tables.
        &quot;unitPricingBaseMeasure&quot;: { # The preference of the denominator of the unit price.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of the denominator.
          &quot;value&quot;: &quot;A String&quot;, # The denominator of the unit price.
        },
        &quot;unitPricingMeasure&quot;: { # The measure and dimension of an item.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of the measure.
          &quot;value&quot;: 3.14, # The measure of an item.
        },
      },
      &quot;productId&quot;: &quot;A String&quot;, # The ID of the product to mutate. Only defined if the method is `get`, `delete`, or `update`. or `delete`.
      &quot;updateMask&quot;: &quot;A String&quot;, # The comma-separated list of product attributes to be updated. Example: `&quot;title,salePrice&quot;`. Attributes specified in the update mask without a value specified in the body will be deleted from the product. Only top-level product attributes can be updated. If not defined, product attributes with set values will be updated and other attributes will stay unchanged. Only defined if the method is `update`.
    },
  ],
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;entries&quot;: [ # The result of the execution of the batch requests.
    { # A batch entry encoding a single non-batch products response.
      &quot;batchId&quot;: 42, # The ID of the request entry this entry responds to.
      &quot;errors&quot;: { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
        &quot;code&quot;: 42, # The HTTP status of the first error in `errors`.
        &quot;errors&quot;: [ # A list of errors.
          { # An error returned by the API.
            &quot;domain&quot;: &quot;A String&quot;, # The domain of the error.
            &quot;message&quot;: &quot;A String&quot;, # A description of the error.
            &quot;reason&quot;: &quot;A String&quot;, # The error code.
          },
        ],
        &quot;message&quot;: &quot;A String&quot;, # The message of the first error in `errors`.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#productsCustomBatchResponseEntry`&quot;
      &quot;product&quot;: { #  Required product attributes are primarily defined by the products data specification. See the Products Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect. # The inserted product. Only defined if the method is `insert` and if the request was successful.
        &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
          &quot;A String&quot;,
        ],
        &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
        &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
        &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
          &quot;A String&quot;,
        ],
        &quot;adsRedirect&quot;: &quot;A String&quot;, # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
        &quot;adult&quot;: True or False, # Should be set to true if the item is targeted towards adults.
        &quot;ageGroup&quot;: &quot;A String&quot;, # Target age group of the item.
        &quot;availability&quot;: &quot;A String&quot;, # Availability status of the item.
        &quot;availabilityDate&quot;: &quot;A String&quot;, # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
        &quot;brand&quot;: &quot;A String&quot;, # Brand of the item.
        &quot;canonicalLink&quot;: &quot;A String&quot;, # URL for the canonical version of your item&#x27;s landing page.
        &quot;channel&quot;: &quot;A String&quot;, # Required. The item&#x27;s channel (online or local). Acceptable values are: - &quot;`local`&quot; - &quot;`online`&quot;
        &quot;color&quot;: &quot;A String&quot;, # Color of the item.
        &quot;condition&quot;: &quot;A String&quot;, # Condition or state of the item.
        &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
        &quot;costOfGoodsSold&quot;: { # Cost of goods sold. Used for gross profit reporting.
          &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
          &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
        },
        &quot;customAttributes&quot;: [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., `{ &quot;name&quot;: &quot;size type&quot;, &quot;value&quot;: &quot;regular&quot; }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).
          {
            &quot;groupValues&quot;: [ # Subattributes within this attribute group. Exactly one of value or groupValues must be provided.
              # Object with schema name: CustomAttribute
            ],
            &quot;name&quot;: &quot;A String&quot;, # The name of the attribute. Underscores will be replaced by spaces upon insertion.
            &quot;value&quot;: &quot;A String&quot;, # The value of the attribute.
          },
        ],
        &quot;customLabel0&quot;: &quot;A String&quot;, # Custom label 0 for custom grouping of items in a Shopping campaign.
        &quot;customLabel1&quot;: &quot;A String&quot;, # Custom label 1 for custom grouping of items in a Shopping campaign.
        &quot;customLabel2&quot;: &quot;A String&quot;, # Custom label 2 for custom grouping of items in a Shopping campaign.
        &quot;customLabel3&quot;: &quot;A String&quot;, # Custom label 3 for custom grouping of items in a Shopping campaign.
        &quot;customLabel4&quot;: &quot;A String&quot;, # Custom label 4 for custom grouping of items in a Shopping campaign.
        &quot;description&quot;: &quot;A String&quot;, # Description of the item.
        &quot;displayAdsId&quot;: &quot;A String&quot;, # An identifier for an item for dynamic remarketing campaigns.
        &quot;displayAdsLink&quot;: &quot;A String&quot;, # URL directly to your item&#x27;s landing page for dynamic remarketing campaigns.
        &quot;displayAdsSimilarIds&quot;: [ # Advertiser-specified recommendations.
          &quot;A String&quot;,
        ],
        &quot;displayAdsTitle&quot;: &quot;A String&quot;, # Title of an item for dynamic remarketing campaigns.
        &quot;displayAdsValue&quot;: 3.14, # Offer margin for dynamic remarketing campaigns.
        &quot;energyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
        &quot;excludedDestinations&quot;: [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
          &quot;A String&quot;,
        ],
        &quot;expirationDate&quot;: &quot;A String&quot;, # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
        &quot;gender&quot;: &quot;A String&quot;, # Target gender of the item.
        &quot;googleProductCategory&quot;: &quot;A String&quot;, # Google&#x27;s category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.
        &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number (GTIN) of the item.
        &quot;id&quot;: &quot;A String&quot;, # The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product is of the form channel:contentLanguage: targetCountry: offerId.
        &quot;identifierExists&quot;: True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
        &quot;imageLink&quot;: &quot;A String&quot;, # URL of an image of the item.
        &quot;includedDestinations&quot;: [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.
          &quot;A String&quot;,
        ],
        &quot;installment&quot;: { # Number and amount of installments to pay for an item.
          &quot;amount&quot;: { # The amount the buyer has to pay per month.
            &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
            &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
          },
          &quot;months&quot;: &quot;A String&quot;, # The number of installments the buyer has to pay.
        },
        &quot;isBundle&quot;: True or False, # Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.
        &quot;itemGroupId&quot;: &quot;A String&quot;, # Shared identifier for all variants of the same product.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#product`&quot;
        &quot;link&quot;: &quot;A String&quot;, # URL directly linking to your item&#x27;s page on your website.
        &quot;linkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront.
        &quot;loyaltyPoints&quot;: { # Loyalty points that users receive after purchasing the item. Japan only.
          &quot;name&quot;: &quot;A String&quot;, # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
          &quot;pointsValue&quot;: &quot;A String&quot;, # The retailer&#x27;s loyalty points in absolute value.
          &quot;ratio&quot;: 3.14, # The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.
        },
        &quot;material&quot;: &quot;A String&quot;, # The material of which the item is made.
        &quot;maxEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
        &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximal product handling time (in business days).
        &quot;minEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
        &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimal product handling time (in business days).
        &quot;mobileLink&quot;: &quot;A String&quot;, # URL for the mobile-optimized version of your item&#x27;s landing page.
        &quot;mobileLinkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront optimized for mobile devices.
        &quot;mpn&quot;: &quot;A String&quot;, # Manufacturer Part Number (MPN) of the item.
        &quot;multipack&quot;: &quot;A String&quot;, # The number of identical products in a merchant-defined multipack.
        &quot;offerId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.
        &quot;pattern&quot;: &quot;A String&quot;, # The item&#x27;s pattern (e.g. polka dots).
        &quot;pickupMethod&quot;: &quot;A String&quot;, # The pick up option for the item. Acceptable values are: - &quot;`buy`&quot; - &quot;`reserve`&quot; - &quot;`ship to store`&quot; - &quot;`not supported`&quot;
        &quot;pickupSla&quot;: &quot;A String&quot;, # Item store pickup timeline. Acceptable values are: - &quot;`same day`&quot; - &quot;`next day`&quot; - &quot;`2-day`&quot; - &quot;`3-day`&quot; - &quot;`4-day`&quot; - &quot;`5-day`&quot; - &quot;`6-day`&quot; - &quot;`7-day`&quot; - &quot;`multi-week`&quot;
        &quot;price&quot;: { # Price of the item.
          &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
          &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
        },
        &quot;productDetails&quot;: [ # Technical specification or additional product details.
          {
            &quot;attributeName&quot;: &quot;A String&quot;, # The name of the product detail.
            &quot;attributeValue&quot;: &quot;A String&quot;, # The value of the product detail.
            &quot;sectionName&quot;: &quot;A String&quot;, # The section header used to group a set of product details.
          },
        ],
        &quot;productHighlights&quot;: [ # Bullet points describing the most relevant highlights of a product.
          &quot;A String&quot;,
        ],
        &quot;productTypes&quot;: [ # Categories of the item (formatted as in products data specification).
          &quot;A String&quot;,
        ],
        &quot;promotionIds&quot;: [ # The unique ID of a promotion.
          &quot;A String&quot;,
        ],
        &quot;salePrice&quot;: { # Advertised sale price of the item.
          &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
          &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
        },
        &quot;salePriceEffectiveDate&quot;: &quot;A String&quot;, # Date range during which the item is on sale (see products data specification ).
        &quot;sellOnGoogleQuantity&quot;: &quot;A String&quot;, # The quantity of the product that is available for selling on Google. Supported only for online products.
        &quot;shipping&quot;: [ # Shipping rules.
          {
            &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
            &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
            &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
            &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
            &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
            &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
            &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
            &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
            &quot;price&quot;: { # Fixed shipping price, represented as a number.
              &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
              &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
            },
            &quot;region&quot;: &quot;A String&quot;, # The geographic region to which a shipping rate applies.
            &quot;service&quot;: &quot;A String&quot;, # A free-form description of the service class or delivery speed.
          },
        ],
        &quot;shippingHeight&quot;: { # Height of the item for shipping.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
          &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
        },
        &quot;shippingLabel&quot;: &quot;A String&quot;, # The shipping label of the product, used to group product in account-level shipping rules.
        &quot;shippingLength&quot;: { # Length of the item for shipping.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
          &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
        },
        &quot;shippingWeight&quot;: { # Weight of the item for shipping.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
          &quot;value&quot;: 3.14, # The weight of the product used to calculate the shipping cost of the item.
        },
        &quot;shippingWidth&quot;: { # Width of the item for shipping.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
          &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
        },
        &quot;shoppingAdsExcludedCountries&quot;: [ # List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
          &quot;A String&quot;,
        ],
        &quot;sizeSystem&quot;: &quot;A String&quot;, # System in which the size is specified. Recommended for apparel items.
        &quot;sizeType&quot;: &quot;A String&quot;, # The cut of the item. Recommended for apparel items.
        &quot;sizes&quot;: [ # Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
          &quot;A String&quot;,
        ],
        &quot;source&quot;: &quot;A String&quot;, # The source of the offer, i.e., how the offer was created. Acceptable values are: - &quot;`api`&quot; - &quot;`crawl`&quot; - &quot;`feed`&quot;
        &quot;subscriptionCost&quot;: { # Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract.
          &quot;amount&quot;: { # The amount the buyer has to pay per subscription period.
            &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
            &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
          },
          &quot;period&quot;: &quot;A String&quot;, # The type of subscription period.
          &quot;periodLength&quot;: &quot;A String&quot;, # The number of subscription periods the buyer has to pay.
        },
        &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
        &quot;taxCategory&quot;: &quot;A String&quot;, # The tax category of the product, used to configure detailed tax nexus in account-level tax settings.
        &quot;taxes&quot;: [ # Tax information.
          {
            &quot;country&quot;: &quot;A String&quot;, # The country within which the item is taxed, specified as a CLDR territory code.
            &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the tax rate applies to as defined in the AdWords API.
            &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
            &quot;rate&quot;: 3.14, # The percentage of tax rate that applies to the item price.
            &quot;region&quot;: &quot;A String&quot;, # The geographic region to which the tax rate applies.
            &quot;taxShip&quot;: True or False, # Should be set to true if tax is charged on shipping.
          },
        ],
        &quot;title&quot;: &quot;A String&quot;, # Title of the item.
        &quot;transitTimeLabel&quot;: &quot;A String&quot;, # The transit time label of the product, used to group product in account-level transit time tables.
        &quot;unitPricingBaseMeasure&quot;: { # The preference of the denominator of the unit price.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of the denominator.
          &quot;value&quot;: &quot;A String&quot;, # The denominator of the unit price.
        },
        &quot;unitPricingMeasure&quot;: { # The measure and dimension of an item.
          &quot;unit&quot;: &quot;A String&quot;, # The unit of the measure.
          &quot;value&quot;: 3.14, # The measure of an item.
        },
      },
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#productsCustomBatchResponse`&quot;.
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(merchantId, productId, feedId=None, x__xgafv=None)</code>
  <pre>Deletes a product from your Merchant Center account.

Args:
  merchantId: string, The ID of the account that contains the product. This account cannot be a multi-client account. (required)
  productId: string, The REST ID of the product. (required)
  feedId: string, The Content API Supplemental Feed ID. If present then product deletion applies to the data in a supplemental feed. If absent, entire product will be deleted.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(merchantId, productId, x__xgafv=None)</code>
  <pre>Retrieves a product from your Merchant Center account.

Args:
  merchantId: string, The ID of the account that contains the product. This account cannot be a multi-client account. (required)
  productId: string, The REST ID of the product. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { #  Required product attributes are primarily defined by the products data specification. See the Products Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.
  &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
    &quot;A String&quot;,
  ],
  &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
  &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
  &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
    &quot;A String&quot;,
  ],
  &quot;adsRedirect&quot;: &quot;A String&quot;, # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
  &quot;adult&quot;: True or False, # Should be set to true if the item is targeted towards adults.
  &quot;ageGroup&quot;: &quot;A String&quot;, # Target age group of the item.
  &quot;availability&quot;: &quot;A String&quot;, # Availability status of the item.
  &quot;availabilityDate&quot;: &quot;A String&quot;, # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
  &quot;brand&quot;: &quot;A String&quot;, # Brand of the item.
  &quot;canonicalLink&quot;: &quot;A String&quot;, # URL for the canonical version of your item&#x27;s landing page.
  &quot;channel&quot;: &quot;A String&quot;, # Required. The item&#x27;s channel (online or local). Acceptable values are: - &quot;`local`&quot; - &quot;`online`&quot;
  &quot;color&quot;: &quot;A String&quot;, # Color of the item.
  &quot;condition&quot;: &quot;A String&quot;, # Condition or state of the item.
  &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
  &quot;costOfGoodsSold&quot;: { # Cost of goods sold. Used for gross profit reporting.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;customAttributes&quot;: [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., `{ &quot;name&quot;: &quot;size type&quot;, &quot;value&quot;: &quot;regular&quot; }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).
    {
      &quot;groupValues&quot;: [ # Subattributes within this attribute group. Exactly one of value or groupValues must be provided.
        # Object with schema name: CustomAttribute
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the attribute. Underscores will be replaced by spaces upon insertion.
      &quot;value&quot;: &quot;A String&quot;, # The value of the attribute.
    },
  ],
  &quot;customLabel0&quot;: &quot;A String&quot;, # Custom label 0 for custom grouping of items in a Shopping campaign.
  &quot;customLabel1&quot;: &quot;A String&quot;, # Custom label 1 for custom grouping of items in a Shopping campaign.
  &quot;customLabel2&quot;: &quot;A String&quot;, # Custom label 2 for custom grouping of items in a Shopping campaign.
  &quot;customLabel3&quot;: &quot;A String&quot;, # Custom label 3 for custom grouping of items in a Shopping campaign.
  &quot;customLabel4&quot;: &quot;A String&quot;, # Custom label 4 for custom grouping of items in a Shopping campaign.
  &quot;description&quot;: &quot;A String&quot;, # Description of the item.
  &quot;displayAdsId&quot;: &quot;A String&quot;, # An identifier for an item for dynamic remarketing campaigns.
  &quot;displayAdsLink&quot;: &quot;A String&quot;, # URL directly to your item&#x27;s landing page for dynamic remarketing campaigns.
  &quot;displayAdsSimilarIds&quot;: [ # Advertiser-specified recommendations.
    &quot;A String&quot;,
  ],
  &quot;displayAdsTitle&quot;: &quot;A String&quot;, # Title of an item for dynamic remarketing campaigns.
  &quot;displayAdsValue&quot;: 3.14, # Offer margin for dynamic remarketing campaigns.
  &quot;energyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;excludedDestinations&quot;: [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
    &quot;A String&quot;,
  ],
  &quot;expirationDate&quot;: &quot;A String&quot;, # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
  &quot;gender&quot;: &quot;A String&quot;, # Target gender of the item.
  &quot;googleProductCategory&quot;: &quot;A String&quot;, # Google&#x27;s category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.
  &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number (GTIN) of the item.
  &quot;id&quot;: &quot;A String&quot;, # The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product is of the form channel:contentLanguage: targetCountry: offerId.
  &quot;identifierExists&quot;: True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
  &quot;imageLink&quot;: &quot;A String&quot;, # URL of an image of the item.
  &quot;includedDestinations&quot;: [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.
    &quot;A String&quot;,
  ],
  &quot;installment&quot;: { # Number and amount of installments to pay for an item.
    &quot;amount&quot;: { # The amount the buyer has to pay per month.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;months&quot;: &quot;A String&quot;, # The number of installments the buyer has to pay.
  },
  &quot;isBundle&quot;: True or False, # Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.
  &quot;itemGroupId&quot;: &quot;A String&quot;, # Shared identifier for all variants of the same product.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#product`&quot;
  &quot;link&quot;: &quot;A String&quot;, # URL directly linking to your item&#x27;s page on your website.
  &quot;linkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront.
  &quot;loyaltyPoints&quot;: { # Loyalty points that users receive after purchasing the item. Japan only.
    &quot;name&quot;: &quot;A String&quot;, # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
    &quot;pointsValue&quot;: &quot;A String&quot;, # The retailer&#x27;s loyalty points in absolute value.
    &quot;ratio&quot;: 3.14, # The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.
  },
  &quot;material&quot;: &quot;A String&quot;, # The material of which the item is made.
  &quot;maxEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximal product handling time (in business days).
  &quot;minEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimal product handling time (in business days).
  &quot;mobileLink&quot;: &quot;A String&quot;, # URL for the mobile-optimized version of your item&#x27;s landing page.
  &quot;mobileLinkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront optimized for mobile devices.
  &quot;mpn&quot;: &quot;A String&quot;, # Manufacturer Part Number (MPN) of the item.
  &quot;multipack&quot;: &quot;A String&quot;, # The number of identical products in a merchant-defined multipack.
  &quot;offerId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.
  &quot;pattern&quot;: &quot;A String&quot;, # The item&#x27;s pattern (e.g. polka dots).
  &quot;pickupMethod&quot;: &quot;A String&quot;, # The pick up option for the item. Acceptable values are: - &quot;`buy`&quot; - &quot;`reserve`&quot; - &quot;`ship to store`&quot; - &quot;`not supported`&quot;
  &quot;pickupSla&quot;: &quot;A String&quot;, # Item store pickup timeline. Acceptable values are: - &quot;`same day`&quot; - &quot;`next day`&quot; - &quot;`2-day`&quot; - &quot;`3-day`&quot; - &quot;`4-day`&quot; - &quot;`5-day`&quot; - &quot;`6-day`&quot; - &quot;`7-day`&quot; - &quot;`multi-week`&quot;
  &quot;price&quot;: { # Price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;productDetails&quot;: [ # Technical specification or additional product details.
    {
      &quot;attributeName&quot;: &quot;A String&quot;, # The name of the product detail.
      &quot;attributeValue&quot;: &quot;A String&quot;, # The value of the product detail.
      &quot;sectionName&quot;: &quot;A String&quot;, # The section header used to group a set of product details.
    },
  ],
  &quot;productHighlights&quot;: [ # Bullet points describing the most relevant highlights of a product.
    &quot;A String&quot;,
  ],
  &quot;productTypes&quot;: [ # Categories of the item (formatted as in products data specification).
    &quot;A String&quot;,
  ],
  &quot;promotionIds&quot;: [ # The unique ID of a promotion.
    &quot;A String&quot;,
  ],
  &quot;salePrice&quot;: { # Advertised sale price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;salePriceEffectiveDate&quot;: &quot;A String&quot;, # Date range during which the item is on sale (see products data specification ).
  &quot;sellOnGoogleQuantity&quot;: &quot;A String&quot;, # The quantity of the product that is available for selling on Google. Supported only for online products.
  &quot;shipping&quot;: [ # Shipping rules.
    {
      &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
      &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
      &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
      &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
      &quot;price&quot;: { # Fixed shipping price, represented as a number.
        &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
        &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
      },
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which a shipping rate applies.
      &quot;service&quot;: &quot;A String&quot;, # A free-form description of the service class or delivery speed.
    },
  ],
  &quot;shippingHeight&quot;: { # Height of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingLabel&quot;: &quot;A String&quot;, # The shipping label of the product, used to group product in account-level shipping rules.
  &quot;shippingLength&quot;: { # Length of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWeight&quot;: { # Weight of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The weight of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWidth&quot;: { # Width of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shoppingAdsExcludedCountries&quot;: [ # List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
    &quot;A String&quot;,
  ],
  &quot;sizeSystem&quot;: &quot;A String&quot;, # System in which the size is specified. Recommended for apparel items.
  &quot;sizeType&quot;: &quot;A String&quot;, # The cut of the item. Recommended for apparel items.
  &quot;sizes&quot;: [ # Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
    &quot;A String&quot;,
  ],
  &quot;source&quot;: &quot;A String&quot;, # The source of the offer, i.e., how the offer was created. Acceptable values are: - &quot;`api`&quot; - &quot;`crawl`&quot; - &quot;`feed`&quot;
  &quot;subscriptionCost&quot;: { # Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract.
    &quot;amount&quot;: { # The amount the buyer has to pay per subscription period.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;period&quot;: &quot;A String&quot;, # The type of subscription period.
    &quot;periodLength&quot;: &quot;A String&quot;, # The number of subscription periods the buyer has to pay.
  },
  &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
  &quot;taxCategory&quot;: &quot;A String&quot;, # The tax category of the product, used to configure detailed tax nexus in account-level tax settings.
  &quot;taxes&quot;: [ # Tax information.
    {
      &quot;country&quot;: &quot;A String&quot;, # The country within which the item is taxed, specified as a CLDR territory code.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the tax rate applies to as defined in the AdWords API.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
      &quot;rate&quot;: 3.14, # The percentage of tax rate that applies to the item price.
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which the tax rate applies.
      &quot;taxShip&quot;: True or False, # Should be set to true if tax is charged on shipping.
    },
  ],
  &quot;title&quot;: &quot;A String&quot;, # Title of the item.
  &quot;transitTimeLabel&quot;: &quot;A String&quot;, # The transit time label of the product, used to group product in account-level transit time tables.
  &quot;unitPricingBaseMeasure&quot;: { # The preference of the denominator of the unit price.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the denominator.
    &quot;value&quot;: &quot;A String&quot;, # The denominator of the unit price.
  },
  &quot;unitPricingMeasure&quot;: { # The measure and dimension of an item.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the measure.
    &quot;value&quot;: 3.14, # The measure of an item.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(merchantId, body=None, feedId=None, x__xgafv=None)</code>
  <pre>Uploads a product to your Merchant Center account. If an item with the same channel, contentLanguage, offerId, and targetCountry already exists, this method updates that entry.

Args:
  merchantId: string, The ID of the account that contains the product. This account cannot be a multi-client account. (required)
  body: object, The request body.
    The object takes the form of:

{ #  Required product attributes are primarily defined by the products data specification. See the Products Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.
  &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
    &quot;A String&quot;,
  ],
  &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
  &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
  &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
    &quot;A String&quot;,
  ],
  &quot;adsRedirect&quot;: &quot;A String&quot;, # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
  &quot;adult&quot;: True or False, # Should be set to true if the item is targeted towards adults.
  &quot;ageGroup&quot;: &quot;A String&quot;, # Target age group of the item.
  &quot;availability&quot;: &quot;A String&quot;, # Availability status of the item.
  &quot;availabilityDate&quot;: &quot;A String&quot;, # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
  &quot;brand&quot;: &quot;A String&quot;, # Brand of the item.
  &quot;canonicalLink&quot;: &quot;A String&quot;, # URL for the canonical version of your item&#x27;s landing page.
  &quot;channel&quot;: &quot;A String&quot;, # Required. The item&#x27;s channel (online or local). Acceptable values are: - &quot;`local`&quot; - &quot;`online`&quot;
  &quot;color&quot;: &quot;A String&quot;, # Color of the item.
  &quot;condition&quot;: &quot;A String&quot;, # Condition or state of the item.
  &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
  &quot;costOfGoodsSold&quot;: { # Cost of goods sold. Used for gross profit reporting.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;customAttributes&quot;: [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., `{ &quot;name&quot;: &quot;size type&quot;, &quot;value&quot;: &quot;regular&quot; }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).
    {
      &quot;groupValues&quot;: [ # Subattributes within this attribute group. Exactly one of value or groupValues must be provided.
        # Object with schema name: CustomAttribute
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the attribute. Underscores will be replaced by spaces upon insertion.
      &quot;value&quot;: &quot;A String&quot;, # The value of the attribute.
    },
  ],
  &quot;customLabel0&quot;: &quot;A String&quot;, # Custom label 0 for custom grouping of items in a Shopping campaign.
  &quot;customLabel1&quot;: &quot;A String&quot;, # Custom label 1 for custom grouping of items in a Shopping campaign.
  &quot;customLabel2&quot;: &quot;A String&quot;, # Custom label 2 for custom grouping of items in a Shopping campaign.
  &quot;customLabel3&quot;: &quot;A String&quot;, # Custom label 3 for custom grouping of items in a Shopping campaign.
  &quot;customLabel4&quot;: &quot;A String&quot;, # Custom label 4 for custom grouping of items in a Shopping campaign.
  &quot;description&quot;: &quot;A String&quot;, # Description of the item.
  &quot;displayAdsId&quot;: &quot;A String&quot;, # An identifier for an item for dynamic remarketing campaigns.
  &quot;displayAdsLink&quot;: &quot;A String&quot;, # URL directly to your item&#x27;s landing page for dynamic remarketing campaigns.
  &quot;displayAdsSimilarIds&quot;: [ # Advertiser-specified recommendations.
    &quot;A String&quot;,
  ],
  &quot;displayAdsTitle&quot;: &quot;A String&quot;, # Title of an item for dynamic remarketing campaigns.
  &quot;displayAdsValue&quot;: 3.14, # Offer margin for dynamic remarketing campaigns.
  &quot;energyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;excludedDestinations&quot;: [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
    &quot;A String&quot;,
  ],
  &quot;expirationDate&quot;: &quot;A String&quot;, # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
  &quot;gender&quot;: &quot;A String&quot;, # Target gender of the item.
  &quot;googleProductCategory&quot;: &quot;A String&quot;, # Google&#x27;s category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.
  &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number (GTIN) of the item.
  &quot;id&quot;: &quot;A String&quot;, # The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product is of the form channel:contentLanguage: targetCountry: offerId.
  &quot;identifierExists&quot;: True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
  &quot;imageLink&quot;: &quot;A String&quot;, # URL of an image of the item.
  &quot;includedDestinations&quot;: [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.
    &quot;A String&quot;,
  ],
  &quot;installment&quot;: { # Number and amount of installments to pay for an item.
    &quot;amount&quot;: { # The amount the buyer has to pay per month.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;months&quot;: &quot;A String&quot;, # The number of installments the buyer has to pay.
  },
  &quot;isBundle&quot;: True or False, # Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.
  &quot;itemGroupId&quot;: &quot;A String&quot;, # Shared identifier for all variants of the same product.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#product`&quot;
  &quot;link&quot;: &quot;A String&quot;, # URL directly linking to your item&#x27;s page on your website.
  &quot;linkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront.
  &quot;loyaltyPoints&quot;: { # Loyalty points that users receive after purchasing the item. Japan only.
    &quot;name&quot;: &quot;A String&quot;, # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
    &quot;pointsValue&quot;: &quot;A String&quot;, # The retailer&#x27;s loyalty points in absolute value.
    &quot;ratio&quot;: 3.14, # The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.
  },
  &quot;material&quot;: &quot;A String&quot;, # The material of which the item is made.
  &quot;maxEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximal product handling time (in business days).
  &quot;minEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimal product handling time (in business days).
  &quot;mobileLink&quot;: &quot;A String&quot;, # URL for the mobile-optimized version of your item&#x27;s landing page.
  &quot;mobileLinkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront optimized for mobile devices.
  &quot;mpn&quot;: &quot;A String&quot;, # Manufacturer Part Number (MPN) of the item.
  &quot;multipack&quot;: &quot;A String&quot;, # The number of identical products in a merchant-defined multipack.
  &quot;offerId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.
  &quot;pattern&quot;: &quot;A String&quot;, # The item&#x27;s pattern (e.g. polka dots).
  &quot;pickupMethod&quot;: &quot;A String&quot;, # The pick up option for the item. Acceptable values are: - &quot;`buy`&quot; - &quot;`reserve`&quot; - &quot;`ship to store`&quot; - &quot;`not supported`&quot;
  &quot;pickupSla&quot;: &quot;A String&quot;, # Item store pickup timeline. Acceptable values are: - &quot;`same day`&quot; - &quot;`next day`&quot; - &quot;`2-day`&quot; - &quot;`3-day`&quot; - &quot;`4-day`&quot; - &quot;`5-day`&quot; - &quot;`6-day`&quot; - &quot;`7-day`&quot; - &quot;`multi-week`&quot;
  &quot;price&quot;: { # Price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;productDetails&quot;: [ # Technical specification or additional product details.
    {
      &quot;attributeName&quot;: &quot;A String&quot;, # The name of the product detail.
      &quot;attributeValue&quot;: &quot;A String&quot;, # The value of the product detail.
      &quot;sectionName&quot;: &quot;A String&quot;, # The section header used to group a set of product details.
    },
  ],
  &quot;productHighlights&quot;: [ # Bullet points describing the most relevant highlights of a product.
    &quot;A String&quot;,
  ],
  &quot;productTypes&quot;: [ # Categories of the item (formatted as in products data specification).
    &quot;A String&quot;,
  ],
  &quot;promotionIds&quot;: [ # The unique ID of a promotion.
    &quot;A String&quot;,
  ],
  &quot;salePrice&quot;: { # Advertised sale price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;salePriceEffectiveDate&quot;: &quot;A String&quot;, # Date range during which the item is on sale (see products data specification ).
  &quot;sellOnGoogleQuantity&quot;: &quot;A String&quot;, # The quantity of the product that is available for selling on Google. Supported only for online products.
  &quot;shipping&quot;: [ # Shipping rules.
    {
      &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
      &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
      &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
      &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
      &quot;price&quot;: { # Fixed shipping price, represented as a number.
        &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
        &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
      },
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which a shipping rate applies.
      &quot;service&quot;: &quot;A String&quot;, # A free-form description of the service class or delivery speed.
    },
  ],
  &quot;shippingHeight&quot;: { # Height of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingLabel&quot;: &quot;A String&quot;, # The shipping label of the product, used to group product in account-level shipping rules.
  &quot;shippingLength&quot;: { # Length of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWeight&quot;: { # Weight of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The weight of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWidth&quot;: { # Width of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shoppingAdsExcludedCountries&quot;: [ # List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
    &quot;A String&quot;,
  ],
  &quot;sizeSystem&quot;: &quot;A String&quot;, # System in which the size is specified. Recommended for apparel items.
  &quot;sizeType&quot;: &quot;A String&quot;, # The cut of the item. Recommended for apparel items.
  &quot;sizes&quot;: [ # Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
    &quot;A String&quot;,
  ],
  &quot;source&quot;: &quot;A String&quot;, # The source of the offer, i.e., how the offer was created. Acceptable values are: - &quot;`api`&quot; - &quot;`crawl`&quot; - &quot;`feed`&quot;
  &quot;subscriptionCost&quot;: { # Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract.
    &quot;amount&quot;: { # The amount the buyer has to pay per subscription period.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;period&quot;: &quot;A String&quot;, # The type of subscription period.
    &quot;periodLength&quot;: &quot;A String&quot;, # The number of subscription periods the buyer has to pay.
  },
  &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
  &quot;taxCategory&quot;: &quot;A String&quot;, # The tax category of the product, used to configure detailed tax nexus in account-level tax settings.
  &quot;taxes&quot;: [ # Tax information.
    {
      &quot;country&quot;: &quot;A String&quot;, # The country within which the item is taxed, specified as a CLDR territory code.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the tax rate applies to as defined in the AdWords API.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
      &quot;rate&quot;: 3.14, # The percentage of tax rate that applies to the item price.
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which the tax rate applies.
      &quot;taxShip&quot;: True or False, # Should be set to true if tax is charged on shipping.
    },
  ],
  &quot;title&quot;: &quot;A String&quot;, # Title of the item.
  &quot;transitTimeLabel&quot;: &quot;A String&quot;, # The transit time label of the product, used to group product in account-level transit time tables.
  &quot;unitPricingBaseMeasure&quot;: { # The preference of the denominator of the unit price.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the denominator.
    &quot;value&quot;: &quot;A String&quot;, # The denominator of the unit price.
  },
  &quot;unitPricingMeasure&quot;: { # The measure and dimension of an item.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the measure.
    &quot;value&quot;: 3.14, # The measure of an item.
  },
}

  feedId: string, The Content API Supplemental Feed ID. If present then product insertion applies to the data in a supplemental feed.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { #  Required product attributes are primarily defined by the products data specification. See the Products Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.
  &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
    &quot;A String&quot;,
  ],
  &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
  &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
  &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
    &quot;A String&quot;,
  ],
  &quot;adsRedirect&quot;: &quot;A String&quot;, # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
  &quot;adult&quot;: True or False, # Should be set to true if the item is targeted towards adults.
  &quot;ageGroup&quot;: &quot;A String&quot;, # Target age group of the item.
  &quot;availability&quot;: &quot;A String&quot;, # Availability status of the item.
  &quot;availabilityDate&quot;: &quot;A String&quot;, # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
  &quot;brand&quot;: &quot;A String&quot;, # Brand of the item.
  &quot;canonicalLink&quot;: &quot;A String&quot;, # URL for the canonical version of your item&#x27;s landing page.
  &quot;channel&quot;: &quot;A String&quot;, # Required. The item&#x27;s channel (online or local). Acceptable values are: - &quot;`local`&quot; - &quot;`online`&quot;
  &quot;color&quot;: &quot;A String&quot;, # Color of the item.
  &quot;condition&quot;: &quot;A String&quot;, # Condition or state of the item.
  &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
  &quot;costOfGoodsSold&quot;: { # Cost of goods sold. Used for gross profit reporting.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;customAttributes&quot;: [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., `{ &quot;name&quot;: &quot;size type&quot;, &quot;value&quot;: &quot;regular&quot; }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).
    {
      &quot;groupValues&quot;: [ # Subattributes within this attribute group. Exactly one of value or groupValues must be provided.
        # Object with schema name: CustomAttribute
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the attribute. Underscores will be replaced by spaces upon insertion.
      &quot;value&quot;: &quot;A String&quot;, # The value of the attribute.
    },
  ],
  &quot;customLabel0&quot;: &quot;A String&quot;, # Custom label 0 for custom grouping of items in a Shopping campaign.
  &quot;customLabel1&quot;: &quot;A String&quot;, # Custom label 1 for custom grouping of items in a Shopping campaign.
  &quot;customLabel2&quot;: &quot;A String&quot;, # Custom label 2 for custom grouping of items in a Shopping campaign.
  &quot;customLabel3&quot;: &quot;A String&quot;, # Custom label 3 for custom grouping of items in a Shopping campaign.
  &quot;customLabel4&quot;: &quot;A String&quot;, # Custom label 4 for custom grouping of items in a Shopping campaign.
  &quot;description&quot;: &quot;A String&quot;, # Description of the item.
  &quot;displayAdsId&quot;: &quot;A String&quot;, # An identifier for an item for dynamic remarketing campaigns.
  &quot;displayAdsLink&quot;: &quot;A String&quot;, # URL directly to your item&#x27;s landing page for dynamic remarketing campaigns.
  &quot;displayAdsSimilarIds&quot;: [ # Advertiser-specified recommendations.
    &quot;A String&quot;,
  ],
  &quot;displayAdsTitle&quot;: &quot;A String&quot;, # Title of an item for dynamic remarketing campaigns.
  &quot;displayAdsValue&quot;: 3.14, # Offer margin for dynamic remarketing campaigns.
  &quot;energyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;excludedDestinations&quot;: [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
    &quot;A String&quot;,
  ],
  &quot;expirationDate&quot;: &quot;A String&quot;, # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
  &quot;gender&quot;: &quot;A String&quot;, # Target gender of the item.
  &quot;googleProductCategory&quot;: &quot;A String&quot;, # Google&#x27;s category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.
  &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number (GTIN) of the item.
  &quot;id&quot;: &quot;A String&quot;, # The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product is of the form channel:contentLanguage: targetCountry: offerId.
  &quot;identifierExists&quot;: True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
  &quot;imageLink&quot;: &quot;A String&quot;, # URL of an image of the item.
  &quot;includedDestinations&quot;: [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.
    &quot;A String&quot;,
  ],
  &quot;installment&quot;: { # Number and amount of installments to pay for an item.
    &quot;amount&quot;: { # The amount the buyer has to pay per month.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;months&quot;: &quot;A String&quot;, # The number of installments the buyer has to pay.
  },
  &quot;isBundle&quot;: True or False, # Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.
  &quot;itemGroupId&quot;: &quot;A String&quot;, # Shared identifier for all variants of the same product.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#product`&quot;
  &quot;link&quot;: &quot;A String&quot;, # URL directly linking to your item&#x27;s page on your website.
  &quot;linkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront.
  &quot;loyaltyPoints&quot;: { # Loyalty points that users receive after purchasing the item. Japan only.
    &quot;name&quot;: &quot;A String&quot;, # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
    &quot;pointsValue&quot;: &quot;A String&quot;, # The retailer&#x27;s loyalty points in absolute value.
    &quot;ratio&quot;: 3.14, # The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.
  },
  &quot;material&quot;: &quot;A String&quot;, # The material of which the item is made.
  &quot;maxEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximal product handling time (in business days).
  &quot;minEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimal product handling time (in business days).
  &quot;mobileLink&quot;: &quot;A String&quot;, # URL for the mobile-optimized version of your item&#x27;s landing page.
  &quot;mobileLinkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront optimized for mobile devices.
  &quot;mpn&quot;: &quot;A String&quot;, # Manufacturer Part Number (MPN) of the item.
  &quot;multipack&quot;: &quot;A String&quot;, # The number of identical products in a merchant-defined multipack.
  &quot;offerId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.
  &quot;pattern&quot;: &quot;A String&quot;, # The item&#x27;s pattern (e.g. polka dots).
  &quot;pickupMethod&quot;: &quot;A String&quot;, # The pick up option for the item. Acceptable values are: - &quot;`buy`&quot; - &quot;`reserve`&quot; - &quot;`ship to store`&quot; - &quot;`not supported`&quot;
  &quot;pickupSla&quot;: &quot;A String&quot;, # Item store pickup timeline. Acceptable values are: - &quot;`same day`&quot; - &quot;`next day`&quot; - &quot;`2-day`&quot; - &quot;`3-day`&quot; - &quot;`4-day`&quot; - &quot;`5-day`&quot; - &quot;`6-day`&quot; - &quot;`7-day`&quot; - &quot;`multi-week`&quot;
  &quot;price&quot;: { # Price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;productDetails&quot;: [ # Technical specification or additional product details.
    {
      &quot;attributeName&quot;: &quot;A String&quot;, # The name of the product detail.
      &quot;attributeValue&quot;: &quot;A String&quot;, # The value of the product detail.
      &quot;sectionName&quot;: &quot;A String&quot;, # The section header used to group a set of product details.
    },
  ],
  &quot;productHighlights&quot;: [ # Bullet points describing the most relevant highlights of a product.
    &quot;A String&quot;,
  ],
  &quot;productTypes&quot;: [ # Categories of the item (formatted as in products data specification).
    &quot;A String&quot;,
  ],
  &quot;promotionIds&quot;: [ # The unique ID of a promotion.
    &quot;A String&quot;,
  ],
  &quot;salePrice&quot;: { # Advertised sale price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;salePriceEffectiveDate&quot;: &quot;A String&quot;, # Date range during which the item is on sale (see products data specification ).
  &quot;sellOnGoogleQuantity&quot;: &quot;A String&quot;, # The quantity of the product that is available for selling on Google. Supported only for online products.
  &quot;shipping&quot;: [ # Shipping rules.
    {
      &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
      &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
      &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
      &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
      &quot;price&quot;: { # Fixed shipping price, represented as a number.
        &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
        &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
      },
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which a shipping rate applies.
      &quot;service&quot;: &quot;A String&quot;, # A free-form description of the service class or delivery speed.
    },
  ],
  &quot;shippingHeight&quot;: { # Height of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingLabel&quot;: &quot;A String&quot;, # The shipping label of the product, used to group product in account-level shipping rules.
  &quot;shippingLength&quot;: { # Length of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWeight&quot;: { # Weight of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The weight of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWidth&quot;: { # Width of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shoppingAdsExcludedCountries&quot;: [ # List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
    &quot;A String&quot;,
  ],
  &quot;sizeSystem&quot;: &quot;A String&quot;, # System in which the size is specified. Recommended for apparel items.
  &quot;sizeType&quot;: &quot;A String&quot;, # The cut of the item. Recommended for apparel items.
  &quot;sizes&quot;: [ # Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
    &quot;A String&quot;,
  ],
  &quot;source&quot;: &quot;A String&quot;, # The source of the offer, i.e., how the offer was created. Acceptable values are: - &quot;`api`&quot; - &quot;`crawl`&quot; - &quot;`feed`&quot;
  &quot;subscriptionCost&quot;: { # Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract.
    &quot;amount&quot;: { # The amount the buyer has to pay per subscription period.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;period&quot;: &quot;A String&quot;, # The type of subscription period.
    &quot;periodLength&quot;: &quot;A String&quot;, # The number of subscription periods the buyer has to pay.
  },
  &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
  &quot;taxCategory&quot;: &quot;A String&quot;, # The tax category of the product, used to configure detailed tax nexus in account-level tax settings.
  &quot;taxes&quot;: [ # Tax information.
    {
      &quot;country&quot;: &quot;A String&quot;, # The country within which the item is taxed, specified as a CLDR territory code.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the tax rate applies to as defined in the AdWords API.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
      &quot;rate&quot;: 3.14, # The percentage of tax rate that applies to the item price.
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which the tax rate applies.
      &quot;taxShip&quot;: True or False, # Should be set to true if tax is charged on shipping.
    },
  ],
  &quot;title&quot;: &quot;A String&quot;, # Title of the item.
  &quot;transitTimeLabel&quot;: &quot;A String&quot;, # The transit time label of the product, used to group product in account-level transit time tables.
  &quot;unitPricingBaseMeasure&quot;: { # The preference of the denominator of the unit price.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the denominator.
    &quot;value&quot;: &quot;A String&quot;, # The denominator of the unit price.
  },
  &quot;unitPricingMeasure&quot;: { # The measure and dimension of an item.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the measure.
    &quot;value&quot;: 3.14, # The measure of an item.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(merchantId, maxResults=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists the products in your Merchant Center account. The response might contain fewer items than specified by maxResults. Rely on nextPageToken to determine if there are more items to be requested.

Args:
  merchantId: string, The ID of the account that contains the products. This account cannot be a multi-client account. (required)
  maxResults: integer, The maximum number of products to return in the response, used for paging.
  pageToken: string, The token returned by the previous request.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#productsListResponse`&quot;.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The token for the retrieval of the next page of products.
  &quot;resources&quot;: [
    { #  Required product attributes are primarily defined by the products data specification. See the Products Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.
      &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
        &quot;A String&quot;,
      ],
      &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
      &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
      &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
        &quot;A String&quot;,
      ],
      &quot;adsRedirect&quot;: &quot;A String&quot;, # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
      &quot;adult&quot;: True or False, # Should be set to true if the item is targeted towards adults.
      &quot;ageGroup&quot;: &quot;A String&quot;, # Target age group of the item.
      &quot;availability&quot;: &quot;A String&quot;, # Availability status of the item.
      &quot;availabilityDate&quot;: &quot;A String&quot;, # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
      &quot;brand&quot;: &quot;A String&quot;, # Brand of the item.
      &quot;canonicalLink&quot;: &quot;A String&quot;, # URL for the canonical version of your item&#x27;s landing page.
      &quot;channel&quot;: &quot;A String&quot;, # Required. The item&#x27;s channel (online or local). Acceptable values are: - &quot;`local`&quot; - &quot;`online`&quot;
      &quot;color&quot;: &quot;A String&quot;, # Color of the item.
      &quot;condition&quot;: &quot;A String&quot;, # Condition or state of the item.
      &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
      &quot;costOfGoodsSold&quot;: { # Cost of goods sold. Used for gross profit reporting.
        &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
        &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
      },
      &quot;customAttributes&quot;: [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., `{ &quot;name&quot;: &quot;size type&quot;, &quot;value&quot;: &quot;regular&quot; }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).
        {
          &quot;groupValues&quot;: [ # Subattributes within this attribute group. Exactly one of value or groupValues must be provided.
            # Object with schema name: CustomAttribute
          ],
          &quot;name&quot;: &quot;A String&quot;, # The name of the attribute. Underscores will be replaced by spaces upon insertion.
          &quot;value&quot;: &quot;A String&quot;, # The value of the attribute.
        },
      ],
      &quot;customLabel0&quot;: &quot;A String&quot;, # Custom label 0 for custom grouping of items in a Shopping campaign.
      &quot;customLabel1&quot;: &quot;A String&quot;, # Custom label 1 for custom grouping of items in a Shopping campaign.
      &quot;customLabel2&quot;: &quot;A String&quot;, # Custom label 2 for custom grouping of items in a Shopping campaign.
      &quot;customLabel3&quot;: &quot;A String&quot;, # Custom label 3 for custom grouping of items in a Shopping campaign.
      &quot;customLabel4&quot;: &quot;A String&quot;, # Custom label 4 for custom grouping of items in a Shopping campaign.
      &quot;description&quot;: &quot;A String&quot;, # Description of the item.
      &quot;displayAdsId&quot;: &quot;A String&quot;, # An identifier for an item for dynamic remarketing campaigns.
      &quot;displayAdsLink&quot;: &quot;A String&quot;, # URL directly to your item&#x27;s landing page for dynamic remarketing campaigns.
      &quot;displayAdsSimilarIds&quot;: [ # Advertiser-specified recommendations.
        &quot;A String&quot;,
      ],
      &quot;displayAdsTitle&quot;: &quot;A String&quot;, # Title of an item for dynamic remarketing campaigns.
      &quot;displayAdsValue&quot;: 3.14, # Offer margin for dynamic remarketing campaigns.
      &quot;energyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
      &quot;excludedDestinations&quot;: [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
        &quot;A String&quot;,
      ],
      &quot;expirationDate&quot;: &quot;A String&quot;, # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
      &quot;gender&quot;: &quot;A String&quot;, # Target gender of the item.
      &quot;googleProductCategory&quot;: &quot;A String&quot;, # Google&#x27;s category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.
      &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number (GTIN) of the item.
      &quot;id&quot;: &quot;A String&quot;, # The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product is of the form channel:contentLanguage: targetCountry: offerId.
      &quot;identifierExists&quot;: True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
      &quot;imageLink&quot;: &quot;A String&quot;, # URL of an image of the item.
      &quot;includedDestinations&quot;: [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.
        &quot;A String&quot;,
      ],
      &quot;installment&quot;: { # Number and amount of installments to pay for an item.
        &quot;amount&quot;: { # The amount the buyer has to pay per month.
          &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
          &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
        },
        &quot;months&quot;: &quot;A String&quot;, # The number of installments the buyer has to pay.
      },
      &quot;isBundle&quot;: True or False, # Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.
      &quot;itemGroupId&quot;: &quot;A String&quot;, # Shared identifier for all variants of the same product.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#product`&quot;
      &quot;link&quot;: &quot;A String&quot;, # URL directly linking to your item&#x27;s page on your website.
      &quot;linkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront.
      &quot;loyaltyPoints&quot;: { # Loyalty points that users receive after purchasing the item. Japan only.
        &quot;name&quot;: &quot;A String&quot;, # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
        &quot;pointsValue&quot;: &quot;A String&quot;, # The retailer&#x27;s loyalty points in absolute value.
        &quot;ratio&quot;: 3.14, # The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.
      },
      &quot;material&quot;: &quot;A String&quot;, # The material of which the item is made.
      &quot;maxEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
      &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximal product handling time (in business days).
      &quot;minEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
      &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimal product handling time (in business days).
      &quot;mobileLink&quot;: &quot;A String&quot;, # URL for the mobile-optimized version of your item&#x27;s landing page.
      &quot;mobileLinkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront optimized for mobile devices.
      &quot;mpn&quot;: &quot;A String&quot;, # Manufacturer Part Number (MPN) of the item.
      &quot;multipack&quot;: &quot;A String&quot;, # The number of identical products in a merchant-defined multipack.
      &quot;offerId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.
      &quot;pattern&quot;: &quot;A String&quot;, # The item&#x27;s pattern (e.g. polka dots).
      &quot;pickupMethod&quot;: &quot;A String&quot;, # The pick up option for the item. Acceptable values are: - &quot;`buy`&quot; - &quot;`reserve`&quot; - &quot;`ship to store`&quot; - &quot;`not supported`&quot;
      &quot;pickupSla&quot;: &quot;A String&quot;, # Item store pickup timeline. Acceptable values are: - &quot;`same day`&quot; - &quot;`next day`&quot; - &quot;`2-day`&quot; - &quot;`3-day`&quot; - &quot;`4-day`&quot; - &quot;`5-day`&quot; - &quot;`6-day`&quot; - &quot;`7-day`&quot; - &quot;`multi-week`&quot;
      &quot;price&quot;: { # Price of the item.
        &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
        &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
      },
      &quot;productDetails&quot;: [ # Technical specification or additional product details.
        {
          &quot;attributeName&quot;: &quot;A String&quot;, # The name of the product detail.
          &quot;attributeValue&quot;: &quot;A String&quot;, # The value of the product detail.
          &quot;sectionName&quot;: &quot;A String&quot;, # The section header used to group a set of product details.
        },
      ],
      &quot;productHighlights&quot;: [ # Bullet points describing the most relevant highlights of a product.
        &quot;A String&quot;,
      ],
      &quot;productTypes&quot;: [ # Categories of the item (formatted as in products data specification).
        &quot;A String&quot;,
      ],
      &quot;promotionIds&quot;: [ # The unique ID of a promotion.
        &quot;A String&quot;,
      ],
      &quot;salePrice&quot;: { # Advertised sale price of the item.
        &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
        &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
      },
      &quot;salePriceEffectiveDate&quot;: &quot;A String&quot;, # Date range during which the item is on sale (see products data specification ).
      &quot;sellOnGoogleQuantity&quot;: &quot;A String&quot;, # The quantity of the product that is available for selling on Google. Supported only for online products.
      &quot;shipping&quot;: [ # Shipping rules.
        {
          &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
          &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
          &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
          &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
          &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
          &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
          &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
          &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
          &quot;price&quot;: { # Fixed shipping price, represented as a number.
            &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
            &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
          },
          &quot;region&quot;: &quot;A String&quot;, # The geographic region to which a shipping rate applies.
          &quot;service&quot;: &quot;A String&quot;, # A free-form description of the service class or delivery speed.
        },
      ],
      &quot;shippingHeight&quot;: { # Height of the item for shipping.
        &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
        &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
      },
      &quot;shippingLabel&quot;: &quot;A String&quot;, # The shipping label of the product, used to group product in account-level shipping rules.
      &quot;shippingLength&quot;: { # Length of the item for shipping.
        &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
        &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
      },
      &quot;shippingWeight&quot;: { # Weight of the item for shipping.
        &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
        &quot;value&quot;: 3.14, # The weight of the product used to calculate the shipping cost of the item.
      },
      &quot;shippingWidth&quot;: { # Width of the item for shipping.
        &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
        &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
      },
      &quot;shoppingAdsExcludedCountries&quot;: [ # List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
        &quot;A String&quot;,
      ],
      &quot;sizeSystem&quot;: &quot;A String&quot;, # System in which the size is specified. Recommended for apparel items.
      &quot;sizeType&quot;: &quot;A String&quot;, # The cut of the item. Recommended for apparel items.
      &quot;sizes&quot;: [ # Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
        &quot;A String&quot;,
      ],
      &quot;source&quot;: &quot;A String&quot;, # The source of the offer, i.e., how the offer was created. Acceptable values are: - &quot;`api`&quot; - &quot;`crawl`&quot; - &quot;`feed`&quot;
      &quot;subscriptionCost&quot;: { # Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract.
        &quot;amount&quot;: { # The amount the buyer has to pay per subscription period.
          &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
          &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
        },
        &quot;period&quot;: &quot;A String&quot;, # The type of subscription period.
        &quot;periodLength&quot;: &quot;A String&quot;, # The number of subscription periods the buyer has to pay.
      },
      &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
      &quot;taxCategory&quot;: &quot;A String&quot;, # The tax category of the product, used to configure detailed tax nexus in account-level tax settings.
      &quot;taxes&quot;: [ # Tax information.
        {
          &quot;country&quot;: &quot;A String&quot;, # The country within which the item is taxed, specified as a CLDR territory code.
          &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the tax rate applies to as defined in the AdWords API.
          &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
          &quot;rate&quot;: 3.14, # The percentage of tax rate that applies to the item price.
          &quot;region&quot;: &quot;A String&quot;, # The geographic region to which the tax rate applies.
          &quot;taxShip&quot;: True or False, # Should be set to true if tax is charged on shipping.
        },
      ],
      &quot;title&quot;: &quot;A String&quot;, # Title of the item.
      &quot;transitTimeLabel&quot;: &quot;A String&quot;, # The transit time label of the product, used to group product in account-level transit time tables.
      &quot;unitPricingBaseMeasure&quot;: { # The preference of the denominator of the unit price.
        &quot;unit&quot;: &quot;A String&quot;, # The unit of the denominator.
        &quot;value&quot;: &quot;A String&quot;, # The denominator of the unit price.
      },
      &quot;unitPricingMeasure&quot;: { # The measure and dimension of an item.
        &quot;unit&quot;: &quot;A String&quot;, # The unit of the measure.
        &quot;value&quot;: 3.14, # The measure of an item.
      },
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="update">update(merchantId, productId, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates an existing product in your Merchant Center account. Only updates attributes provided in the request.

Args:
  merchantId: string, The ID of the account that contains the product. This account cannot be a multi-client account. (required)
  productId: string, The REST ID of the product for which to update. (required)
  body: object, The request body.
    The object takes the form of:

{ #  Required product attributes are primarily defined by the products data specification. See the Products Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.
  &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
    &quot;A String&quot;,
  ],
  &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
  &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
  &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
    &quot;A String&quot;,
  ],
  &quot;adsRedirect&quot;: &quot;A String&quot;, # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
  &quot;adult&quot;: True or False, # Should be set to true if the item is targeted towards adults.
  &quot;ageGroup&quot;: &quot;A String&quot;, # Target age group of the item.
  &quot;availability&quot;: &quot;A String&quot;, # Availability status of the item.
  &quot;availabilityDate&quot;: &quot;A String&quot;, # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
  &quot;brand&quot;: &quot;A String&quot;, # Brand of the item.
  &quot;canonicalLink&quot;: &quot;A String&quot;, # URL for the canonical version of your item&#x27;s landing page.
  &quot;channel&quot;: &quot;A String&quot;, # Required. The item&#x27;s channel (online or local). Acceptable values are: - &quot;`local`&quot; - &quot;`online`&quot;
  &quot;color&quot;: &quot;A String&quot;, # Color of the item.
  &quot;condition&quot;: &quot;A String&quot;, # Condition or state of the item.
  &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
  &quot;costOfGoodsSold&quot;: { # Cost of goods sold. Used for gross profit reporting.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;customAttributes&quot;: [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., `{ &quot;name&quot;: &quot;size type&quot;, &quot;value&quot;: &quot;regular&quot; }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).
    {
      &quot;groupValues&quot;: [ # Subattributes within this attribute group. Exactly one of value or groupValues must be provided.
        # Object with schema name: CustomAttribute
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the attribute. Underscores will be replaced by spaces upon insertion.
      &quot;value&quot;: &quot;A String&quot;, # The value of the attribute.
    },
  ],
  &quot;customLabel0&quot;: &quot;A String&quot;, # Custom label 0 for custom grouping of items in a Shopping campaign.
  &quot;customLabel1&quot;: &quot;A String&quot;, # Custom label 1 for custom grouping of items in a Shopping campaign.
  &quot;customLabel2&quot;: &quot;A String&quot;, # Custom label 2 for custom grouping of items in a Shopping campaign.
  &quot;customLabel3&quot;: &quot;A String&quot;, # Custom label 3 for custom grouping of items in a Shopping campaign.
  &quot;customLabel4&quot;: &quot;A String&quot;, # Custom label 4 for custom grouping of items in a Shopping campaign.
  &quot;description&quot;: &quot;A String&quot;, # Description of the item.
  &quot;displayAdsId&quot;: &quot;A String&quot;, # An identifier for an item for dynamic remarketing campaigns.
  &quot;displayAdsLink&quot;: &quot;A String&quot;, # URL directly to your item&#x27;s landing page for dynamic remarketing campaigns.
  &quot;displayAdsSimilarIds&quot;: [ # Advertiser-specified recommendations.
    &quot;A String&quot;,
  ],
  &quot;displayAdsTitle&quot;: &quot;A String&quot;, # Title of an item for dynamic remarketing campaigns.
  &quot;displayAdsValue&quot;: 3.14, # Offer margin for dynamic remarketing campaigns.
  &quot;energyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;excludedDestinations&quot;: [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
    &quot;A String&quot;,
  ],
  &quot;expirationDate&quot;: &quot;A String&quot;, # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
  &quot;gender&quot;: &quot;A String&quot;, # Target gender of the item.
  &quot;googleProductCategory&quot;: &quot;A String&quot;, # Google&#x27;s category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.
  &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number (GTIN) of the item.
  &quot;id&quot;: &quot;A String&quot;, # The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product is of the form channel:contentLanguage: targetCountry: offerId.
  &quot;identifierExists&quot;: True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
  &quot;imageLink&quot;: &quot;A String&quot;, # URL of an image of the item.
  &quot;includedDestinations&quot;: [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.
    &quot;A String&quot;,
  ],
  &quot;installment&quot;: { # Number and amount of installments to pay for an item.
    &quot;amount&quot;: { # The amount the buyer has to pay per month.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;months&quot;: &quot;A String&quot;, # The number of installments the buyer has to pay.
  },
  &quot;isBundle&quot;: True or False, # Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.
  &quot;itemGroupId&quot;: &quot;A String&quot;, # Shared identifier for all variants of the same product.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#product`&quot;
  &quot;link&quot;: &quot;A String&quot;, # URL directly linking to your item&#x27;s page on your website.
  &quot;linkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront.
  &quot;loyaltyPoints&quot;: { # Loyalty points that users receive after purchasing the item. Japan only.
    &quot;name&quot;: &quot;A String&quot;, # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
    &quot;pointsValue&quot;: &quot;A String&quot;, # The retailer&#x27;s loyalty points in absolute value.
    &quot;ratio&quot;: 3.14, # The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.
  },
  &quot;material&quot;: &quot;A String&quot;, # The material of which the item is made.
  &quot;maxEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximal product handling time (in business days).
  &quot;minEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimal product handling time (in business days).
  &quot;mobileLink&quot;: &quot;A String&quot;, # URL for the mobile-optimized version of your item&#x27;s landing page.
  &quot;mobileLinkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront optimized for mobile devices.
  &quot;mpn&quot;: &quot;A String&quot;, # Manufacturer Part Number (MPN) of the item.
  &quot;multipack&quot;: &quot;A String&quot;, # The number of identical products in a merchant-defined multipack.
  &quot;offerId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.
  &quot;pattern&quot;: &quot;A String&quot;, # The item&#x27;s pattern (e.g. polka dots).
  &quot;pickupMethod&quot;: &quot;A String&quot;, # The pick up option for the item. Acceptable values are: - &quot;`buy`&quot; - &quot;`reserve`&quot; - &quot;`ship to store`&quot; - &quot;`not supported`&quot;
  &quot;pickupSla&quot;: &quot;A String&quot;, # Item store pickup timeline. Acceptable values are: - &quot;`same day`&quot; - &quot;`next day`&quot; - &quot;`2-day`&quot; - &quot;`3-day`&quot; - &quot;`4-day`&quot; - &quot;`5-day`&quot; - &quot;`6-day`&quot; - &quot;`7-day`&quot; - &quot;`multi-week`&quot;
  &quot;price&quot;: { # Price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;productDetails&quot;: [ # Technical specification or additional product details.
    {
      &quot;attributeName&quot;: &quot;A String&quot;, # The name of the product detail.
      &quot;attributeValue&quot;: &quot;A String&quot;, # The value of the product detail.
      &quot;sectionName&quot;: &quot;A String&quot;, # The section header used to group a set of product details.
    },
  ],
  &quot;productHighlights&quot;: [ # Bullet points describing the most relevant highlights of a product.
    &quot;A String&quot;,
  ],
  &quot;productTypes&quot;: [ # Categories of the item (formatted as in products data specification).
    &quot;A String&quot;,
  ],
  &quot;promotionIds&quot;: [ # The unique ID of a promotion.
    &quot;A String&quot;,
  ],
  &quot;salePrice&quot;: { # Advertised sale price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;salePriceEffectiveDate&quot;: &quot;A String&quot;, # Date range during which the item is on sale (see products data specification ).
  &quot;sellOnGoogleQuantity&quot;: &quot;A String&quot;, # The quantity of the product that is available for selling on Google. Supported only for online products.
  &quot;shipping&quot;: [ # Shipping rules.
    {
      &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
      &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
      &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
      &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
      &quot;price&quot;: { # Fixed shipping price, represented as a number.
        &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
        &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
      },
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which a shipping rate applies.
      &quot;service&quot;: &quot;A String&quot;, # A free-form description of the service class or delivery speed.
    },
  ],
  &quot;shippingHeight&quot;: { # Height of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingLabel&quot;: &quot;A String&quot;, # The shipping label of the product, used to group product in account-level shipping rules.
  &quot;shippingLength&quot;: { # Length of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWeight&quot;: { # Weight of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The weight of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWidth&quot;: { # Width of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shoppingAdsExcludedCountries&quot;: [ # List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
    &quot;A String&quot;,
  ],
  &quot;sizeSystem&quot;: &quot;A String&quot;, # System in which the size is specified. Recommended for apparel items.
  &quot;sizeType&quot;: &quot;A String&quot;, # The cut of the item. Recommended for apparel items.
  &quot;sizes&quot;: [ # Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
    &quot;A String&quot;,
  ],
  &quot;source&quot;: &quot;A String&quot;, # The source of the offer, i.e., how the offer was created. Acceptable values are: - &quot;`api`&quot; - &quot;`crawl`&quot; - &quot;`feed`&quot;
  &quot;subscriptionCost&quot;: { # Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract.
    &quot;amount&quot;: { # The amount the buyer has to pay per subscription period.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;period&quot;: &quot;A String&quot;, # The type of subscription period.
    &quot;periodLength&quot;: &quot;A String&quot;, # The number of subscription periods the buyer has to pay.
  },
  &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
  &quot;taxCategory&quot;: &quot;A String&quot;, # The tax category of the product, used to configure detailed tax nexus in account-level tax settings.
  &quot;taxes&quot;: [ # Tax information.
    {
      &quot;country&quot;: &quot;A String&quot;, # The country within which the item is taxed, specified as a CLDR territory code.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the tax rate applies to as defined in the AdWords API.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
      &quot;rate&quot;: 3.14, # The percentage of tax rate that applies to the item price.
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which the tax rate applies.
      &quot;taxShip&quot;: True or False, # Should be set to true if tax is charged on shipping.
    },
  ],
  &quot;title&quot;: &quot;A String&quot;, # Title of the item.
  &quot;transitTimeLabel&quot;: &quot;A String&quot;, # The transit time label of the product, used to group product in account-level transit time tables.
  &quot;unitPricingBaseMeasure&quot;: { # The preference of the denominator of the unit price.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the denominator.
    &quot;value&quot;: &quot;A String&quot;, # The denominator of the unit price.
  },
  &quot;unitPricingMeasure&quot;: { # The measure and dimension of an item.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the measure.
    &quot;value&quot;: 3.14, # The measure of an item.
  },
}

  updateMask: string, The comma-separated list of product attributes to be updated. Example: `&quot;title,salePrice&quot;`. Attributes specified in the update mask without a value specified in the body will be deleted from the product. Only top-level product attributes can be updated. If not defined, product attributes with set values will be updated and other attributes will stay unchanged.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { #  Required product attributes are primarily defined by the products data specification. See the Products Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.
  &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
    &quot;A String&quot;,
  ],
  &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
  &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
  &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
    &quot;A String&quot;,
  ],
  &quot;adsRedirect&quot;: &quot;A String&quot;, # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
  &quot;adult&quot;: True or False, # Should be set to true if the item is targeted towards adults.
  &quot;ageGroup&quot;: &quot;A String&quot;, # Target age group of the item.
  &quot;availability&quot;: &quot;A String&quot;, # Availability status of the item.
  &quot;availabilityDate&quot;: &quot;A String&quot;, # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
  &quot;brand&quot;: &quot;A String&quot;, # Brand of the item.
  &quot;canonicalLink&quot;: &quot;A String&quot;, # URL for the canonical version of your item&#x27;s landing page.
  &quot;channel&quot;: &quot;A String&quot;, # Required. The item&#x27;s channel (online or local). Acceptable values are: - &quot;`local`&quot; - &quot;`online`&quot;
  &quot;color&quot;: &quot;A String&quot;, # Color of the item.
  &quot;condition&quot;: &quot;A String&quot;, # Condition or state of the item.
  &quot;contentLanguage&quot;: &quot;A String&quot;, # Required. The two-letter ISO 639-1 language code for the item.
  &quot;costOfGoodsSold&quot;: { # Cost of goods sold. Used for gross profit reporting.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;customAttributes&quot;: [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., `{ &quot;name&quot;: &quot;size type&quot;, &quot;value&quot;: &quot;regular&quot; }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).
    {
      &quot;groupValues&quot;: [ # Subattributes within this attribute group. Exactly one of value or groupValues must be provided.
        # Object with schema name: CustomAttribute
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the attribute. Underscores will be replaced by spaces upon insertion.
      &quot;value&quot;: &quot;A String&quot;, # The value of the attribute.
    },
  ],
  &quot;customLabel0&quot;: &quot;A String&quot;, # Custom label 0 for custom grouping of items in a Shopping campaign.
  &quot;customLabel1&quot;: &quot;A String&quot;, # Custom label 1 for custom grouping of items in a Shopping campaign.
  &quot;customLabel2&quot;: &quot;A String&quot;, # Custom label 2 for custom grouping of items in a Shopping campaign.
  &quot;customLabel3&quot;: &quot;A String&quot;, # Custom label 3 for custom grouping of items in a Shopping campaign.
  &quot;customLabel4&quot;: &quot;A String&quot;, # Custom label 4 for custom grouping of items in a Shopping campaign.
  &quot;description&quot;: &quot;A String&quot;, # Description of the item.
  &quot;displayAdsId&quot;: &quot;A String&quot;, # An identifier for an item for dynamic remarketing campaigns.
  &quot;displayAdsLink&quot;: &quot;A String&quot;, # URL directly to your item&#x27;s landing page for dynamic remarketing campaigns.
  &quot;displayAdsSimilarIds&quot;: [ # Advertiser-specified recommendations.
    &quot;A String&quot;,
  ],
  &quot;displayAdsTitle&quot;: &quot;A String&quot;, # Title of an item for dynamic remarketing campaigns.
  &quot;displayAdsValue&quot;: 3.14, # Offer margin for dynamic remarketing campaigns.
  &quot;energyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;excludedDestinations&quot;: [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
    &quot;A String&quot;,
  ],
  &quot;expirationDate&quot;: &quot;A String&quot;, # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
  &quot;gender&quot;: &quot;A String&quot;, # Target gender of the item.
  &quot;googleProductCategory&quot;: &quot;A String&quot;, # Google&#x27;s category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.
  &quot;gtin&quot;: &quot;A String&quot;, # Global Trade Item Number (GTIN) of the item.
  &quot;id&quot;: &quot;A String&quot;, # The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product is of the form channel:contentLanguage: targetCountry: offerId.
  &quot;identifierExists&quot;: True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
  &quot;imageLink&quot;: &quot;A String&quot;, # URL of an image of the item.
  &quot;includedDestinations&quot;: [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.
    &quot;A String&quot;,
  ],
  &quot;installment&quot;: { # Number and amount of installments to pay for an item.
    &quot;amount&quot;: { # The amount the buyer has to pay per month.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;months&quot;: &quot;A String&quot;, # The number of installments the buyer has to pay.
  },
  &quot;isBundle&quot;: True or False, # Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.
  &quot;itemGroupId&quot;: &quot;A String&quot;, # Shared identifier for all variants of the same product.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#product`&quot;
  &quot;link&quot;: &quot;A String&quot;, # URL directly linking to your item&#x27;s page on your website.
  &quot;linkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront.
  &quot;loyaltyPoints&quot;: { # Loyalty points that users receive after purchasing the item. Japan only.
    &quot;name&quot;: &quot;A String&quot;, # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
    &quot;pointsValue&quot;: &quot;A String&quot;, # The retailer&#x27;s loyalty points in absolute value.
    &quot;ratio&quot;: 3.14, # The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.
  },
  &quot;material&quot;: &quot;A String&quot;, # The material of which the item is made.
  &quot;maxEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximal product handling time (in business days).
  &quot;minEnergyEfficiencyClass&quot;: &quot;A String&quot;, # The energy efficiency class as defined in EU directive 2010/30/EU.
  &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimal product handling time (in business days).
  &quot;mobileLink&quot;: &quot;A String&quot;, # URL for the mobile-optimized version of your item&#x27;s landing page.
  &quot;mobileLinkTemplate&quot;: &quot;A String&quot;, # URL template for merchant hosted local storefront optimized for mobile devices.
  &quot;mpn&quot;: &quot;A String&quot;, # Manufacturer Part Number (MPN) of the item.
  &quot;multipack&quot;: &quot;A String&quot;, # The number of identical products in a merchant-defined multipack.
  &quot;offerId&quot;: &quot;A String&quot;, # Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.
  &quot;pattern&quot;: &quot;A String&quot;, # The item&#x27;s pattern (e.g. polka dots).
  &quot;pickupMethod&quot;: &quot;A String&quot;, # The pick up option for the item. Acceptable values are: - &quot;`buy`&quot; - &quot;`reserve`&quot; - &quot;`ship to store`&quot; - &quot;`not supported`&quot;
  &quot;pickupSla&quot;: &quot;A String&quot;, # Item store pickup timeline. Acceptable values are: - &quot;`same day`&quot; - &quot;`next day`&quot; - &quot;`2-day`&quot; - &quot;`3-day`&quot; - &quot;`4-day`&quot; - &quot;`5-day`&quot; - &quot;`6-day`&quot; - &quot;`7-day`&quot; - &quot;`multi-week`&quot;
  &quot;price&quot;: { # Price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;productDetails&quot;: [ # Technical specification or additional product details.
    {
      &quot;attributeName&quot;: &quot;A String&quot;, # The name of the product detail.
      &quot;attributeValue&quot;: &quot;A String&quot;, # The value of the product detail.
      &quot;sectionName&quot;: &quot;A String&quot;, # The section header used to group a set of product details.
    },
  ],
  &quot;productHighlights&quot;: [ # Bullet points describing the most relevant highlights of a product.
    &quot;A String&quot;,
  ],
  &quot;productTypes&quot;: [ # Categories of the item (formatted as in products data specification).
    &quot;A String&quot;,
  ],
  &quot;promotionIds&quot;: [ # The unique ID of a promotion.
    &quot;A String&quot;,
  ],
  &quot;salePrice&quot;: { # Advertised sale price of the item.
    &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
    &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
  },
  &quot;salePriceEffectiveDate&quot;: &quot;A String&quot;, # Date range during which the item is on sale (see products data specification ).
  &quot;sellOnGoogleQuantity&quot;: &quot;A String&quot;, # The quantity of the product that is available for selling on Google. Supported only for online products.
  &quot;shipping&quot;: [ # Shipping rules.
    {
      &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
      &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
      &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
      &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
      &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
      &quot;price&quot;: { # Fixed shipping price, represented as a number.
        &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
        &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
      },
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which a shipping rate applies.
      &quot;service&quot;: &quot;A String&quot;, # A free-form description of the service class or delivery speed.
    },
  ],
  &quot;shippingHeight&quot;: { # Height of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingLabel&quot;: &quot;A String&quot;, # The shipping label of the product, used to group product in account-level shipping rules.
  &quot;shippingLength&quot;: { # Length of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWeight&quot;: { # Weight of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The weight of the product used to calculate the shipping cost of the item.
  },
  &quot;shippingWidth&quot;: { # Width of the item for shipping.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of value.
    &quot;value&quot;: 3.14, # The dimension of the product used to calculate the shipping cost of the item.
  },
  &quot;shoppingAdsExcludedCountries&quot;: [ # List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
    &quot;A String&quot;,
  ],
  &quot;sizeSystem&quot;: &quot;A String&quot;, # System in which the size is specified. Recommended for apparel items.
  &quot;sizeType&quot;: &quot;A String&quot;, # The cut of the item. Recommended for apparel items.
  &quot;sizes&quot;: [ # Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
    &quot;A String&quot;,
  ],
  &quot;source&quot;: &quot;A String&quot;, # The source of the offer, i.e., how the offer was created. Acceptable values are: - &quot;`api`&quot; - &quot;`crawl`&quot; - &quot;`feed`&quot;
  &quot;subscriptionCost&quot;: { # Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract.
    &quot;amount&quot;: { # The amount the buyer has to pay per subscription period.
      &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
      &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
    },
    &quot;period&quot;: &quot;A String&quot;, # The type of subscription period.
    &quot;periodLength&quot;: &quot;A String&quot;, # The number of subscription periods the buyer has to pay.
  },
  &quot;targetCountry&quot;: &quot;A String&quot;, # Required. The CLDR territory code for the item.
  &quot;taxCategory&quot;: &quot;A String&quot;, # The tax category of the product, used to configure detailed tax nexus in account-level tax settings.
  &quot;taxes&quot;: [ # Tax information.
    {
      &quot;country&quot;: &quot;A String&quot;, # The country within which the item is taxed, specified as a CLDR territory code.
      &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the tax rate applies to as defined in the AdWords API.
      &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
      &quot;rate&quot;: 3.14, # The percentage of tax rate that applies to the item price.
      &quot;region&quot;: &quot;A String&quot;, # The geographic region to which the tax rate applies.
      &quot;taxShip&quot;: True or False, # Should be set to true if tax is charged on shipping.
    },
  ],
  &quot;title&quot;: &quot;A String&quot;, # Title of the item.
  &quot;transitTimeLabel&quot;: &quot;A String&quot;, # The transit time label of the product, used to group product in account-level transit time tables.
  &quot;unitPricingBaseMeasure&quot;: { # The preference of the denominator of the unit price.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the denominator.
    &quot;value&quot;: &quot;A String&quot;, # The denominator of the unit price.
  },
  &quot;unitPricingMeasure&quot;: { # The measure and dimension of an item.
    &quot;unit&quot;: &quot;A String&quot;, # The unit of the measure.
    &quot;value&quot;: 3.14, # The measure of an item.
  },
}</pre>
</div>

</body></html>