<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.html">Content API for Shopping</a> . <a href="content_v2.inventory.html">inventory</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#custombatch">custombatch(body, dryRun=None)</a></code></p>
<p class="firstline">Updates price and availability for multiple products or stores in a single request. This operation does not update the expiration date of the products.</p>
<p class="toc_element">
  <code><a href="#set">set(merchantId, storeCode, productId, body, dryRun=None)</a></code></p>
<p class="firstline">Updates price and availability of a product in your Merchant Center account.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="custombatch">custombatch(body, dryRun=None)</code>
  <pre>Updates price and availability for multiple products or stores in a single request. This operation does not update the expiration date of the products.

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

{
    "entries": [ # The request entries to be processed in the batch.
      { # A batch entry encoding a single non-batch inventory request.
        "batchId": 42, # An entry ID, unique within the batch request.
        "storeCode": "A String", # The code of the store for which to update price and availability. Use online to update price and availability of an online product.
        "productId": "A String", # The ID of the product for which to update price and availability.
        "inventory": { # Price and availability of the product.
          "kind": "content#inventory", # Identifies what kind of resource this is. Value: the fixed string "content#inventory".
          "installment": { # Number and amount of installments to pay for an item. Brazil only.
            "amount": { # The amount the buyer has to pay per month.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "months": "A String", # The number of installments the buyer has to pay.
          },
          "quantity": 42, # The quantity of the product. Must be equal to or greater than zero. Supported only for local products.
          "salePriceEffectiveDate": "A String", # A date range represented by a pair of ISO 8601 dates separated by a space, comma, or slash. Both dates might be specified as 'null' if undecided.
          "price": { # The price of the product.
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
          "availability": "A String", # The availability of the product.
          "sellOnGoogleQuantity": 42, # The quantity of the product that is available for selling on Google. Supported only for online products.
          "pickup": { # Store pickup information. Only supported for local inventory. Not setting pickup means "don't update" while setting it to the empty value ({} in JSON) means "delete". Otherwise, pickupMethod and pickupSla must be set together, unless pickupMethod is "not supported".
            "pickupMethod": "A String", # Whether store pickup is available for this offer and whether the pickup option should be shown as buy, reserve, or not supported. Only supported for local inventory. Unless the value is "not supported", must be submitted together with pickupSla.
            "pickupSla": "A String", # The expected date that an order will be ready for pickup, relative to when the order is placed. Only supported for local inventory. Must be submitted together with pickupMethod.
          },
          "loyaltyPoints": { # Loyalty points that users receive after purchasing the item. Japan only.
            "ratio": 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.
            "name": "A String", # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
            "pointsValue": "A String", # The retailer's loyalty points in absolute value.
          },
          "instoreProductLocation": "A String", # The instore product location. Supported only for local products.
          "salePrice": { # The sale price of the product. Mandatory if sale_price_effective_date is defined.
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
          "customLabel4": "A String", # Custom label 3 for custom grouping of items in a Shopping campaign. Only supported for online products.
          "customLabel3": "A String", # Custom label 3 for custom grouping of items in a Shopping campaign. Only supported for online products.
          "customLabel2": "A String", # Custom label 2 for custom grouping of items in a Shopping campaign. Only supported for online products.
          "customLabel1": "A String", # Custom label 1 for custom grouping of items in a Shopping campaign. Only supported for online products.
          "customLabel0": "A String", # Custom label 0 for custom grouping of items in a Shopping campaign. Only supported for online products.
        },
        "merchantId": "A String", # The ID of the managing account.
      },
    ],
  }

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).

Returns:
  An object of the form:

    {
    "kind": "content#inventoryCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#inventoryCustomBatchResponse".
    "entries": [ # The result of the execution of the batch requests.
      { # A batch entry encoding a single non-batch inventory response.
        "batchId": 42, # The ID of the request entry this entry responds to.
        "kind": "content#inventoryCustomBatchResponseEntry", # Identifies what kind of resource this is. Value: the fixed string "content#inventoryCustomBatchResponseEntry".
        "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
          "message": "A String", # The message of the first error in errors.
          "code": 42, # The HTTP status of the first error in errors.
          "errors": [ # A list of errors.
            { # An error returned by the API.
              "reason": "A String", # The error code.
              "domain": "A String", # The domain of the error.
              "message": "A String", # A description of the error.
            },
          ],
        },
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="set">set(merchantId, storeCode, productId, body, dryRun=None)</code>
  <pre>Updates price and availability of a product in 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)
  storeCode: string, The code of the store for which to update price and availability. Use online to update price and availability of an online product. (required)
  productId: string, The REST ID of the product for which to update price and availability. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
    "installment": { # Number and amount of installments to pay for an item. Brazil only.
      "amount": { # The amount the buyer has to pay per month.
        "currency": "A String", # The currency of the price.
        "value": "A String", # The price represented as a number.
      },
      "months": "A String", # The number of installments the buyer has to pay.
    },
    "quantity": 42, # The quantity of the product. Must be equal to or greater than zero. Supported only for local products.
    "salePriceEffectiveDate": "A String", # A date range represented by a pair of ISO 8601 dates separated by a space, comma, or slash. Both dates might be specified as 'null' if undecided.
    "price": { # The price of the product.
      "currency": "A String", # The currency of the price.
      "value": "A String", # The price represented as a number.
    },
    "availability": "A String", # The availability of the product.
    "sellOnGoogleQuantity": 42, # The quantity of the product that is available for selling on Google. Supported only for online products.
    "pickup": { # Store pickup information. Only supported for local inventory. Not setting pickup means "don't update" while setting it to the empty value ({} in JSON) means "delete". Otherwise, pickupMethod and pickupSla must be set together, unless pickupMethod is "not supported".
      "pickupMethod": "A String", # Whether store pickup is available for this offer and whether the pickup option should be shown as buy, reserve, or not supported. Only supported for local inventory. Unless the value is "not supported", must be submitted together with pickupSla.
      "pickupSla": "A String", # The expected date that an order will be ready for pickup, relative to when the order is placed. Only supported for local inventory. Must be submitted together with pickupMethod.
    },
    "loyaltyPoints": { # Loyalty points that users receive after purchasing the item. Japan only.
      "ratio": 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.
      "name": "A String", # Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.
      "pointsValue": "A String", # The retailer's loyalty points in absolute value.
    },
    "instoreProductLocation": "A String", # The instore product location. Supported only for local products.
    "salePrice": { # The sale price of the product. Mandatory if sale_price_effective_date is defined.
      "currency": "A String", # The currency of the price.
      "value": "A String", # The price represented as a number.
    },
    "customLabel4": "A String", # Custom label 3 for custom grouping of items in a Shopping campaign. Only supported for online products.
    "customLabel3": "A String", # Custom label 3 for custom grouping of items in a Shopping campaign. Only supported for online products.
    "customLabel2": "A String", # Custom label 2 for custom grouping of items in a Shopping campaign. Only supported for online products.
    "customLabel1": "A String", # Custom label 1 for custom grouping of items in a Shopping campaign. Only supported for online products.
    "customLabel0": "A String", # Custom label 0 for custom grouping of items in a Shopping campaign. Only supported for online products.
  }

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).

Returns:
  An object of the form:

    {
    "kind": "content#inventorySetResponse", # Identifies what kind of resource this is. Value: the fixed string "content#inventorySetResponse".
  }</pre>
</div>

</body></html>