delete method

Future<Empty> delete(
  1. String name, {
  2. String? dataSource,
  3. String? $fields,
})

Deletes a product input from your Merchant Center account.

After inserting, updating, or deleting a product input, it may take several minutes before the processed product can be retrieved.

Request parameters:

name - Required. The name of the product input to delete. Format: accounts/{account}/productInputs/{productInput} The {productInput} 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 {productInput} segment in the URL is automatically detected by the server, supporting two options: 1. Encoded Format: The {productInput} 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 {productInput} segment must be the base64url encoding of this string, which is ZW5-VVMtc2t1LzEyMw. The full resource name for the product would be accounts/123/productInputs/ZW5-VVMtc2t1LzEyMw. 2. Plain Format: The {productInput} 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 {productInput} 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/productinputs/online~en~US~sku123. Value must have pattern ^accounts/\[^/\]+/productInputs/\[^/\]+$.

dataSource - Required. The primary or supplemental data source from which the product input should be deleted. Format: accounts/{account}/dataSources/{datasource}. For example, accounts/123456/dataSources/104628.

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

Completes with a Empty.

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<Empty> delete(
  core.String name, {
  core.String? dataSource,
  core.String? $fields,
}) async {
  final queryParams_ = <core.String, core.List<core.String>>{
    'dataSource': ?dataSource == null ? null : [dataSource],
    'fields': ?$fields == null ? null : [$fields],
  };

  final url_ = 'products/v1/' + core.Uri.encodeFull('$name');

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