insert method

Future<RegionalInventory> insert(
  1. RegionalInventory request,
  2. String parent, {
  3. String? $fields,
})

Inserts a RegionalInventory to a given product in your merchant account.

Replaces the full RegionalInventory resource if an entry with the same region already exists for the product. It might take up to 30 minutes for the new or updated RegionalInventory resource to appear in products.

request - The metadata request object.

Request parameters:

parent - Required. The account and product where this inventory will be inserted. Format: accounts/{account}/products/{product} The {product} segment is a unique identifier for the product. This identifier must be unique within a merchant account and generally follows the structure: content_language~feed_label~offer_id. Example: en~US~sku123 For legacy local products, the structure is: local~content_language~feed_label~offer_id. Example: local~en~US~sku123 The format of the {product} segment in the URL is automatically detected by the server, supporting two options: 1. Encoded Format: The {product} segment is an unpadded base64url encoded string (RFC 4648 Section 5). The decoded string must result in the content_language~feed_label~offer_id structure. This encoding MUST be used if any part of the product identifier (like offer_id) contains characters such as /, %, or ~. * Example: To represent the product ID en~US~sku/123, the {product} segment must be the base64url encoding of this string, which is ZW5-VVMtc2t1LzEyMw. The full resource name for the product would be accounts/123/products/ZW5-VVMtc2t1LzEyMw. 2. Plain Format: The {product} segment is the tilde-separated string content_language~feed_label~offer_id. This format is suitable only when content_language, feed_label, and offer_id do not contain URL-problematic characters like /, %, or ~. We recommend using the Encoded Format for all product IDs to ensure correct parsing, especially those containing special characters. The presence of tilde (~) characters in the {product} segment is used to differentiate between the two formats. Note: For calls to the v1beta version, the plain format is channel~content_language~feed_label~offer_id, for example: accounts/123/products/online~en~US~sku123. Value must have pattern ^accounts/\[^/\]+/products/\[^/\]+$.

$fields - Selector specifying which fields to include in a partial response.

Completes with a RegionalInventory.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<RegionalInventory> insert(
  RegionalInventory request,
  core.String parent, {
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    'fields': ?$fields == null ? null : [$fields],
  };

  final url_ =
      'inventories/v1/' +
      core.Uri.encodeFull('$parent') +
      '/regionalInventories:insert';

  final response_ = await _requester.request(
    url_,
    'POST',
    body: body_,
    queryParams: queryParams_,
  );
  return RegionalInventory.fromJson(
    response_ as core.Map<core.String, core.dynamic>,
  );
}