- HTTP request
- Path parameters
- Request body
- Response body
- Authorization scopes
- IAM Permissions
- Try it!
Updates inventory information for a Product
while respecting the last update timestamps of each inventory field.
This process is asynchronous and does not require the Product
to exist before updating fulfillment information. If the request is valid, the update is enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product
queried by ProductService.GetProduct
or ProductService.ListProducts
.
When inventory is updated with ProductService.CreateProduct
and ProductService.UpdateProduct
, the specified inventory field value(s) overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update times for the specified inventory fields are overwritten by the times of the ProductService.CreateProduct
or ProductService.UpdateProduct
request.
If no inventory fields are set in CreateProductRequest.product
, then any pre-existing inventory information for this product is used.
If no inventory fields are set in SetInventoryRequest.set_mask
, then any existing inventory information is preserved.
Pre-existing inventory information can only be updated with ProductService.SetInventory
, ProductService.AddFulfillmentPlaces
, and ProductService.RemoveFulfillmentPlaces
.
The returned Operation
s is obsolete after one day, and the operations.get
API returns NOT_FOUND
afterwards.
If conflicting updates are issued, the Operation
s associated with the stale updates are not marked as done
until they are obsolete.
HTTP request
POST https://retail.googleapis.com/v2beta/{inventory.name=projects/*/locations/*/catalogs/*/branches/*/products/**}:setInventory
The URL uses gRPC Transcoding syntax.
Path parameters
Parameters | |
---|---|
inventory.name |
Immutable. Full resource name of the product, such as |
Request body
The request body contains data with the following structure:
JSON representation |
---|
{ "inventory": { "expireTime": string, "ttl": string, "name": string, "id": string, "type": enum ( |
Fields | |
---|---|
inventory.id |
Immutable. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property id. Schema.org property Product.sku. |
inventory.type |
Immutable. The type of the product. Default to |
inventory.primaryProductId |
Variant group identifier. Must be an For For VARIANT Corresponding properties: Google Merchant Center property item_group_id. Schema.org property Product.inProductGroupWithID. |
inventory.collectionMemberIds[] |
The Non-existent product ids are allowed. The |
inventory.gtin |
The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property gtin. Schema.org property Product.isbn, Product.gtin8, Product.gtin12, Product.gtin13, or Product.gtin14. If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. |
inventory.categories[] |
Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as:
Must be set for At most 250 values are allowed per Corresponding properties: Google Merchant Center property google_product_category. Schema.org property Product.category. |
inventory.title |
Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property title. Schema.org property Product.name. |
inventory.brands[] |
The brands of the product. A maximum of 30 brands are allowed unless overridden through the Google Cloud console. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property brand. Schema.org property Product.brand. |
inventory.description |
Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property description. Schema.org property Product.description. |
inventory.languageCode |
Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The For product search this field is in use. It defaults to "en-US" if unset. |
inventory.attributes |
Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned:
|
inventory.attributes.text[] |
The textual values of this custom attribute. For example, Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of |
inventory.attributes.numbers[] |
The numerical values of this custom attribute. For example, Exactly one of |
inventory.attributes.searchable |
This field is normally ignored unless This field is ignored in a Only set if type |
inventory.attributes.indexable |
This field is normally ignored unless This field is ignored in a See |
inventory.tags[] |
Custom tags associated with the product. At most 250 values are allowed per This tag can be used for filtering recommendation results by passing the tag as part of the Corresponding properties: Google Merchant Center property custom_label_0–4. |
inventory.priceInfo |
Product price and cost information. Corresponding properties: Google Merchant Center property price. |
inventory.rating |
The rating of this product. |
inventory.availableTime |
The timestamp when this A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
inventory.availability |
The online availability of the For primary products with variants set the availability of the primary as For primary products with no variants set the true availability at the primary level. Corresponding properties: Google Merchant Center property availability. Schema.org property Offer.availability. |
inventory.availableQuantity |
The available quantity of the item. |
inventory.fulfillmentInfo[] |
Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct |
inventory.uri |
Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property link. Schema.org property Offer.url. |
inventory.images[] |
Product images for the product. We highly recommend putting the main image first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property image_link. Schema.org property Product.image. |
inventory.audience |
The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. |
inventory.colorInfo |
The color of the product. Corresponding properties: Google Merchant Center property color. Schema.org property Product.color. |
inventory.sizes[] |
The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Corresponding properties: Google Merchant Center property size, size_type, and size_system. Schema.org property Product.size. |
inventory.materials[] |
The material of the product. For example, "leather", "wooden". A maximum of 20 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property material. Schema.org property Product.material. |
inventory.patterns[] |
The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 20 values are allowed per Corresponding properties: Google Merchant Center property pattern. Schema.org property Product.pattern. |
inventory.conditions[] |
The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 1 value is allowed per Corresponding properties: Google Merchant Center property condition. Schema.org property Offer.itemCondition. |
inventory.promotions[] |
The promotions applied to the product. A maximum of 10 values are allowed per |
inventory.publishTime |
The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
inventory.retrievableFields |
Indicates which fields in the Supported fields for all
Supported fields only for Supported fields only for
To mark For For The maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in This field is deprecated. Use the retrievable site-wide control instead. This is a comma-separated list of fully qualified names of fields. Example: |
inventory.variants[] |
Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by Note: This field is OUTPUT_ONLY for |
inventory.localInventories[] |
Output only. A list of local inventories specific to different places. This field can be managed by |
setMask |
Indicates which inventory fields in the provided At least one field must be provided. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored. This is a comma-separated list of fully qualified names of fields. Example: |
setTime |
The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
allowMissing |
If set to true, and the |
Union field
|
|
inventory.expireTime |
Note that this field is applied in the following ways:
In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness.
Corresponding properties: Google Merchant Center property expiration_date. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
inventory.ttl |
Input only. The TTL (time to live) of the product. Note that this is only applicable to If it is set, it must be a non-negative value, and If it is set, the product is not available for A duration in seconds with up to nine fractional digits, ending with ' |
Response body
If successful, the response body contains an instance of Operation
.
Authorization scopes
Requires the following OAuth scope:
https://www.googleapis.com/auth/cloud-platform
For more information, see the Authentication Overview.
IAM Permissions
Requires the following IAM permission on the name
resource:
retail.products.update
For more information, see the IAM documentation.