| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent a08d87f commit 256b575
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - // Copyright 2025 Google LLC | ||
| 1 | + // Copyright 2026 Google LLC | ||
| 2 | 2 | // | |
| 3 | 3 | // Licensed under the Apache License, Version 2.0 (the "License"); | |
| 4 | 4 | // you may not use this file except in compliance with the License. | |
@@ -39,11 +39,11 @@ service ProductInputsService { | |||
| 39 | 39 | option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; | |
| 40 | 40 | ||
| 41 | 41 | // [Uploads a product input to your Merchant Center | |
| 42 | - // account](/merchant/api/guides/products/overview#upload-product-input). You | ||
| 42 | + // account](/merchant/api/guides/products/add-manage#add_a_product). You | ||
| 43 | 43 | // must have a products [data | |
| 44 | - // source](/merchant/api/guides/data-sources/overview) to be able to insert a | ||
| 45 | - // product. The unique identifier of the data source is passed as a query | ||
| 46 | - // parameter in the request URL. | ||
| 44 | + // source](/merchant/api/guides/data-sources/api-sources#create-primary-data-source) | ||
| 45 | + // to be able to insert a product. The unique identifier of the data source is | ||
| 46 | + // passed as a query parameter in the request URL. | ||
| 47 | 47 | // | |
| 48 | 48 | // If a product input with the same contentLanguage, offerId, and dataSource | |
| 49 | 49 | // already exists, then the product input inserted by this method replaces | |
@@ -59,6 +59,8 @@ service ProductInputsService { | |||
| 59 | 59 | } | |
| 60 | 60 | ||
| 61 | 61 | // Updates the existing product input in your Merchant Center account. | |
| 62 | + // The name of the product input to update is taken from the `name` field | ||
| 63 | + // within the `ProductInput` resource. | ||
| 62 | 64 | // | |
| 63 | 65 | // After inserting, updating, or deleting a product input, it may take several | |
| 64 | 66 | // minutes before the processed product can be retrieved. | |
@@ -117,16 +119,44 @@ message ProductInput { | |||
| 117 | 119 | singular: "productInput" | |
| 118 | 120 | }; | |
| 119 | 121 | ||
| 120 | - // Identifier. The name of the product input. | ||
| 122 | + // Identifier. The name of the product. | ||
| 121 | 123 | // Format: `accounts/{account}/productInputs/{productinput}` | |
| 122 | - // where the last section `productinput` consists of: | ||
| 123 | - // `content_language~feed_label~offer_id` | ||
| 124 | - // example for product input name is | ||
| 125 | - // `accounts/123/productInputs/en~US~sku123`. A legacy local product input | ||
| 126 | - // name would be `accounts/123/productInputs/local~en~US~sku123`. | ||
| 127 | - // Note: For calls to the v1beta version, the `productInput` section consists | ||
| 128 | - // of: `channel~content_language~feed_label~offer_id`, for example: | ||
| 129 | - // `accounts/123/productInputs/online~en~US~sku123`. | ||
| 124 | + // | ||
| 125 | + // The {productinput} segment is a unique identifier for the product. | ||
| 126 | + // This identifier must be unique within a merchant account and generally | ||
| 127 | + // follows the structure: `content_language~feed_label~offer_id`. Example: | ||
| 128 | + // `en~US~sku123` For legacy local products, the structure is: | ||
| 129 | + // `local~content_language~feed_label~offer_id`. Example: `local~en~US~sku123` | ||
| 130 | + // | ||
| 131 | + // The format of the {productinput} segment in the URL is automatically | ||
| 132 | + // detected by the server, supporting two options: | ||
| 133 | + // | ||
| 134 | + // 1. **Encoded Format**: The `{productinput}` segment is an unpadded | ||
| 135 | + // base64url | ||
| 136 | + // encoded string (RFC 4648 Section 5). The decoded string must result | ||
| 137 | + // in the `content_language~feed_label~offer_id` structure. This encoding | ||
| 138 | + // MUST be used if any part of the product identifier (like `offer_id`) | ||
| 139 | + // contains characters such as `/`, `%`, or `~`. | ||
| 140 | + // * Example: To represent the product ID `en~US~sku/123`, the | ||
| 141 | + // `{productinput}` segment must be the base64url encoding of this | ||
| 142 | + // string, which is `ZW5-VVMtc2t1LzEyMw`. The full resource name | ||
| 143 | + // for the product would be | ||
| 144 | + // `accounts/123/productinputs/ZW5-VVMtc2t1LzEyMw`. | ||
| 145 | + // | ||
| 146 | + // 2. **Plain Format**: The `{productinput}` segment is the tilde-separated | ||
| 147 | + // string | ||
| 148 | + // `content_language~feed_label~offer_id`. This format is suitable only | ||
| 149 | + // when `content_language`, `feed_label`, and `offer_id` do not contain | ||
| 150 | + // URL-problematic characters like `/`, `%`, or `~`. | ||
| 151 | + // | ||
| 152 | + // We recommend using the **Encoded Format** for all product IDs to ensure | ||
| 153 | + // correct parsing, especially those containing special characters. The | ||
| 154 | + // presence of tilde (`~`) characters in the `{productinput}` segment is used | ||
| 155 | + // to differentiate between the two formats. | ||
| 156 | + // | ||
| 157 | + // Note: For calls to the v1beta version, the plain format is | ||
| 158 | + // `channel~content_language~feed_label~offer_id`, for example: | ||
| 159 | + // `accounts/123/productinputs/online~en~US~sku123`. | ||
| 130 | 160 | string name = 1 [(google.api.field_behavior) = IDENTIFIER]; | |
| 131 | 161 | ||
| 132 | 162 | // Output only. The name of the processed product. | |
@@ -227,8 +257,8 @@ message InsertProductInputRequest { | |||
| 227 | 257 | // Required. The primary or supplemental product data source name. If the | |
| 228 | 258 | // product already exists and data source provided is different, then the | |
| 229 | 259 | // product will be moved to a new data source. For more information, see | |
| 230 | - // [Overview of Data sources | ||
| 231 | - // sub-API](/merchant/api/guides/data-sources/overview). | ||
| 260 | + // [Create a primary data | ||
| 261 | + // source](/merchant/api/guides/data-sources/api-sources#create-primary-data-source). | ||
| 232 | 262 | // | |
| 233 | 263 | // Only API data sources are supported. | |
| 234 | 264 | // | |
@@ -243,7 +273,8 @@ message InsertProductInputRequest { | |||
| 243 | 273 | // input must be from the same data source. | |
| 244 | 274 | message UpdateProductInputRequest { | |
| 245 | 275 | // Required. The product input resource to update. Information you submit will | |
| 246 | - // be applied to the processed product as well. | ||
| 276 | + // be applied to the processed product as well. The `name` field within this | ||
| 277 | + // resource identifies the product input to be updated. | ||
| 247 | 278 | ProductInput product_input = 1 [(google.api.field_behavior) = REQUIRED]; | |
| 248 | 279 | ||
| 249 | 280 | // Optional. The list of product attributes to be updated. | |
@@ -276,12 +307,44 @@ message UpdateProductInputRequest { | |||
| 276 | 307 | ||
| 277 | 308 | // Request message for the DeleteProductInput method. | |
| 278 | 309 | message DeleteProductInputRequest { | |
| 279 | - // Required. The name of the product input resource to delete. | ||
| 280 | - // Format: `accounts/{account}/productInputs/{product}` | ||
| 281 | - // where the last section `product` consists of: | ||
| 282 | - // `content_language~feed_label~offer_id` | ||
| 283 | - // example for product name is | ||
| 284 | - // `accounts/123/productInputs/en~US~sku123`. | ||
| 310 | + // Required. The name of the product input to delete. | ||
| 311 | + // Format: `accounts/{account}/productInputs/{productInput}` | ||
| 312 | + // | ||
| 313 | + // The {productInput} segment is a unique identifier for the product. | ||
| 314 | + // This identifier must be unique within a merchant account and generally | ||
| 315 | + // follows the structure: `content_language~feed_label~offer_id`. Example: | ||
| 316 | + // `en~US~sku123` For legacy local products, the structure is: | ||
| 317 | + // `local~content_language~feed_label~offer_id`. Example: `local~en~US~sku123` | ||
| 318 | + // | ||
| 319 | + // The format of the {productInput} segment in the URL is automatically | ||
| 320 | + // detected by the server, supporting two options: | ||
| 321 | + // | ||
| 322 | + // 1. **Encoded Format**: The `{productInput}` segment is an unpadded | ||
| 323 | + // base64url | ||
| 324 | + // encoded string (RFC 4648 Section 5). The decoded string must result | ||
| 325 | + // in the `content_language~feed_label~offer_id` structure. This encoding | ||
| 326 | + // MUST be used if any part of the product identifier (like `offer_id`) | ||
| 327 | + // contains characters such as `/`, `%`, or `~`. | ||
| 328 | + // * Example: To represent the product ID `en~US~sku/123`, the | ||
| 329 | + // `{productInput}` segment must be the base64url encoding of this | ||
| 330 | + // string, which is `ZW5-VVMtc2t1LzEyMw`. The full resource name | ||
| 331 | + // for the product would be | ||
| 332 | + // `accounts/123/productInputs/ZW5-VVMtc2t1LzEyMw`. | ||
| 333 | + // | ||
| 334 | + // 2. **Plain Format**: The `{productInput}` segment is the tilde-separated | ||
| 335 | + // string | ||
| 336 | + // `content_language~feed_label~offer_id`. This format is suitable only | ||
| 337 | + // when `content_language`, `feed_label`, and `offer_id` do not contain | ||
| 338 | + // URL-problematic characters like `/`, `%`, or `~`. | ||
| 339 | + // | ||
| 340 | + // We recommend using the **Encoded Format** for all product IDs to ensure | ||
| 341 | + // correct parsing, especially those containing special characters. The | ||
| 342 | + // presence of tilde (`~`) characters in the `{productInput}` segment is used | ||
| 343 | + // to differentiate between the two formats. | ||
| 344 | + // | ||
| 345 | + // Note: For calls to the v1beta version, the plain format is | ||
| 346 | + // `channel~content_language~feed_label~offer_id`, for example: | ||
| 347 | + // `accounts/123/productinputs/online~en~US~sku123`. | ||
| 285 | 348 | string name = 1 [ | |
| 286 | 349 | (google.api.field_behavior) = REQUIRED, | |
| 287 | 350 | (google.api.resource_reference) = { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - // Copyright 2025 Google LLC | ||
| 1 | + // Copyright 2026 Google LLC | ||
| 2 | 2 | // | |
| 3 | 3 | // Licensed under the Apache License, Version 2.0 (the "License"); | |
| 4 | 4 | // you may not use this file except in compliance with the License. | |
@@ -164,16 +164,42 @@ message Product { | |||
| 164 | 164 | ||
| 165 | 165 | // Request message for the GetProduct method. | |
| 166 | 166 | message GetProductRequest { | |
| 167 | - // Required. The name of the product to retrieve. | ||
| 168 | - // Format: | ||
| 169 | - // `accounts/{account}/products/{product}` where the last | ||
| 170 | - // section `product` consists of: | ||
| 171 | - // `content_language~feed_label~offer_id` | ||
| 172 | - // example for product name is `accounts/123/products/en~US~sku123`. A legacy | ||
| 173 | - // local product name would be `accounts/123/products/local~en~US~sku123`. | ||
| 174 | - // Note: For calls to the v1beta version, the `product` section consists | ||
| 175 | - // of: `channel~content_language~feed_label~offer_id`, for example: | ||
| 176 | - // `accounts/123/products/online~en~US~sku123`. | ||
| 167 | + // Required. The name of the product. | ||
| 168 | + // Format: `accounts/{account}/products/{product}` | ||
| 169 | + // | ||
| 170 | + // The `{product}` segment is a unique identifier for the product. | ||
| 171 | + // This identifier must be unique within a merchant account and generally | ||
| 172 | + // follows the structure: `content_language~feed_label~offer_id`. Example: | ||
| 173 | + // `en~US~sku123` For legacy local products, the structure is: | ||
| 174 | + // `local~content_language~feed_label~offer_id`. Example: `local~en~US~sku123` | ||
| 175 | + // | ||
| 176 | + // The format of the `{product}` segment in the URL is automatically detected | ||
| 177 | + // by the server, supporting two options: | ||
| 178 | + // | ||
| 179 | + // 1. **Encoded Format**: The `{product}` segment is an unpadded base64url | ||
| 180 | + // encoded string (RFC 4648 Section 5). The decoded string must result | ||
| 181 | + // in the `content_language~feed_label~offer_id` structure. This encoding | ||
| 182 | + // MUST be used if any part of the product identifier (like `offer_id`) | ||
| 183 | + // contains characters such as `/`, `%`, or `~`. | ||
| 184 | + // * Example: To represent the product ID `en~US~sku/123`, the | ||
| 185 | + // `{product}` segment must be the base64url encoding of this | ||
| 186 | + // string, which is `ZW5-VVMtc2t1LzEyMw`. The full resource name | ||
| 187 | + // for the product would be | ||
| 188 | + // `accounts/123/products/ZW5-VVMtc2t1LzEyMw`. | ||
| 189 | + // | ||
| 190 | + // 2. **Plain Format**: The `{product}` segment is the tilde-separated string | ||
| 191 | + // `content_language~feed_label~offer_id`. This format is suitable only | ||
| 192 | + // when `content_language`, `feed_label`, and `offer_id` do not contain | ||
| 193 | + // URL-problematic characters like `/`, `%`, or `~`. | ||
| 194 | + // | ||
| 195 | + // We recommend using the **Encoded Format** for all product IDs to ensure | ||
| 196 | + // correct parsing, especially those containing special characters. The | ||
| 197 | + // presence of tilde (`~`) characters in the `{product}` segment is used to | ||
| 198 | + // differentiate between the two formats. | ||
| 199 | + // | ||
| 200 | + // Note: For calls to the v1beta version, the plain format is | ||
| 201 | + // `channel~content_language~feed_label~offer_id`, for example: | ||
| 202 | + // `accounts/123/products/online~en~US~sku123`. | ||
| 177 | 203 | string name = 1 [ | |
| 178 | 204 | (google.api.field_behavior) = REQUIRED, | |
| 179 | 205 | (google.api.resource_reference) = { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - // Copyright 2025 Google LLC | ||
| 1 | + // Copyright 2026 Google LLC | ||
| 2 | 2 | // | |
| 3 | 3 | // Licensed under the Apache License, Version 2.0 (the "License"); | |
| 4 | 4 | // you may not use this file except in compliance with the License. | |
@@ -39,6 +39,9 @@ enum SubscriptionPeriod { | |||
| 39 | 39 | ||
| 40 | 40 | // Indicates that the subscription period is year. | |
| 41 | 41 | YEAR = 2; | |
| 42 | + | ||
| 43 | + // Indicates that the subscription period is week. | ||
| 44 | + WEEK = 3; | ||
| 42 | 45 | } | |
| 43 | 46 | ||
| 44 | 47 | // Target [age group](https://support.google.com/merchants/answer/6324463) of | |
@@ -493,6 +496,23 @@ enum CarrierTransitTimeOption { | |||
| 493 | 496 | ||
| 494 | 497 | // Product attributes. | |
| 495 | 498 | message ProductAttributes { | |
| 499 | + // The business days during which orders are on their path to fulfillment. | ||
| 500 | + // If not provided, Monday to Friday business days will be assumed. | ||
| 501 | + message ShippingBusinessDaysConfig { | ||
| 502 | + // The [CLDR territory | ||
| 503 | + // code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) | ||
| 504 | + // of the country to which an item will ship. | ||
| 505 | + optional string country = 1; | ||
| 506 | + | ||
| 507 | + // Effective days of the week considered for the delivery time calculation. | ||
| 508 | + // May not be empty. The more business days included the faster the | ||
| 509 | + // delivery. Can be set through individual days (e.g. `MTWRF`), or day | ||
| 510 | + // ranges (e.g. `Mon-Fri`). For more information about accepted formats, | ||
| 511 | + // see [Shipping handling business | ||
| 512 | + // days](https://support.google.com/merchants/answer/16072859). | ||
| 513 | + optional string business_days = 2; | ||
| 514 | + } | ||
| 515 | + | ||
| 496 | 516 | // Carrier-based shipping configuration. Allows for setting shipping speed or | |
| 497 | 517 | // shipping cost based on a carrier's provided info. | |
| 498 | 518 | message CarrierShipping { | |
@@ -912,7 +932,7 @@ message ProductAttributes { | |||
| 912 | 932 | // Number and amount of installments to pay for an item. | |
| 913 | 933 | ProductInstallment installment = 32; | |
| 914 | 934 | ||
| 915 | - // Number of periods (months or years) and amount of payment per period | ||
| 935 | + // Number of periods (weeks, months or years) and amount of payment per period | ||
| 916 | 936 | // for an item with an associated subscription contract. | |
| 917 | 937 | SubscriptionCost subscription_cost = 33; | |
| 918 | 938 | ||
@@ -983,6 +1003,17 @@ message ProductAttributes { | |||
| 983 | 1003 | // Minimal product handling time (in business days). | |
| 984 | 1004 | optional int64 min_handling_time = 45; | |
| 985 | 1005 | ||
| 1006 | + // The business days during which orders can be handled. If not provided, | ||
| 1007 | + // Monday to Friday business days will be assumed. | ||
| 1008 | + repeated ShippingBusinessDaysConfig shipping_handling_business_days = 143; | ||
| 1009 | + | ||
| 1010 | + // The business days during which orders are in transit. | ||
| 1011 | + // If not provided, Monday to Friday business days will be assumed. | ||
| 1012 | + repeated ShippingBusinessDaysConfig shipping_transit_business_days = 144; | ||
| 1013 | + | ||
| 1014 | + // The handling cutoff times for shipping. | ||
| 1015 | + repeated HandlingCutoffTime handling_cutoff_times = 141; | ||
| 1016 | + | ||
| 986 | 1017 | // The shipping label of the product, used to group product in account-level | |
| 987 | 1018 | // shipping rules. | |
| 988 | 1019 | optional string shipping_label = 46; | |
@@ -1238,6 +1269,7 @@ message SubscriptionCost { | |||
| 1238 | 1269 | // Supported values are: | |
| 1239 | 1270 | // * "`month`" | |
| 1240 | 1271 | // * "`year`" | |
| 1272 | + // * "`week`" | ||
| 1241 | 1273 | SubscriptionPeriod period = 1; | |
| 1242 | 1274 | ||
| 1243 | 1275 | // The number of subscription periods the buyer has to pay. | |
@@ -1391,6 +1423,20 @@ message Shipping { | |||
| 1391 | 1423 | // [maxTransitTime][google.shopping.merchant.products.v1.Shipping.max_transit_time] | |
| 1392 | 1424 | // is present. | |
| 1393 | 1425 | optional int64 max_transit_time = 11; | |
| 1426 | + | ||
| 1427 | + // The handling cutoff time until which an order has to be placed to be | ||
| 1428 | + // processed in the same day. This is a string in format of HHMM (e.g. | ||
| 1429 | + // `1530`) for 3:30 PM. If not configured, the cutoff time will be defaulted | ||
| 1430 | + // to 8AM PST and `handling_cutoff_timezone` will be ignored. | ||
| 1431 | + optional string handling_cutoff_time = 12; | ||
| 1432 | + | ||
| 1433 | + // [Timezone | ||
| 1434 | + // identifier](https://developers.google.com/adwords/api/docs/appendix/codes-formats#timezone-ids) | ||
| 1435 | + // For example `Europe/Zurich`. This field only applies if | ||
| 1436 | + // `handling_cutoff_time` is set. If `handling_cutoff_time` is set but this | ||
| 1437 | + // field is not set, the shipping destination timezone will be used. If both | ||
| 1438 | + // fields are not set, the handling cutoff time will default to 8AM PST. | ||
| 1439 | + optional string handling_cutoff_timezone = 13; | ||
| 1394 | 1440 | } | |
| 1395 | 1441 | ||
| 1396 | 1442 | // Conditions to be met for a product to have free shipping. | |
@@ -1491,6 +1537,10 @@ message ProductWeight { | |||
| 1491 | 1537 | // a product computed asynchronously. | |
| 1492 | 1538 | message ProductStatus { | |
| 1493 | 1539 | // The destination status of the product status. | |
| 1540 | + // | ||
| 1541 | + // Equivalent to | ||
| 1542 | + // [`StatusPerReportingContext`][google.shopping.merchant.reports.v1.ProductView.StatusPerReportingContext] | ||
| 1543 | + // in Reports API. | ||
| 1494 | 1544 | message DestinationStatus { | |
| 1495 | 1545 | // The name of the reporting context. | |
| 1496 | 1546 | google.shopping.type.ReportingContext.ReportingContextEnum | |
@@ -1668,3 +1718,29 @@ message AutomatedDiscounts { | |||
| 1668 | 1718 | // the product is not available. | |
| 1669 | 1719 | google.shopping.type.Price gad_price = 3; | |
| 1670 | 1720 | } | |
| 1721 | + | ||
| 1722 | + // Configuration for offer or offer-country level shipping handling cutoff time. | ||
| 1723 | + message HandlingCutoffTime { | ||
| 1724 | + // The [CLDR territory | ||
| 1725 | + // code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) | ||
| 1726 | + // of the country to which the handling cutoff time applies. | ||
| 1727 | + optional string country = 1; | ||
| 1728 | + | ||
| 1729 | + // The handling cutoff time until which an order has to be placed to be | ||
| 1730 | + // processed in the same day. This is a string in format of HHMM (e.g. `1530`) | ||
| 1731 | + // for 3:30 PM. | ||
| 1732 | + // If not configured, the cutoff time will be defaulted to 8AM PST. | ||
| 1733 | + optional string cutoff_time = 2; | ||
| 1734 | + | ||
| 1735 | + // [Timezone | ||
| 1736 | + // identifier](https://developers.google.com/adwords/api/docs/appendix/codes-formats#timezone-ids) | ||
| 1737 | + // For example 'Europe/Zurich'. If not set, the shipping destination | ||
| 1738 | + // timezone will be used. | ||
| 1739 | + optional string cutoff_timezone = 3; | ||
| 1740 | + | ||
| 1741 | + // This field only applies to same-day delivery. If true, prevents next-day | ||
| 1742 | + // delivery from being shown for this offer after the cutoff time. This field | ||
| 1743 | + // only applies to same-day delivery offers, for merchants who want to | ||
| 1744 | + // explicitly disable it. | ||
| 1745 | + optional bool disable_delivery_after_cutoff = 4; | ||
| 1746 | + } | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments