google-apis-merchantapi_products_v1beta 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.yardopts +13 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.md +202 -0
- data/OVERVIEW.md +96 -0
- data/lib/google/apis/merchantapi_products_v1beta/classes.rb +1907 -0
- data/lib/google/apis/merchantapi_products_v1beta/gem_version.rb +28 -0
- data/lib/google/apis/merchantapi_products_v1beta/representations.rb +656 -0
- data/lib/google/apis/merchantapi_products_v1beta/service.rb +221 -0
- data/lib/google/apis/merchantapi_products_v1beta.rb +36 -0
- data/lib/google-apis-merchantapi_products_v1beta.rb +15 -0
- metadata +82 -0
@@ -0,0 +1,1907 @@
|
|
1
|
+
# Copyright 2020 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'date'
|
16
|
+
require 'google/apis/core/base_service'
|
17
|
+
require 'google/apis/core/json_representation'
|
18
|
+
require 'google/apis/core/hashable'
|
19
|
+
require 'google/apis/errors'
|
20
|
+
|
21
|
+
module Google
|
22
|
+
module Apis
|
23
|
+
module MerchantapiProductsV1beta
|
24
|
+
|
25
|
+
# Attributes.
|
26
|
+
class Attributes
|
27
|
+
include Google::Apis::Core::Hashable
|
28
|
+
|
29
|
+
# Additional URLs of images of the item.
|
30
|
+
# Corresponds to the JSON property `additionalImageLinks`
|
31
|
+
# @return [Array<String>]
|
32
|
+
attr_accessor :additional_image_links
|
33
|
+
|
34
|
+
# Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
|
35
|
+
# Corresponds to the JSON property `adsGrouping`
|
36
|
+
# @return [String]
|
37
|
+
attr_accessor :ads_grouping
|
38
|
+
|
39
|
+
# Similar to ads_grouping, but only works on CPC.
|
40
|
+
# Corresponds to the JSON property `adsLabels`
|
41
|
+
# @return [Array<String>]
|
42
|
+
attr_accessor :ads_labels
|
43
|
+
|
44
|
+
# Allows advertisers to override the item URL when the product is shown within
|
45
|
+
# the context of Product ads.
|
46
|
+
# Corresponds to the JSON property `adsRedirect`
|
47
|
+
# @return [String]
|
48
|
+
attr_accessor :ads_redirect
|
49
|
+
|
50
|
+
# Set to true if the item is targeted towards adults.
|
51
|
+
# Corresponds to the JSON property `adult`
|
52
|
+
# @return [Boolean]
|
53
|
+
attr_accessor :adult
|
54
|
+
alias_method :adult?, :adult
|
55
|
+
|
56
|
+
# Target [age group](https://support.google.com/merchants/answer/6324463) of the
|
57
|
+
# item.
|
58
|
+
# Corresponds to the JSON property `ageGroup`
|
59
|
+
# @return [String]
|
60
|
+
attr_accessor :age_group
|
61
|
+
|
62
|
+
# The price represented as a number and currency.
|
63
|
+
# Corresponds to the JSON property `autoPricingMinPrice`
|
64
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
65
|
+
attr_accessor :auto_pricing_min_price
|
66
|
+
|
67
|
+
# Availability status of the item.
|
68
|
+
# Corresponds to the JSON property `availability`
|
69
|
+
# @return [String]
|
70
|
+
attr_accessor :availability
|
71
|
+
|
72
|
+
# The day a pre-ordered product becomes available for delivery, in [ISO 8601](
|
73
|
+
# http://en.wikipedia.org/wiki/ISO_8601) format.
|
74
|
+
# Corresponds to the JSON property `availabilityDate`
|
75
|
+
# @return [String]
|
76
|
+
attr_accessor :availability_date
|
77
|
+
|
78
|
+
# Brand of the item.
|
79
|
+
# Corresponds to the JSON property `brand`
|
80
|
+
# @return [String]
|
81
|
+
attr_accessor :brand
|
82
|
+
|
83
|
+
# URL for the canonical version of your item's landing page.
|
84
|
+
# Corresponds to the JSON property `canonicalLink`
|
85
|
+
# @return [String]
|
86
|
+
attr_accessor :canonical_link
|
87
|
+
|
88
|
+
# Product Certifications, for example for energy efficiency labeling of products
|
89
|
+
# recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home) database.
|
90
|
+
# See the [Help Center](https://support.google.com/merchants/answer/13528839)
|
91
|
+
# article for more information.
|
92
|
+
# Corresponds to the JSON property `certifications`
|
93
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::Certification>]
|
94
|
+
attr_accessor :certifications
|
95
|
+
|
96
|
+
# Extra fields to export to the Cloud Retail program.
|
97
|
+
# Corresponds to the JSON property `cloudExportAdditionalProperties`
|
98
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::CloudExportAdditionalProperties>]
|
99
|
+
attr_accessor :cloud_export_additional_properties
|
100
|
+
|
101
|
+
# Color of the item.
|
102
|
+
# Corresponds to the JSON property `color`
|
103
|
+
# @return [String]
|
104
|
+
attr_accessor :color
|
105
|
+
|
106
|
+
# Condition or state of the item.
|
107
|
+
# Corresponds to the JSON property `condition`
|
108
|
+
# @return [String]
|
109
|
+
attr_accessor :condition
|
110
|
+
|
111
|
+
# The price represented as a number and currency.
|
112
|
+
# Corresponds to the JSON property `costOfGoodsSold`
|
113
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
114
|
+
attr_accessor :cost_of_goods_sold
|
115
|
+
|
116
|
+
# Custom label 0 for custom grouping of items in a Shopping campaign.
|
117
|
+
# Corresponds to the JSON property `customLabel0`
|
118
|
+
# @return [String]
|
119
|
+
attr_accessor :custom_label0
|
120
|
+
|
121
|
+
# Custom label 1 for custom grouping of items in a Shopping campaign.
|
122
|
+
# Corresponds to the JSON property `customLabel1`
|
123
|
+
# @return [String]
|
124
|
+
attr_accessor :custom_label1
|
125
|
+
|
126
|
+
# Custom label 2 for custom grouping of items in a Shopping campaign.
|
127
|
+
# Corresponds to the JSON property `customLabel2`
|
128
|
+
# @return [String]
|
129
|
+
attr_accessor :custom_label2
|
130
|
+
|
131
|
+
# Custom label 3 for custom grouping of items in a Shopping campaign.
|
132
|
+
# Corresponds to the JSON property `customLabel3`
|
133
|
+
# @return [String]
|
134
|
+
attr_accessor :custom_label3
|
135
|
+
|
136
|
+
# Custom label 4 for custom grouping of items in a Shopping campaign.
|
137
|
+
# Corresponds to the JSON property `customLabel4`
|
138
|
+
# @return [String]
|
139
|
+
attr_accessor :custom_label4
|
140
|
+
|
141
|
+
# Description of the item.
|
142
|
+
# Corresponds to the JSON property `description`
|
143
|
+
# @return [String]
|
144
|
+
attr_accessor :description
|
145
|
+
|
146
|
+
# The date time when an offer becomes visible in search results across Google’s
|
147
|
+
# YouTube surfaces, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
|
148
|
+
# See [Disclosure date]( https://support.google.com/merchants/answer/13034208)
|
149
|
+
# for more information.
|
150
|
+
# Corresponds to the JSON property `disclosureDate`
|
151
|
+
# @return [String]
|
152
|
+
attr_accessor :disclosure_date
|
153
|
+
|
154
|
+
# An identifier for an item for dynamic remarketing campaigns.
|
155
|
+
# Corresponds to the JSON property `displayAdsId`
|
156
|
+
# @return [String]
|
157
|
+
attr_accessor :display_ads_id
|
158
|
+
|
159
|
+
# URL directly to your item's landing page for dynamic remarketing campaigns.
|
160
|
+
# Corresponds to the JSON property `displayAdsLink`
|
161
|
+
# @return [String]
|
162
|
+
attr_accessor :display_ads_link
|
163
|
+
|
164
|
+
# Advertiser-specified recommendations.
|
165
|
+
# Corresponds to the JSON property `displayAdsSimilarIds`
|
166
|
+
# @return [Array<String>]
|
167
|
+
attr_accessor :display_ads_similar_ids
|
168
|
+
|
169
|
+
# Title of an item for dynamic remarketing campaigns.
|
170
|
+
# Corresponds to the JSON property `displayAdsTitle`
|
171
|
+
# @return [String]
|
172
|
+
attr_accessor :display_ads_title
|
173
|
+
|
174
|
+
# Offer margin for dynamic remarketing campaigns.
|
175
|
+
# Corresponds to the JSON property `displayAdsValue`
|
176
|
+
# @return [Float]
|
177
|
+
attr_accessor :display_ads_value
|
178
|
+
|
179
|
+
# The energy efficiency class as defined in EU directive 2010/30/EU.
|
180
|
+
# Corresponds to the JSON property `energyEfficiencyClass`
|
181
|
+
# @return [String]
|
182
|
+
attr_accessor :energy_efficiency_class
|
183
|
+
|
184
|
+
# The list of destinations to exclude for this target (corresponds to unchecked
|
185
|
+
# check boxes in Merchant Center).
|
186
|
+
# Corresponds to the JSON property `excludedDestinations`
|
187
|
+
# @return [Array<String>]
|
188
|
+
attr_accessor :excluded_destinations
|
189
|
+
|
190
|
+
# Date on which the item should expire, as specified upon insertion, in [ISO
|
191
|
+
# 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual expiration
|
192
|
+
# date is exposed in `productstatuses` as [googleExpirationDate](https://support.
|
193
|
+
# google.com/merchants/answer/6324499) and might be earlier if `expirationDate`
|
194
|
+
# is too far in the future.
|
195
|
+
# Corresponds to the JSON property `expirationDate`
|
196
|
+
# @return [String]
|
197
|
+
attr_accessor :expiration_date
|
198
|
+
|
199
|
+
# Required for multi-seller accounts. Use this attribute if you're a marketplace
|
200
|
+
# uploading products for various sellers to your multi-seller account.
|
201
|
+
# Corresponds to the JSON property `externalSellerId`
|
202
|
+
# @return [String]
|
203
|
+
attr_accessor :external_seller_id
|
204
|
+
|
205
|
+
# Conditions to be met for a product to have free shipping.
|
206
|
+
# Corresponds to the JSON property `freeShippingThreshold`
|
207
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::FreeShippingThreshold>]
|
208
|
+
attr_accessor :free_shipping_threshold
|
209
|
+
|
210
|
+
# Target gender of the item.
|
211
|
+
# Corresponds to the JSON property `gender`
|
212
|
+
# @return [String]
|
213
|
+
attr_accessor :gender
|
214
|
+
|
215
|
+
# Google's category of the item (see [Google product taxonomy](https://support.
|
216
|
+
# google.com/merchants/answer/1705911)). When querying products, this field will
|
217
|
+
# contain the user provided value. There is currently no way to get back the
|
218
|
+
# auto assigned google product categories through the API.
|
219
|
+
# Corresponds to the JSON property `googleProductCategory`
|
220
|
+
# @return [String]
|
221
|
+
attr_accessor :google_product_category
|
222
|
+
|
223
|
+
# Global Trade Item Number ([GTIN](https://support.google.com/merchants/answer/
|
224
|
+
# 188494#gtin)) of the item.
|
225
|
+
# Corresponds to the JSON property `gtin`
|
226
|
+
# @return [String]
|
227
|
+
attr_accessor :gtin
|
228
|
+
|
229
|
+
# Set this value to false when the item does not have unique product identifiers
|
230
|
+
# appropriate to its category, such as GTIN, MPN, and brand. Defaults to true,
|
231
|
+
# if not provided.
|
232
|
+
# Corresponds to the JSON property `identifierExists`
|
233
|
+
# @return [Boolean]
|
234
|
+
attr_accessor :identifier_exists
|
235
|
+
alias_method :identifier_exists?, :identifier_exists
|
236
|
+
|
237
|
+
# URL of an image of the item.
|
238
|
+
# Corresponds to the JSON property `imageLink`
|
239
|
+
# @return [String]
|
240
|
+
attr_accessor :image_link
|
241
|
+
|
242
|
+
# The list of destinations to include for this target (corresponds to checked
|
243
|
+
# check boxes in Merchant Center). Default destinations are always included
|
244
|
+
# unless provided in `excludedDestinations`.
|
245
|
+
# Corresponds to the JSON property `includedDestinations`
|
246
|
+
# @return [Array<String>]
|
247
|
+
attr_accessor :included_destinations
|
248
|
+
|
249
|
+
# A message that represents installment.
|
250
|
+
# Corresponds to the JSON property `installment`
|
251
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Installment]
|
252
|
+
attr_accessor :installment
|
253
|
+
|
254
|
+
# Whether the item is a merchant-defined bundle. A bundle is a custom grouping
|
255
|
+
# of different products sold by a merchant for a single price.
|
256
|
+
# Corresponds to the JSON property `isBundle`
|
257
|
+
# @return [Boolean]
|
258
|
+
attr_accessor :is_bundle
|
259
|
+
alias_method :is_bundle?, :is_bundle
|
260
|
+
|
261
|
+
# Shared identifier for all variants of the same product.
|
262
|
+
# Corresponds to the JSON property `itemGroupId`
|
263
|
+
# @return [String]
|
264
|
+
attr_accessor :item_group_id
|
265
|
+
|
266
|
+
# Additional URLs of lifestyle images of the item, used to explicitly identify
|
267
|
+
# images that showcase your item in a real-world context. See the [Help Center
|
268
|
+
# article](https://support.google.com/merchants/answer/9103186) for more
|
269
|
+
# information.
|
270
|
+
# Corresponds to the JSON property `lifestyleImageLinks`
|
271
|
+
# @return [Array<String>]
|
272
|
+
attr_accessor :lifestyle_image_links
|
273
|
+
|
274
|
+
# URL directly linking to your item's page on your online store.
|
275
|
+
# Corresponds to the JSON property `link`
|
276
|
+
# @return [String]
|
277
|
+
attr_accessor :link
|
278
|
+
|
279
|
+
# Link template for merchant hosted local storefront.
|
280
|
+
# Corresponds to the JSON property `linkTemplate`
|
281
|
+
# @return [String]
|
282
|
+
attr_accessor :link_template
|
283
|
+
|
284
|
+
# A message that represents loyalty points.
|
285
|
+
# Corresponds to the JSON property `loyaltyPoints`
|
286
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::LoyaltyPoints]
|
287
|
+
attr_accessor :loyalty_points
|
288
|
+
|
289
|
+
# A list of loyalty program information that is used to surface loyalty benefits
|
290
|
+
# (for example, better pricing, points, etc) to the user of this item.
|
291
|
+
# Corresponds to the JSON property `loyaltyPrograms`
|
292
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::LoyaltyProgram>]
|
293
|
+
attr_accessor :loyalty_programs
|
294
|
+
|
295
|
+
# The material of which the item is made.
|
296
|
+
# Corresponds to the JSON property `material`
|
297
|
+
# @return [String]
|
298
|
+
attr_accessor :material
|
299
|
+
|
300
|
+
# The energy efficiency class as defined in EU directive 2010/30/EU.
|
301
|
+
# Corresponds to the JSON property `maxEnergyEfficiencyClass`
|
302
|
+
# @return [String]
|
303
|
+
attr_accessor :max_energy_efficiency_class
|
304
|
+
|
305
|
+
# Maximal product handling time (in business days).
|
306
|
+
# Corresponds to the JSON property `maxHandlingTime`
|
307
|
+
# @return [Fixnum]
|
308
|
+
attr_accessor :max_handling_time
|
309
|
+
|
310
|
+
# The energy efficiency class as defined in EU directive 2010/30/EU.
|
311
|
+
# Corresponds to the JSON property `minEnergyEfficiencyClass`
|
312
|
+
# @return [String]
|
313
|
+
attr_accessor :min_energy_efficiency_class
|
314
|
+
|
315
|
+
# Minimal product handling time (in business days).
|
316
|
+
# Corresponds to the JSON property `minHandlingTime`
|
317
|
+
# @return [Fixnum]
|
318
|
+
attr_accessor :min_handling_time
|
319
|
+
|
320
|
+
# URL for the mobile-optimized version of your item's landing page.
|
321
|
+
# Corresponds to the JSON property `mobileLink`
|
322
|
+
# @return [String]
|
323
|
+
attr_accessor :mobile_link
|
324
|
+
|
325
|
+
# Link template for merchant hosted local storefront optimized for mobile
|
326
|
+
# devices.
|
327
|
+
# Corresponds to the JSON property `mobileLinkTemplate`
|
328
|
+
# @return [String]
|
329
|
+
attr_accessor :mobile_link_template
|
330
|
+
|
331
|
+
# Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/
|
332
|
+
# 188494#mpn)) of the item.
|
333
|
+
# Corresponds to the JSON property `mpn`
|
334
|
+
# @return [String]
|
335
|
+
attr_accessor :mpn
|
336
|
+
|
337
|
+
# The number of identical products in a merchant-defined multipack.
|
338
|
+
# Corresponds to the JSON property `multipack`
|
339
|
+
# @return [Fixnum]
|
340
|
+
attr_accessor :multipack
|
341
|
+
|
342
|
+
# The item's pattern (for example, polka dots).
|
343
|
+
# Corresponds to the JSON property `pattern`
|
344
|
+
# @return [String]
|
345
|
+
attr_accessor :pattern
|
346
|
+
|
347
|
+
# Publication of this item will be temporarily [paused](https://support.google.
|
348
|
+
# com/merchants/answer/11909930).
|
349
|
+
# Corresponds to the JSON property `pause`
|
350
|
+
# @return [String]
|
351
|
+
attr_accessor :pause
|
352
|
+
|
353
|
+
# The pick up option for the item.
|
354
|
+
# Corresponds to the JSON property `pickupMethod`
|
355
|
+
# @return [String]
|
356
|
+
attr_accessor :pickup_method
|
357
|
+
|
358
|
+
# Item store pickup timeline.
|
359
|
+
# Corresponds to the JSON property `pickupSla`
|
360
|
+
# @return [String]
|
361
|
+
attr_accessor :pickup_sla
|
362
|
+
|
363
|
+
# The price represented as a number and currency.
|
364
|
+
# Corresponds to the JSON property `price`
|
365
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
366
|
+
attr_accessor :price
|
367
|
+
|
368
|
+
# Technical specification or additional product details.
|
369
|
+
# Corresponds to the JSON property `productDetails`
|
370
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::ProductDetail>]
|
371
|
+
attr_accessor :product_details
|
372
|
+
|
373
|
+
# The dimension of the product.
|
374
|
+
# Corresponds to the JSON property `productHeight`
|
375
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ProductDimension]
|
376
|
+
attr_accessor :product_height
|
377
|
+
|
378
|
+
# Bullet points describing the most relevant highlights of a product.
|
379
|
+
# Corresponds to the JSON property `productHighlights`
|
380
|
+
# @return [Array<String>]
|
381
|
+
attr_accessor :product_highlights
|
382
|
+
|
383
|
+
# The dimension of the product.
|
384
|
+
# Corresponds to the JSON property `productLength`
|
385
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ProductDimension]
|
386
|
+
attr_accessor :product_length
|
387
|
+
|
388
|
+
# Categories of the item (formatted as in [product data specification](https://
|
389
|
+
# support.google.com/merchants/answer/188494#product_type)).
|
390
|
+
# Corresponds to the JSON property `productTypes`
|
391
|
+
# @return [Array<String>]
|
392
|
+
attr_accessor :product_types
|
393
|
+
|
394
|
+
# The weight of the product.
|
395
|
+
# Corresponds to the JSON property `productWeight`
|
396
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ProductWeight]
|
397
|
+
attr_accessor :product_weight
|
398
|
+
|
399
|
+
# The dimension of the product.
|
400
|
+
# Corresponds to the JSON property `productWidth`
|
401
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ProductDimension]
|
402
|
+
attr_accessor :product_width
|
403
|
+
|
404
|
+
# The unique ID of a promotion.
|
405
|
+
# Corresponds to the JSON property `promotionIds`
|
406
|
+
# @return [Array<String>]
|
407
|
+
attr_accessor :promotion_ids
|
408
|
+
|
409
|
+
# The price represented as a number and currency.
|
410
|
+
# Corresponds to the JSON property `salePrice`
|
411
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
412
|
+
attr_accessor :sale_price
|
413
|
+
|
414
|
+
# Represents a time interval, encoded as a Timestamp start (inclusive) and a
|
415
|
+
# Timestamp end (exclusive). The start must be less than or equal to the end.
|
416
|
+
# When the start equals the end, the interval is empty (matches no time). When
|
417
|
+
# both start and end are unspecified, the interval matches any time.
|
418
|
+
# Corresponds to the JSON property `salePriceEffectiveDate`
|
419
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Interval]
|
420
|
+
attr_accessor :sale_price_effective_date
|
421
|
+
|
422
|
+
# The quantity of the product that is available for selling on Google. Supported
|
423
|
+
# only for online products.
|
424
|
+
# Corresponds to the JSON property `sellOnGoogleQuantity`
|
425
|
+
# @return [Fixnum]
|
426
|
+
attr_accessor :sell_on_google_quantity
|
427
|
+
|
428
|
+
# Shipping rules.
|
429
|
+
# Corresponds to the JSON property `shipping`
|
430
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::Shipping>]
|
431
|
+
attr_accessor :shipping
|
432
|
+
|
433
|
+
# The ShippingDimension of the product.
|
434
|
+
# Corresponds to the JSON property `shippingHeight`
|
435
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ShippingDimension]
|
436
|
+
attr_accessor :shipping_height
|
437
|
+
|
438
|
+
# The shipping label of the product, used to group product in account-level
|
439
|
+
# shipping rules.
|
440
|
+
# Corresponds to the JSON property `shippingLabel`
|
441
|
+
# @return [String]
|
442
|
+
attr_accessor :shipping_label
|
443
|
+
|
444
|
+
# The ShippingDimension of the product.
|
445
|
+
# Corresponds to the JSON property `shippingLength`
|
446
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ShippingDimension]
|
447
|
+
attr_accessor :shipping_length
|
448
|
+
|
449
|
+
# The ShippingWeight of the product.
|
450
|
+
# Corresponds to the JSON property `shippingWeight`
|
451
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ShippingWeight]
|
452
|
+
attr_accessor :shipping_weight
|
453
|
+
|
454
|
+
# The ShippingDimension of the product.
|
455
|
+
# Corresponds to the JSON property `shippingWidth`
|
456
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ShippingDimension]
|
457
|
+
attr_accessor :shipping_width
|
458
|
+
|
459
|
+
# List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping
|
460
|
+
# Ads destination. Countries from this list are removed from countries
|
461
|
+
# configured in data source settings.
|
462
|
+
# Corresponds to the JSON property `shoppingAdsExcludedCountries`
|
463
|
+
# @return [Array<String>]
|
464
|
+
attr_accessor :shopping_ads_excluded_countries
|
465
|
+
|
466
|
+
# Size of the item. Only one value is allowed. For variants with different sizes,
|
467
|
+
# insert a separate product for each size with the same `itemGroupId` value (
|
468
|
+
# see [https://support.google.com/merchants/answer/6324492](size definition)).
|
469
|
+
# Corresponds to the JSON property `size`
|
470
|
+
# @return [String]
|
471
|
+
attr_accessor :size
|
472
|
+
|
473
|
+
# System in which the size is specified. Recommended for apparel items.
|
474
|
+
# Corresponds to the JSON property `sizeSystem`
|
475
|
+
# @return [String]
|
476
|
+
attr_accessor :size_system
|
477
|
+
|
478
|
+
# The cut of the item. It can be used to represent combined size types for
|
479
|
+
# apparel items. Maximum two of size types can be provided (see [https://support.
|
480
|
+
# google.com/merchants/answer/6324497](size type)).
|
481
|
+
# Corresponds to the JSON property `sizeTypes`
|
482
|
+
# @return [Array<String>]
|
483
|
+
attr_accessor :size_types
|
484
|
+
|
485
|
+
# Structured description, for algorithmically (AI)-generated descriptions.
|
486
|
+
# Corresponds to the JSON property `structuredDescription`
|
487
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ProductStructuredDescription]
|
488
|
+
attr_accessor :structured_description
|
489
|
+
|
490
|
+
# Structured title, for algorithmically (AI)-generated titles.
|
491
|
+
# Corresponds to the JSON property `structuredTitle`
|
492
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ProductStructuredTitle]
|
493
|
+
attr_accessor :structured_title
|
494
|
+
|
495
|
+
# The SubscriptionCost of the product.
|
496
|
+
# Corresponds to the JSON property `subscriptionCost`
|
497
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::SubscriptionCost]
|
498
|
+
attr_accessor :subscription_cost
|
499
|
+
|
500
|
+
# The tax category of the product, used to configure detailed tax nexus in
|
501
|
+
# account-level tax settings.
|
502
|
+
# Corresponds to the JSON property `taxCategory`
|
503
|
+
# @return [String]
|
504
|
+
attr_accessor :tax_category
|
505
|
+
|
506
|
+
# Tax information.
|
507
|
+
# Corresponds to the JSON property `taxes`
|
508
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::Tax>]
|
509
|
+
attr_accessor :taxes
|
510
|
+
|
511
|
+
# Title of the item.
|
512
|
+
# Corresponds to the JSON property `title`
|
513
|
+
# @return [String]
|
514
|
+
attr_accessor :title
|
515
|
+
|
516
|
+
# The transit time label of the product, used to group product in account-level
|
517
|
+
# transit time tables.
|
518
|
+
# Corresponds to the JSON property `transitTimeLabel`
|
519
|
+
# @return [String]
|
520
|
+
attr_accessor :transit_time_label
|
521
|
+
|
522
|
+
# The UnitPricingBaseMeasure of the product.
|
523
|
+
# Corresponds to the JSON property `unitPricingBaseMeasure`
|
524
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::UnitPricingBaseMeasure]
|
525
|
+
attr_accessor :unit_pricing_base_measure
|
526
|
+
|
527
|
+
# The UnitPricingMeasure of the product.
|
528
|
+
# Corresponds to the JSON property `unitPricingMeasure`
|
529
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::UnitPricingMeasure]
|
530
|
+
attr_accessor :unit_pricing_measure
|
531
|
+
|
532
|
+
# URL of the 3D image of the item. See the [Help Center article](https://support.
|
533
|
+
# google.com/merchants/answer/13674896) for more information.
|
534
|
+
# Corresponds to the JSON property `virtualModelLink`
|
535
|
+
# @return [String]
|
536
|
+
attr_accessor :virtual_model_link
|
537
|
+
|
538
|
+
def initialize(**args)
|
539
|
+
update!(**args)
|
540
|
+
end
|
541
|
+
|
542
|
+
# Update properties of this object
|
543
|
+
def update!(**args)
|
544
|
+
@additional_image_links = args[:additional_image_links] if args.key?(:additional_image_links)
|
545
|
+
@ads_grouping = args[:ads_grouping] if args.key?(:ads_grouping)
|
546
|
+
@ads_labels = args[:ads_labels] if args.key?(:ads_labels)
|
547
|
+
@ads_redirect = args[:ads_redirect] if args.key?(:ads_redirect)
|
548
|
+
@adult = args[:adult] if args.key?(:adult)
|
549
|
+
@age_group = args[:age_group] if args.key?(:age_group)
|
550
|
+
@auto_pricing_min_price = args[:auto_pricing_min_price] if args.key?(:auto_pricing_min_price)
|
551
|
+
@availability = args[:availability] if args.key?(:availability)
|
552
|
+
@availability_date = args[:availability_date] if args.key?(:availability_date)
|
553
|
+
@brand = args[:brand] if args.key?(:brand)
|
554
|
+
@canonical_link = args[:canonical_link] if args.key?(:canonical_link)
|
555
|
+
@certifications = args[:certifications] if args.key?(:certifications)
|
556
|
+
@cloud_export_additional_properties = args[:cloud_export_additional_properties] if args.key?(:cloud_export_additional_properties)
|
557
|
+
@color = args[:color] if args.key?(:color)
|
558
|
+
@condition = args[:condition] if args.key?(:condition)
|
559
|
+
@cost_of_goods_sold = args[:cost_of_goods_sold] if args.key?(:cost_of_goods_sold)
|
560
|
+
@custom_label0 = args[:custom_label0] if args.key?(:custom_label0)
|
561
|
+
@custom_label1 = args[:custom_label1] if args.key?(:custom_label1)
|
562
|
+
@custom_label2 = args[:custom_label2] if args.key?(:custom_label2)
|
563
|
+
@custom_label3 = args[:custom_label3] if args.key?(:custom_label3)
|
564
|
+
@custom_label4 = args[:custom_label4] if args.key?(:custom_label4)
|
565
|
+
@description = args[:description] if args.key?(:description)
|
566
|
+
@disclosure_date = args[:disclosure_date] if args.key?(:disclosure_date)
|
567
|
+
@display_ads_id = args[:display_ads_id] if args.key?(:display_ads_id)
|
568
|
+
@display_ads_link = args[:display_ads_link] if args.key?(:display_ads_link)
|
569
|
+
@display_ads_similar_ids = args[:display_ads_similar_ids] if args.key?(:display_ads_similar_ids)
|
570
|
+
@display_ads_title = args[:display_ads_title] if args.key?(:display_ads_title)
|
571
|
+
@display_ads_value = args[:display_ads_value] if args.key?(:display_ads_value)
|
572
|
+
@energy_efficiency_class = args[:energy_efficiency_class] if args.key?(:energy_efficiency_class)
|
573
|
+
@excluded_destinations = args[:excluded_destinations] if args.key?(:excluded_destinations)
|
574
|
+
@expiration_date = args[:expiration_date] if args.key?(:expiration_date)
|
575
|
+
@external_seller_id = args[:external_seller_id] if args.key?(:external_seller_id)
|
576
|
+
@free_shipping_threshold = args[:free_shipping_threshold] if args.key?(:free_shipping_threshold)
|
577
|
+
@gender = args[:gender] if args.key?(:gender)
|
578
|
+
@google_product_category = args[:google_product_category] if args.key?(:google_product_category)
|
579
|
+
@gtin = args[:gtin] if args.key?(:gtin)
|
580
|
+
@identifier_exists = args[:identifier_exists] if args.key?(:identifier_exists)
|
581
|
+
@image_link = args[:image_link] if args.key?(:image_link)
|
582
|
+
@included_destinations = args[:included_destinations] if args.key?(:included_destinations)
|
583
|
+
@installment = args[:installment] if args.key?(:installment)
|
584
|
+
@is_bundle = args[:is_bundle] if args.key?(:is_bundle)
|
585
|
+
@item_group_id = args[:item_group_id] if args.key?(:item_group_id)
|
586
|
+
@lifestyle_image_links = args[:lifestyle_image_links] if args.key?(:lifestyle_image_links)
|
587
|
+
@link = args[:link] if args.key?(:link)
|
588
|
+
@link_template = args[:link_template] if args.key?(:link_template)
|
589
|
+
@loyalty_points = args[:loyalty_points] if args.key?(:loyalty_points)
|
590
|
+
@loyalty_programs = args[:loyalty_programs] if args.key?(:loyalty_programs)
|
591
|
+
@material = args[:material] if args.key?(:material)
|
592
|
+
@max_energy_efficiency_class = args[:max_energy_efficiency_class] if args.key?(:max_energy_efficiency_class)
|
593
|
+
@max_handling_time = args[:max_handling_time] if args.key?(:max_handling_time)
|
594
|
+
@min_energy_efficiency_class = args[:min_energy_efficiency_class] if args.key?(:min_energy_efficiency_class)
|
595
|
+
@min_handling_time = args[:min_handling_time] if args.key?(:min_handling_time)
|
596
|
+
@mobile_link = args[:mobile_link] if args.key?(:mobile_link)
|
597
|
+
@mobile_link_template = args[:mobile_link_template] if args.key?(:mobile_link_template)
|
598
|
+
@mpn = args[:mpn] if args.key?(:mpn)
|
599
|
+
@multipack = args[:multipack] if args.key?(:multipack)
|
600
|
+
@pattern = args[:pattern] if args.key?(:pattern)
|
601
|
+
@pause = args[:pause] if args.key?(:pause)
|
602
|
+
@pickup_method = args[:pickup_method] if args.key?(:pickup_method)
|
603
|
+
@pickup_sla = args[:pickup_sla] if args.key?(:pickup_sla)
|
604
|
+
@price = args[:price] if args.key?(:price)
|
605
|
+
@product_details = args[:product_details] if args.key?(:product_details)
|
606
|
+
@product_height = args[:product_height] if args.key?(:product_height)
|
607
|
+
@product_highlights = args[:product_highlights] if args.key?(:product_highlights)
|
608
|
+
@product_length = args[:product_length] if args.key?(:product_length)
|
609
|
+
@product_types = args[:product_types] if args.key?(:product_types)
|
610
|
+
@product_weight = args[:product_weight] if args.key?(:product_weight)
|
611
|
+
@product_width = args[:product_width] if args.key?(:product_width)
|
612
|
+
@promotion_ids = args[:promotion_ids] if args.key?(:promotion_ids)
|
613
|
+
@sale_price = args[:sale_price] if args.key?(:sale_price)
|
614
|
+
@sale_price_effective_date = args[:sale_price_effective_date] if args.key?(:sale_price_effective_date)
|
615
|
+
@sell_on_google_quantity = args[:sell_on_google_quantity] if args.key?(:sell_on_google_quantity)
|
616
|
+
@shipping = args[:shipping] if args.key?(:shipping)
|
617
|
+
@shipping_height = args[:shipping_height] if args.key?(:shipping_height)
|
618
|
+
@shipping_label = args[:shipping_label] if args.key?(:shipping_label)
|
619
|
+
@shipping_length = args[:shipping_length] if args.key?(:shipping_length)
|
620
|
+
@shipping_weight = args[:shipping_weight] if args.key?(:shipping_weight)
|
621
|
+
@shipping_width = args[:shipping_width] if args.key?(:shipping_width)
|
622
|
+
@shopping_ads_excluded_countries = args[:shopping_ads_excluded_countries] if args.key?(:shopping_ads_excluded_countries)
|
623
|
+
@size = args[:size] if args.key?(:size)
|
624
|
+
@size_system = args[:size_system] if args.key?(:size_system)
|
625
|
+
@size_types = args[:size_types] if args.key?(:size_types)
|
626
|
+
@structured_description = args[:structured_description] if args.key?(:structured_description)
|
627
|
+
@structured_title = args[:structured_title] if args.key?(:structured_title)
|
628
|
+
@subscription_cost = args[:subscription_cost] if args.key?(:subscription_cost)
|
629
|
+
@tax_category = args[:tax_category] if args.key?(:tax_category)
|
630
|
+
@taxes = args[:taxes] if args.key?(:taxes)
|
631
|
+
@title = args[:title] if args.key?(:title)
|
632
|
+
@transit_time_label = args[:transit_time_label] if args.key?(:transit_time_label)
|
633
|
+
@unit_pricing_base_measure = args[:unit_pricing_base_measure] if args.key?(:unit_pricing_base_measure)
|
634
|
+
@unit_pricing_measure = args[:unit_pricing_measure] if args.key?(:unit_pricing_measure)
|
635
|
+
@virtual_model_link = args[:virtual_model_link] if args.key?(:virtual_model_link)
|
636
|
+
end
|
637
|
+
end
|
638
|
+
|
639
|
+
# Product [certification](https://support.google.com/merchants/answer/13528839),
|
640
|
+
# initially introduced for EU energy efficiency labeling compliance using the EU
|
641
|
+
# EPREL database.
|
642
|
+
class Certification
|
643
|
+
include Google::Apis::Core::Hashable
|
644
|
+
|
645
|
+
# The certification authority, for example "European_Commission". Maximum length
|
646
|
+
# is 2000 characters.
|
647
|
+
# Corresponds to the JSON property `certificationAuthority`
|
648
|
+
# @return [String]
|
649
|
+
attr_accessor :certification_authority
|
650
|
+
|
651
|
+
# The certification code. Maximum length is 2000 characters.
|
652
|
+
# Corresponds to the JSON property `certificationCode`
|
653
|
+
# @return [String]
|
654
|
+
attr_accessor :certification_code
|
655
|
+
|
656
|
+
# The name of the certification, for example "EPREL". Maximum length is 2000
|
657
|
+
# characters.
|
658
|
+
# Corresponds to the JSON property `certificationName`
|
659
|
+
# @return [String]
|
660
|
+
attr_accessor :certification_name
|
661
|
+
|
662
|
+
# The certification value (also known as class, level or grade), for example "A+"
|
663
|
+
# , "C", "gold". Maximum length is 2000 characters.
|
664
|
+
# Corresponds to the JSON property `certificationValue`
|
665
|
+
# @return [String]
|
666
|
+
attr_accessor :certification_value
|
667
|
+
|
668
|
+
def initialize(**args)
|
669
|
+
update!(**args)
|
670
|
+
end
|
671
|
+
|
672
|
+
# Update properties of this object
|
673
|
+
def update!(**args)
|
674
|
+
@certification_authority = args[:certification_authority] if args.key?(:certification_authority)
|
675
|
+
@certification_code = args[:certification_code] if args.key?(:certification_code)
|
676
|
+
@certification_name = args[:certification_name] if args.key?(:certification_name)
|
677
|
+
@certification_value = args[:certification_value] if args.key?(:certification_value)
|
678
|
+
end
|
679
|
+
end
|
680
|
+
|
681
|
+
# Product property for the Cloud Retail API. For example, properties for a TV
|
682
|
+
# product could be "Screen-Resolution" or "Screen-Size".
|
683
|
+
class CloudExportAdditionalProperties
|
684
|
+
include Google::Apis::Core::Hashable
|
685
|
+
|
686
|
+
# Boolean value of the given property. For example for a TV product, "True" or "
|
687
|
+
# False" if the screen is UHD.
|
688
|
+
# Corresponds to the JSON property `boolValue`
|
689
|
+
# @return [Boolean]
|
690
|
+
attr_accessor :bool_value
|
691
|
+
alias_method :bool_value?, :bool_value
|
692
|
+
|
693
|
+
# Float values of the given property. For example for a TV product 1.2345.
|
694
|
+
# Maximum repeatedness of this value is 400. Values are stored in an arbitrary
|
695
|
+
# but consistent order.
|
696
|
+
# Corresponds to the JSON property `floatValue`
|
697
|
+
# @return [Array<Float>]
|
698
|
+
attr_accessor :float_value
|
699
|
+
|
700
|
+
# Integer values of the given property. For example, 1080 for a TV product's
|
701
|
+
# Screen Resolution. Maximum repeatedness of this value is 400. Values are
|
702
|
+
# stored in an arbitrary but consistent order.
|
703
|
+
# Corresponds to the JSON property `intValue`
|
704
|
+
# @return [Array<Fixnum>]
|
705
|
+
attr_accessor :int_value
|
706
|
+
|
707
|
+
# Maximum float value of the given property. For example for a TV product 100.00.
|
708
|
+
# Corresponds to the JSON property `maxValue`
|
709
|
+
# @return [Float]
|
710
|
+
attr_accessor :max_value
|
711
|
+
|
712
|
+
# Minimum float value of the given property. For example for a TV product 1.00.
|
713
|
+
# Corresponds to the JSON property `minValue`
|
714
|
+
# @return [Float]
|
715
|
+
attr_accessor :min_value
|
716
|
+
|
717
|
+
# Name of the given property. For example, "Screen-Resolution" for a TV product.
|
718
|
+
# Maximum string size is 256 characters.
|
719
|
+
# Corresponds to the JSON property `propertyName`
|
720
|
+
# @return [String]
|
721
|
+
attr_accessor :property_name
|
722
|
+
|
723
|
+
# Text value of the given property. For example, "8K(UHD)" could be a text value
|
724
|
+
# for a TV product. Maximum repeatedness of this value is 400. Values are stored
|
725
|
+
# in an arbitrary but consistent order. Maximum string size is 256 characters.
|
726
|
+
# Corresponds to the JSON property `textValue`
|
727
|
+
# @return [Array<String>]
|
728
|
+
attr_accessor :text_value
|
729
|
+
|
730
|
+
# Unit of the given property. For example, "Pixels" for a TV product. Maximum
|
731
|
+
# string size is 256B.
|
732
|
+
# Corresponds to the JSON property `unitCode`
|
733
|
+
# @return [String]
|
734
|
+
attr_accessor :unit_code
|
735
|
+
|
736
|
+
def initialize(**args)
|
737
|
+
update!(**args)
|
738
|
+
end
|
739
|
+
|
740
|
+
# Update properties of this object
|
741
|
+
def update!(**args)
|
742
|
+
@bool_value = args[:bool_value] if args.key?(:bool_value)
|
743
|
+
@float_value = args[:float_value] if args.key?(:float_value)
|
744
|
+
@int_value = args[:int_value] if args.key?(:int_value)
|
745
|
+
@max_value = args[:max_value] if args.key?(:max_value)
|
746
|
+
@min_value = args[:min_value] if args.key?(:min_value)
|
747
|
+
@property_name = args[:property_name] if args.key?(:property_name)
|
748
|
+
@text_value = args[:text_value] if args.key?(:text_value)
|
749
|
+
@unit_code = args[:unit_code] if args.key?(:unit_code)
|
750
|
+
end
|
751
|
+
end
|
752
|
+
|
753
|
+
# A message that represents custom attributes. Exactly one of `value` or `
|
754
|
+
# group_values` must not be empty.
|
755
|
+
class CustomAttribute
|
756
|
+
include Google::Apis::Core::Hashable
|
757
|
+
|
758
|
+
# Subattributes within this attribute group. If `group_values` is not empty, `
|
759
|
+
# value` must be empty.
|
760
|
+
# Corresponds to the JSON property `groupValues`
|
761
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::CustomAttribute>]
|
762
|
+
attr_accessor :group_values
|
763
|
+
|
764
|
+
# The name of the attribute.
|
765
|
+
# Corresponds to the JSON property `name`
|
766
|
+
# @return [String]
|
767
|
+
attr_accessor :name
|
768
|
+
|
769
|
+
# The value of the attribute. If `value` is not empty, `group_values` must be
|
770
|
+
# empty.
|
771
|
+
# Corresponds to the JSON property `value`
|
772
|
+
# @return [String]
|
773
|
+
attr_accessor :value
|
774
|
+
|
775
|
+
def initialize(**args)
|
776
|
+
update!(**args)
|
777
|
+
end
|
778
|
+
|
779
|
+
# Update properties of this object
|
780
|
+
def update!(**args)
|
781
|
+
@group_values = args[:group_values] if args.key?(:group_values)
|
782
|
+
@name = args[:name] if args.key?(:name)
|
783
|
+
@value = args[:value] if args.key?(:value)
|
784
|
+
end
|
785
|
+
end
|
786
|
+
|
787
|
+
# The destination status of the product status.
|
788
|
+
class DestinationStatus
|
789
|
+
include Google::Apis::Core::Hashable
|
790
|
+
|
791
|
+
# List of country codes (ISO 3166-1 alpha-2) where the offer is approved.
|
792
|
+
# Corresponds to the JSON property `approvedCountries`
|
793
|
+
# @return [Array<String>]
|
794
|
+
attr_accessor :approved_countries
|
795
|
+
|
796
|
+
# List of country codes (ISO 3166-1 alpha-2) where the offer is disapproved.
|
797
|
+
# Corresponds to the JSON property `disapprovedCountries`
|
798
|
+
# @return [Array<String>]
|
799
|
+
attr_accessor :disapproved_countries
|
800
|
+
|
801
|
+
# List of country codes (ISO 3166-1 alpha-2) where the offer is pending approval.
|
802
|
+
# Corresponds to the JSON property `pendingCountries`
|
803
|
+
# @return [Array<String>]
|
804
|
+
attr_accessor :pending_countries
|
805
|
+
|
806
|
+
# The name of the reporting context.
|
807
|
+
# Corresponds to the JSON property `reportingContext`
|
808
|
+
# @return [String]
|
809
|
+
attr_accessor :reporting_context
|
810
|
+
|
811
|
+
def initialize(**args)
|
812
|
+
update!(**args)
|
813
|
+
end
|
814
|
+
|
815
|
+
# Update properties of this object
|
816
|
+
def update!(**args)
|
817
|
+
@approved_countries = args[:approved_countries] if args.key?(:approved_countries)
|
818
|
+
@disapproved_countries = args[:disapproved_countries] if args.key?(:disapproved_countries)
|
819
|
+
@pending_countries = args[:pending_countries] if args.key?(:pending_countries)
|
820
|
+
@reporting_context = args[:reporting_context] if args.key?(:reporting_context)
|
821
|
+
end
|
822
|
+
end
|
823
|
+
|
824
|
+
# A generic empty message that you can re-use to avoid defining duplicated empty
|
825
|
+
# messages in your APIs. A typical example is to use it as the request or the
|
826
|
+
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
827
|
+
# protobuf.Empty) returns (google.protobuf.Empty); `
|
828
|
+
class Empty
|
829
|
+
include Google::Apis::Core::Hashable
|
830
|
+
|
831
|
+
def initialize(**args)
|
832
|
+
update!(**args)
|
833
|
+
end
|
834
|
+
|
835
|
+
# Update properties of this object
|
836
|
+
def update!(**args)
|
837
|
+
end
|
838
|
+
end
|
839
|
+
|
840
|
+
# Conditions to be met for a product to have free shipping.
|
841
|
+
class FreeShippingThreshold
|
842
|
+
include Google::Apis::Core::Hashable
|
843
|
+
|
844
|
+
# The [CLDR territory code](http://www.unicode.org/repos/cldr/tags/latest/common/
|
845
|
+
# main/en.xml) of the country to which an item will ship.
|
846
|
+
# Corresponds to the JSON property `country`
|
847
|
+
# @return [String]
|
848
|
+
attr_accessor :country
|
849
|
+
|
850
|
+
# The price represented as a number and currency.
|
851
|
+
# Corresponds to the JSON property `priceThreshold`
|
852
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
853
|
+
attr_accessor :price_threshold
|
854
|
+
|
855
|
+
def initialize(**args)
|
856
|
+
update!(**args)
|
857
|
+
end
|
858
|
+
|
859
|
+
# Update properties of this object
|
860
|
+
def update!(**args)
|
861
|
+
@country = args[:country] if args.key?(:country)
|
862
|
+
@price_threshold = args[:price_threshold] if args.key?(:price_threshold)
|
863
|
+
end
|
864
|
+
end
|
865
|
+
|
866
|
+
# A message that represents installment.
|
867
|
+
class Installment
|
868
|
+
include Google::Apis::Core::Hashable
|
869
|
+
|
870
|
+
# The price represented as a number and currency.
|
871
|
+
# Corresponds to the JSON property `amount`
|
872
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
873
|
+
attr_accessor :amount
|
874
|
+
|
875
|
+
# Type of installment payments. Supported values are: * "`finance`" * "`lease`"
|
876
|
+
# Corresponds to the JSON property `creditType`
|
877
|
+
# @return [String]
|
878
|
+
attr_accessor :credit_type
|
879
|
+
|
880
|
+
# The price represented as a number and currency.
|
881
|
+
# Corresponds to the JSON property `downpayment`
|
882
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
883
|
+
attr_accessor :downpayment
|
884
|
+
|
885
|
+
# The number of installments the buyer has to pay.
|
886
|
+
# Corresponds to the JSON property `months`
|
887
|
+
# @return [Fixnum]
|
888
|
+
attr_accessor :months
|
889
|
+
|
890
|
+
def initialize(**args)
|
891
|
+
update!(**args)
|
892
|
+
end
|
893
|
+
|
894
|
+
# Update properties of this object
|
895
|
+
def update!(**args)
|
896
|
+
@amount = args[:amount] if args.key?(:amount)
|
897
|
+
@credit_type = args[:credit_type] if args.key?(:credit_type)
|
898
|
+
@downpayment = args[:downpayment] if args.key?(:downpayment)
|
899
|
+
@months = args[:months] if args.key?(:months)
|
900
|
+
end
|
901
|
+
end
|
902
|
+
|
903
|
+
# Represents a time interval, encoded as a Timestamp start (inclusive) and a
|
904
|
+
# Timestamp end (exclusive). The start must be less than or equal to the end.
|
905
|
+
# When the start equals the end, the interval is empty (matches no time). When
|
906
|
+
# both start and end are unspecified, the interval matches any time.
|
907
|
+
class Interval
|
908
|
+
include Google::Apis::Core::Hashable
|
909
|
+
|
910
|
+
# Optional. Exclusive end of the interval. If specified, a Timestamp matching
|
911
|
+
# this interval will have to be before the end.
|
912
|
+
# Corresponds to the JSON property `endTime`
|
913
|
+
# @return [String]
|
914
|
+
attr_accessor :end_time
|
915
|
+
|
916
|
+
# Optional. Inclusive start of the interval. If specified, a Timestamp matching
|
917
|
+
# this interval will have to be the same or after the start.
|
918
|
+
# Corresponds to the JSON property `startTime`
|
919
|
+
# @return [String]
|
920
|
+
attr_accessor :start_time
|
921
|
+
|
922
|
+
def initialize(**args)
|
923
|
+
update!(**args)
|
924
|
+
end
|
925
|
+
|
926
|
+
# Update properties of this object
|
927
|
+
def update!(**args)
|
928
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
929
|
+
@start_time = args[:start_time] if args.key?(:start_time)
|
930
|
+
end
|
931
|
+
end
|
932
|
+
|
933
|
+
# The ItemLevelIssue of the product status.
|
934
|
+
class ItemLevelIssue
|
935
|
+
include Google::Apis::Core::Hashable
|
936
|
+
|
937
|
+
# List of country codes (ISO 3166-1 alpha-2) where issue applies to the offer.
|
938
|
+
# Corresponds to the JSON property `applicableCountries`
|
939
|
+
# @return [Array<String>]
|
940
|
+
attr_accessor :applicable_countries
|
941
|
+
|
942
|
+
# The attribute's name, if the issue is caused by a single attribute.
|
943
|
+
# Corresponds to the JSON property `attribute`
|
944
|
+
# @return [String]
|
945
|
+
attr_accessor :attribute
|
946
|
+
|
947
|
+
# The error code of the issue.
|
948
|
+
# Corresponds to the JSON property `code`
|
949
|
+
# @return [String]
|
950
|
+
attr_accessor :code
|
951
|
+
|
952
|
+
# A short issue description in English.
|
953
|
+
# Corresponds to the JSON property `description`
|
954
|
+
# @return [String]
|
955
|
+
attr_accessor :description
|
956
|
+
|
957
|
+
# A detailed issue description in English.
|
958
|
+
# Corresponds to the JSON property `detail`
|
959
|
+
# @return [String]
|
960
|
+
attr_accessor :detail
|
961
|
+
|
962
|
+
# The URL of a web page to help with resolving this issue.
|
963
|
+
# Corresponds to the JSON property `documentation`
|
964
|
+
# @return [String]
|
965
|
+
attr_accessor :documentation
|
966
|
+
|
967
|
+
# The reporting context the issue applies to.
|
968
|
+
# Corresponds to the JSON property `reportingContext`
|
969
|
+
# @return [String]
|
970
|
+
attr_accessor :reporting_context
|
971
|
+
|
972
|
+
# Whether the issue can be resolved by the merchant.
|
973
|
+
# Corresponds to the JSON property `resolution`
|
974
|
+
# @return [String]
|
975
|
+
attr_accessor :resolution
|
976
|
+
|
977
|
+
# How this issue affects serving of the offer.
|
978
|
+
# Corresponds to the JSON property `severity`
|
979
|
+
# @return [String]
|
980
|
+
attr_accessor :severity
|
981
|
+
|
982
|
+
def initialize(**args)
|
983
|
+
update!(**args)
|
984
|
+
end
|
985
|
+
|
986
|
+
# Update properties of this object
|
987
|
+
def update!(**args)
|
988
|
+
@applicable_countries = args[:applicable_countries] if args.key?(:applicable_countries)
|
989
|
+
@attribute = args[:attribute] if args.key?(:attribute)
|
990
|
+
@code = args[:code] if args.key?(:code)
|
991
|
+
@description = args[:description] if args.key?(:description)
|
992
|
+
@detail = args[:detail] if args.key?(:detail)
|
993
|
+
@documentation = args[:documentation] if args.key?(:documentation)
|
994
|
+
@reporting_context = args[:reporting_context] if args.key?(:reporting_context)
|
995
|
+
@resolution = args[:resolution] if args.key?(:resolution)
|
996
|
+
@severity = args[:severity] if args.key?(:severity)
|
997
|
+
end
|
998
|
+
end
|
999
|
+
|
1000
|
+
# Response message for the ListProducts method.
|
1001
|
+
class ListProductsResponse
|
1002
|
+
include Google::Apis::Core::Hashable
|
1003
|
+
|
1004
|
+
# A token, which can be sent as `page_token` to retrieve the next page. If this
|
1005
|
+
# field is omitted, there are no subsequent pages.
|
1006
|
+
# Corresponds to the JSON property `nextPageToken`
|
1007
|
+
# @return [String]
|
1008
|
+
attr_accessor :next_page_token
|
1009
|
+
|
1010
|
+
# The processed products from the specified account. These are your processed
|
1011
|
+
# products after applying rules and supplemental data sources.
|
1012
|
+
# Corresponds to the JSON property `products`
|
1013
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::Product>]
|
1014
|
+
attr_accessor :products
|
1015
|
+
|
1016
|
+
def initialize(**args)
|
1017
|
+
update!(**args)
|
1018
|
+
end
|
1019
|
+
|
1020
|
+
# Update properties of this object
|
1021
|
+
def update!(**args)
|
1022
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1023
|
+
@products = args[:products] if args.key?(:products)
|
1024
|
+
end
|
1025
|
+
end
|
1026
|
+
|
1027
|
+
# A message that represents loyalty points.
|
1028
|
+
class LoyaltyPoints
|
1029
|
+
include Google::Apis::Core::Hashable
|
1030
|
+
|
1031
|
+
# Name of loyalty points program. It is recommended to limit the name to 12 full-
|
1032
|
+
# width characters or 24 Roman characters.
|
1033
|
+
# Corresponds to the JSON property `name`
|
1034
|
+
# @return [String]
|
1035
|
+
attr_accessor :name
|
1036
|
+
|
1037
|
+
# The retailer's loyalty points in absolute value.
|
1038
|
+
# Corresponds to the JSON property `pointsValue`
|
1039
|
+
# @return [Fixnum]
|
1040
|
+
attr_accessor :points_value
|
1041
|
+
|
1042
|
+
# The ratio of a point when converted to currency. Google assumes currency based
|
1043
|
+
# on Merchant Center settings. If ratio is left out, it defaults to 1.0.
|
1044
|
+
# Corresponds to the JSON property `ratio`
|
1045
|
+
# @return [Float]
|
1046
|
+
attr_accessor :ratio
|
1047
|
+
|
1048
|
+
def initialize(**args)
|
1049
|
+
update!(**args)
|
1050
|
+
end
|
1051
|
+
|
1052
|
+
# Update properties of this object
|
1053
|
+
def update!(**args)
|
1054
|
+
@name = args[:name] if args.key?(:name)
|
1055
|
+
@points_value = args[:points_value] if args.key?(:points_value)
|
1056
|
+
@ratio = args[:ratio] if args.key?(:ratio)
|
1057
|
+
end
|
1058
|
+
end
|
1059
|
+
|
1060
|
+
# A message that represents loyalty program.
|
1061
|
+
class LoyaltyProgram
|
1062
|
+
include Google::Apis::Core::Hashable
|
1063
|
+
|
1064
|
+
# The price represented as a number and currency.
|
1065
|
+
# Corresponds to the JSON property `cashbackForFutureUse`
|
1066
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
1067
|
+
attr_accessor :cashback_for_future_use
|
1068
|
+
|
1069
|
+
# The amount of loyalty points earned on a purchase.
|
1070
|
+
# Corresponds to the JSON property `loyaltyPoints`
|
1071
|
+
# @return [Fixnum]
|
1072
|
+
attr_accessor :loyalty_points
|
1073
|
+
|
1074
|
+
# The price represented as a number and currency.
|
1075
|
+
# Corresponds to the JSON property `price`
|
1076
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
1077
|
+
attr_accessor :price
|
1078
|
+
|
1079
|
+
# The label of the loyalty program. This is an internal label that uniquely
|
1080
|
+
# identifies the relationship between a merchant entity and a loyalty program
|
1081
|
+
# entity. The label must be provided so that the system can associate the assets
|
1082
|
+
# below (for example, price and points) with a merchant. The corresponding
|
1083
|
+
# program must be linked to the merchant account.
|
1084
|
+
# Corresponds to the JSON property `programLabel`
|
1085
|
+
# @return [String]
|
1086
|
+
attr_accessor :program_label
|
1087
|
+
|
1088
|
+
# The label of the tier within the loyalty program. Must match one of the labels
|
1089
|
+
# within the program.
|
1090
|
+
# Corresponds to the JSON property `tierLabel`
|
1091
|
+
# @return [String]
|
1092
|
+
attr_accessor :tier_label
|
1093
|
+
|
1094
|
+
def initialize(**args)
|
1095
|
+
update!(**args)
|
1096
|
+
end
|
1097
|
+
|
1098
|
+
# Update properties of this object
|
1099
|
+
def update!(**args)
|
1100
|
+
@cashback_for_future_use = args[:cashback_for_future_use] if args.key?(:cashback_for_future_use)
|
1101
|
+
@loyalty_points = args[:loyalty_points] if args.key?(:loyalty_points)
|
1102
|
+
@price = args[:price] if args.key?(:price)
|
1103
|
+
@program_label = args[:program_label] if args.key?(:program_label)
|
1104
|
+
@tier_label = args[:tier_label] if args.key?(:tier_label)
|
1105
|
+
end
|
1106
|
+
end
|
1107
|
+
|
1108
|
+
# The price represented as a number and currency.
|
1109
|
+
class Price
|
1110
|
+
include Google::Apis::Core::Hashable
|
1111
|
+
|
1112
|
+
# The price represented as a number in micros (1 million micros is an equivalent
|
1113
|
+
# to one's currency standard unit, for example, 1 USD = 1000000 micros).
|
1114
|
+
# Corresponds to the JSON property `amountMicros`
|
1115
|
+
# @return [Fixnum]
|
1116
|
+
attr_accessor :amount_micros
|
1117
|
+
|
1118
|
+
# The currency of the price using three-letter acronyms according to [ISO 4217](
|
1119
|
+
# http://en.wikipedia.org/wiki/ISO_4217).
|
1120
|
+
# Corresponds to the JSON property `currencyCode`
|
1121
|
+
# @return [String]
|
1122
|
+
attr_accessor :currency_code
|
1123
|
+
|
1124
|
+
def initialize(**args)
|
1125
|
+
update!(**args)
|
1126
|
+
end
|
1127
|
+
|
1128
|
+
# Update properties of this object
|
1129
|
+
def update!(**args)
|
1130
|
+
@amount_micros = args[:amount_micros] if args.key?(:amount_micros)
|
1131
|
+
@currency_code = args[:currency_code] if args.key?(:currency_code)
|
1132
|
+
end
|
1133
|
+
end
|
1134
|
+
|
1135
|
+
# The processed product, built from multiple product inputs after applying rules
|
1136
|
+
# and supplemental data sources. This processed product matches what is shown in
|
1137
|
+
# your Merchant Center account and in Shopping ads and other surfaces across
|
1138
|
+
# Google. Each product is built from exactly one primary data source product
|
1139
|
+
# input, and multiple supplemental data source inputs. After inserting, updating,
|
1140
|
+
# or deleting a product input, it may take several minutes before the updated
|
1141
|
+
# processed product can be retrieved. All fields in the processed product and
|
1142
|
+
# its sub-messages match the name of their corresponding attribute in the [
|
1143
|
+
# Product data specification](https://support.google.com/merchants/answer/
|
1144
|
+
# 7052112) with some exceptions.
|
1145
|
+
class Product
|
1146
|
+
include Google::Apis::Core::Hashable
|
1147
|
+
|
1148
|
+
# Attributes.
|
1149
|
+
# Corresponds to the JSON property `attributes`
|
1150
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Attributes]
|
1151
|
+
attr_accessor :attributes
|
1152
|
+
|
1153
|
+
# Output only. The [channel](https://support.google.com/merchants/answer/7361332)
|
1154
|
+
# of the product.
|
1155
|
+
# Corresponds to the JSON property `channel`
|
1156
|
+
# @return [String]
|
1157
|
+
attr_accessor :channel
|
1158
|
+
|
1159
|
+
# Output only. The two-letter [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1)
|
1160
|
+
# language code for the product.
|
1161
|
+
# Corresponds to the JSON property `contentLanguage`
|
1162
|
+
# @return [String]
|
1163
|
+
attr_accessor :content_language
|
1164
|
+
|
1165
|
+
# Output only. A list of custom (merchant-provided) attributes. It can also be
|
1166
|
+
# used to submit any attribute of the data specification in its generic form (
|
1167
|
+
# for example, `` "name": "size type", "value": "regular" ``). This is useful
|
1168
|
+
# for submitting attributes not explicitly exposed by the API, such as
|
1169
|
+
# additional attributes used for Buy on Google.
|
1170
|
+
# Corresponds to the JSON property `customAttributes`
|
1171
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::CustomAttribute>]
|
1172
|
+
attr_accessor :custom_attributes
|
1173
|
+
|
1174
|
+
# Output only. The primary data source of the product.
|
1175
|
+
# Corresponds to the JSON property `dataSource`
|
1176
|
+
# @return [String]
|
1177
|
+
attr_accessor :data_source
|
1178
|
+
|
1179
|
+
# Output only. The feed label for the product.
|
1180
|
+
# Corresponds to the JSON property `feedLabel`
|
1181
|
+
# @return [String]
|
1182
|
+
attr_accessor :feed_label
|
1183
|
+
|
1184
|
+
# The name of the product. Format: `"`product.name=accounts/`account`/products/`
|
1185
|
+
# product``"`
|
1186
|
+
# Corresponds to the JSON property `name`
|
1187
|
+
# @return [String]
|
1188
|
+
attr_accessor :name
|
1189
|
+
|
1190
|
+
# Output only. Your unique identifier for the product. This is the same for the
|
1191
|
+
# product input and processed product. Leading and trailing whitespaces are
|
1192
|
+
# stripped and multiple whitespaces are replaced by a single whitespace upon
|
1193
|
+
# submission. See the [product data specification](https://support.google.com/
|
1194
|
+
# merchants/answer/188494#id) for details.
|
1195
|
+
# Corresponds to the JSON property `offerId`
|
1196
|
+
# @return [String]
|
1197
|
+
attr_accessor :offer_id
|
1198
|
+
|
1199
|
+
# The status of a product, data validation issues, that is, information about a
|
1200
|
+
# product computed asynchronously.
|
1201
|
+
# Corresponds to the JSON property `productStatus`
|
1202
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::ProductStatus]
|
1203
|
+
attr_accessor :product_status
|
1204
|
+
|
1205
|
+
# Output only. Represents the existing version (freshness) of the product, which
|
1206
|
+
# can be used to preserve the right order when multiple updates are done at the
|
1207
|
+
# same time. If set, the insertion is prevented when version number is lower
|
1208
|
+
# than the current version number of the existing product. Re-insertion (for
|
1209
|
+
# example, product refresh after 30 days) can be performed with the current `
|
1210
|
+
# version_number`. Only supported for insertions into primary data sources. If
|
1211
|
+
# the operation is prevented, the aborted exception will be thrown.
|
1212
|
+
# Corresponds to the JSON property `versionNumber`
|
1213
|
+
# @return [Fixnum]
|
1214
|
+
attr_accessor :version_number
|
1215
|
+
|
1216
|
+
def initialize(**args)
|
1217
|
+
update!(**args)
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
# Update properties of this object
|
1221
|
+
def update!(**args)
|
1222
|
+
@attributes = args[:attributes] if args.key?(:attributes)
|
1223
|
+
@channel = args[:channel] if args.key?(:channel)
|
1224
|
+
@content_language = args[:content_language] if args.key?(:content_language)
|
1225
|
+
@custom_attributes = args[:custom_attributes] if args.key?(:custom_attributes)
|
1226
|
+
@data_source = args[:data_source] if args.key?(:data_source)
|
1227
|
+
@feed_label = args[:feed_label] if args.key?(:feed_label)
|
1228
|
+
@name = args[:name] if args.key?(:name)
|
1229
|
+
@offer_id = args[:offer_id] if args.key?(:offer_id)
|
1230
|
+
@product_status = args[:product_status] if args.key?(:product_status)
|
1231
|
+
@version_number = args[:version_number] if args.key?(:version_number)
|
1232
|
+
end
|
1233
|
+
end
|
1234
|
+
|
1235
|
+
# The change that happened to the product including old value, new value,
|
1236
|
+
# country code as the region code and reporting context.
|
1237
|
+
class ProductChange
|
1238
|
+
include Google::Apis::Core::Hashable
|
1239
|
+
|
1240
|
+
# The new value of the changed resource or attribute.
|
1241
|
+
# Corresponds to the JSON property `newValue`
|
1242
|
+
# @return [String]
|
1243
|
+
attr_accessor :new_value
|
1244
|
+
|
1245
|
+
# The old value of the changed resource or attribute.
|
1246
|
+
# Corresponds to the JSON property `oldValue`
|
1247
|
+
# @return [String]
|
1248
|
+
attr_accessor :old_value
|
1249
|
+
|
1250
|
+
# Countries that have the change (if applicable)
|
1251
|
+
# Corresponds to the JSON property `regionCode`
|
1252
|
+
# @return [String]
|
1253
|
+
attr_accessor :region_code
|
1254
|
+
|
1255
|
+
# Reporting contexts that have the change (if applicable)
|
1256
|
+
# Corresponds to the JSON property `reportingContext`
|
1257
|
+
# @return [String]
|
1258
|
+
attr_accessor :reporting_context
|
1259
|
+
|
1260
|
+
def initialize(**args)
|
1261
|
+
update!(**args)
|
1262
|
+
end
|
1263
|
+
|
1264
|
+
# Update properties of this object
|
1265
|
+
def update!(**args)
|
1266
|
+
@new_value = args[:new_value] if args.key?(:new_value)
|
1267
|
+
@old_value = args[:old_value] if args.key?(:old_value)
|
1268
|
+
@region_code = args[:region_code] if args.key?(:region_code)
|
1269
|
+
@reporting_context = args[:reporting_context] if args.key?(:reporting_context)
|
1270
|
+
end
|
1271
|
+
end
|
1272
|
+
|
1273
|
+
# The product details.
|
1274
|
+
class ProductDetail
|
1275
|
+
include Google::Apis::Core::Hashable
|
1276
|
+
|
1277
|
+
# The name of the product detail.
|
1278
|
+
# Corresponds to the JSON property `attributeName`
|
1279
|
+
# @return [String]
|
1280
|
+
attr_accessor :attribute_name
|
1281
|
+
|
1282
|
+
# The value of the product detail.
|
1283
|
+
# Corresponds to the JSON property `attributeValue`
|
1284
|
+
# @return [String]
|
1285
|
+
attr_accessor :attribute_value
|
1286
|
+
|
1287
|
+
# The section header used to group a set of product details.
|
1288
|
+
# Corresponds to the JSON property `sectionName`
|
1289
|
+
# @return [String]
|
1290
|
+
attr_accessor :section_name
|
1291
|
+
|
1292
|
+
def initialize(**args)
|
1293
|
+
update!(**args)
|
1294
|
+
end
|
1295
|
+
|
1296
|
+
# Update properties of this object
|
1297
|
+
def update!(**args)
|
1298
|
+
@attribute_name = args[:attribute_name] if args.key?(:attribute_name)
|
1299
|
+
@attribute_value = args[:attribute_value] if args.key?(:attribute_value)
|
1300
|
+
@section_name = args[:section_name] if args.key?(:section_name)
|
1301
|
+
end
|
1302
|
+
end
|
1303
|
+
|
1304
|
+
# The dimension of the product.
|
1305
|
+
class ProductDimension
|
1306
|
+
include Google::Apis::Core::Hashable
|
1307
|
+
|
1308
|
+
# Required. The dimension units. Acceptable values are: * "`in`" * "`cm`"
|
1309
|
+
# Corresponds to the JSON property `unit`
|
1310
|
+
# @return [String]
|
1311
|
+
attr_accessor :unit
|
1312
|
+
|
1313
|
+
# Required. The dimension value represented as a number. The value can have a
|
1314
|
+
# maximum precision of four decimal places.
|
1315
|
+
# Corresponds to the JSON property `value`
|
1316
|
+
# @return [Float]
|
1317
|
+
attr_accessor :value
|
1318
|
+
|
1319
|
+
def initialize(**args)
|
1320
|
+
update!(**args)
|
1321
|
+
end
|
1322
|
+
|
1323
|
+
# Update properties of this object
|
1324
|
+
def update!(**args)
|
1325
|
+
@unit = args[:unit] if args.key?(:unit)
|
1326
|
+
@value = args[:value] if args.key?(:value)
|
1327
|
+
end
|
1328
|
+
end
|
1329
|
+
|
1330
|
+
# This resource represents input data you submit for a product, not the
|
1331
|
+
# processed product that you see in Merchant Center, in Shopping ads, or across
|
1332
|
+
# Google surfaces. Product inputs, rules and supplemental data source data are
|
1333
|
+
# combined to create the processed product. Required product input attributes to
|
1334
|
+
# pass data validation checks are primarily defined in the [Products Data
|
1335
|
+
# Specification](https://support.google.com/merchants/answer/188494). The
|
1336
|
+
# following attributes are required: feedLabel, contentLanguage and offerId.
|
1337
|
+
# After inserting, updating, or deleting a product input, it may take several
|
1338
|
+
# minutes before the processed product can be retrieved. All fields in the
|
1339
|
+
# product input and its sub-messages match the English name of their
|
1340
|
+
# corresponding attribute in the vertical spec with [some exceptions](https://
|
1341
|
+
# support.google.com/merchants/answer/7052112).
|
1342
|
+
class ProductInput
|
1343
|
+
include Google::Apis::Core::Hashable
|
1344
|
+
|
1345
|
+
# Attributes.
|
1346
|
+
# Corresponds to the JSON property `attributes`
|
1347
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Attributes]
|
1348
|
+
attr_accessor :attributes
|
1349
|
+
|
1350
|
+
# Required. Immutable. The [channel](https://support.google.com/merchants/answer/
|
1351
|
+
# 7361332) of the product.
|
1352
|
+
# Corresponds to the JSON property `channel`
|
1353
|
+
# @return [String]
|
1354
|
+
attr_accessor :channel
|
1355
|
+
|
1356
|
+
# Required. Immutable. The two-letter [ISO 639-1](http://en.wikipedia.org/wiki/
|
1357
|
+
# ISO_639-1) language code for the product.
|
1358
|
+
# Corresponds to the JSON property `contentLanguage`
|
1359
|
+
# @return [String]
|
1360
|
+
attr_accessor :content_language
|
1361
|
+
|
1362
|
+
# Optional. A list of custom (merchant-provided) attributes. It can also be used
|
1363
|
+
# for submitting any attribute of the data specification in its generic form (
|
1364
|
+
# for example, `` "name": "size type", "value": "regular" ``). This is useful
|
1365
|
+
# for submitting attributes not explicitly exposed by the API, such as
|
1366
|
+
# additional attributes used for Buy on Google. Maximum allowed number of
|
1367
|
+
# characters for each custom attribute is 10240 (represents sum of characters
|
1368
|
+
# for name and value). Maximum 2500 custom attributes can be set per product,
|
1369
|
+
# with total size of 102.4kB. Underscores in custom attribute names are replaced
|
1370
|
+
# by spaces upon insertion.
|
1371
|
+
# Corresponds to the JSON property `customAttributes`
|
1372
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::CustomAttribute>]
|
1373
|
+
attr_accessor :custom_attributes
|
1374
|
+
|
1375
|
+
# Required. Immutable. The [feed label](https://developers.google.com/shopping-
|
1376
|
+
# content/guides/products/feed-labels) for the product.
|
1377
|
+
# Corresponds to the JSON property `feedLabel`
|
1378
|
+
# @return [String]
|
1379
|
+
attr_accessor :feed_label
|
1380
|
+
|
1381
|
+
# Identifier. The name of the product input. Format: `"`productinput.name=
|
1382
|
+
# accounts/`account`/productInputs/`productinput``"`
|
1383
|
+
# Corresponds to the JSON property `name`
|
1384
|
+
# @return [String]
|
1385
|
+
attr_accessor :name
|
1386
|
+
|
1387
|
+
# Required. Immutable. Your unique identifier for the product. This is the same
|
1388
|
+
# for the product input and processed product. Leading and trailing whitespaces
|
1389
|
+
# are stripped and multiple whitespaces are replaced by a single whitespace upon
|
1390
|
+
# submission. See the [products data specification](https://support.google.com/
|
1391
|
+
# merchants/answer/188494#id) for details.
|
1392
|
+
# Corresponds to the JSON property `offerId`
|
1393
|
+
# @return [String]
|
1394
|
+
attr_accessor :offer_id
|
1395
|
+
|
1396
|
+
# Output only. The name of the processed product. Format: `"`product.name=
|
1397
|
+
# accounts/`account`/products/`product``"`
|
1398
|
+
# Corresponds to the JSON property `product`
|
1399
|
+
# @return [String]
|
1400
|
+
attr_accessor :product
|
1401
|
+
|
1402
|
+
# Optional. Represents the existing version (freshness) of the product, which
|
1403
|
+
# can be used to preserve the right order when multiple updates are done at the
|
1404
|
+
# same time. If set, the insertion is prevented when version number is lower
|
1405
|
+
# than the current version number of the existing product. Re-insertion (for
|
1406
|
+
# example, product refresh after 30 days) can be performed with the current `
|
1407
|
+
# version_number`. Only supported for insertions into primary data sources. If
|
1408
|
+
# the operation is prevented, the aborted exception will be thrown.
|
1409
|
+
# Corresponds to the JSON property `versionNumber`
|
1410
|
+
# @return [Fixnum]
|
1411
|
+
attr_accessor :version_number
|
1412
|
+
|
1413
|
+
def initialize(**args)
|
1414
|
+
update!(**args)
|
1415
|
+
end
|
1416
|
+
|
1417
|
+
# Update properties of this object
|
1418
|
+
def update!(**args)
|
1419
|
+
@attributes = args[:attributes] if args.key?(:attributes)
|
1420
|
+
@channel = args[:channel] if args.key?(:channel)
|
1421
|
+
@content_language = args[:content_language] if args.key?(:content_language)
|
1422
|
+
@custom_attributes = args[:custom_attributes] if args.key?(:custom_attributes)
|
1423
|
+
@feed_label = args[:feed_label] if args.key?(:feed_label)
|
1424
|
+
@name = args[:name] if args.key?(:name)
|
1425
|
+
@offer_id = args[:offer_id] if args.key?(:offer_id)
|
1426
|
+
@product = args[:product] if args.key?(:product)
|
1427
|
+
@version_number = args[:version_number] if args.key?(:version_number)
|
1428
|
+
end
|
1429
|
+
end
|
1430
|
+
|
1431
|
+
# The status of a product, data validation issues, that is, information about a
|
1432
|
+
# product computed asynchronously.
|
1433
|
+
class ProductStatus
|
1434
|
+
include Google::Apis::Core::Hashable
|
1435
|
+
|
1436
|
+
# Date on which the item has been created, in [ISO 8601](http://en.wikipedia.org/
|
1437
|
+
# wiki/ISO_8601) format.
|
1438
|
+
# Corresponds to the JSON property `creationDate`
|
1439
|
+
# @return [String]
|
1440
|
+
attr_accessor :creation_date
|
1441
|
+
|
1442
|
+
# The intended destinations for the product.
|
1443
|
+
# Corresponds to the JSON property `destinationStatuses`
|
1444
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::DestinationStatus>]
|
1445
|
+
attr_accessor :destination_statuses
|
1446
|
+
|
1447
|
+
# Date on which the item expires, in [ISO 8601](http://en.wikipedia.org/wiki/
|
1448
|
+
# ISO_8601) format.
|
1449
|
+
# Corresponds to the JSON property `googleExpirationDate`
|
1450
|
+
# @return [String]
|
1451
|
+
attr_accessor :google_expiration_date
|
1452
|
+
|
1453
|
+
# A list of all issues associated with the product.
|
1454
|
+
# Corresponds to the JSON property `itemLevelIssues`
|
1455
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::ItemLevelIssue>]
|
1456
|
+
attr_accessor :item_level_issues
|
1457
|
+
|
1458
|
+
# Date on which the item has been last updated, in [ISO 8601](http://en.
|
1459
|
+
# wikipedia.org/wiki/ISO_8601) format.
|
1460
|
+
# Corresponds to the JSON property `lastUpdateDate`
|
1461
|
+
# @return [String]
|
1462
|
+
attr_accessor :last_update_date
|
1463
|
+
|
1464
|
+
def initialize(**args)
|
1465
|
+
update!(**args)
|
1466
|
+
end
|
1467
|
+
|
1468
|
+
# Update properties of this object
|
1469
|
+
def update!(**args)
|
1470
|
+
@creation_date = args[:creation_date] if args.key?(:creation_date)
|
1471
|
+
@destination_statuses = args[:destination_statuses] if args.key?(:destination_statuses)
|
1472
|
+
@google_expiration_date = args[:google_expiration_date] if args.key?(:google_expiration_date)
|
1473
|
+
@item_level_issues = args[:item_level_issues] if args.key?(:item_level_issues)
|
1474
|
+
@last_update_date = args[:last_update_date] if args.key?(:last_update_date)
|
1475
|
+
end
|
1476
|
+
end
|
1477
|
+
|
1478
|
+
# The message that the merchant will receive to notify about product status
|
1479
|
+
# change event
|
1480
|
+
class ProductStatusChangeMessage
|
1481
|
+
include Google::Apis::Core::Hashable
|
1482
|
+
|
1483
|
+
# The target account that owns the entity that changed. Format : `accounts/`
|
1484
|
+
# merchant_id``
|
1485
|
+
# Corresponds to the JSON property `account`
|
1486
|
+
# @return [String]
|
1487
|
+
attr_accessor :account
|
1488
|
+
|
1489
|
+
# The attribute in the resource that changed, in this case it will be always `
|
1490
|
+
# Status`.
|
1491
|
+
# Corresponds to the JSON property `attribute`
|
1492
|
+
# @return [String]
|
1493
|
+
attr_accessor :attribute
|
1494
|
+
|
1495
|
+
# A message to describe the change that happened to the product
|
1496
|
+
# Corresponds to the JSON property `changes`
|
1497
|
+
# @return [Array<Google::Apis::MerchantapiProductsV1beta::ProductChange>]
|
1498
|
+
attr_accessor :changes
|
1499
|
+
|
1500
|
+
# The account that manages the merchant's account. can be the same as merchant
|
1501
|
+
# id if it is standalone account. Format : `accounts/`service_provider_id``
|
1502
|
+
# Corresponds to the JSON property `managingAccount`
|
1503
|
+
# @return [String]
|
1504
|
+
attr_accessor :managing_account
|
1505
|
+
|
1506
|
+
# The product name. Format: ``product.name=accounts/`account`/products/`product``
|
1507
|
+
# `
|
1508
|
+
# Corresponds to the JSON property `resource`
|
1509
|
+
# @return [String]
|
1510
|
+
attr_accessor :resource
|
1511
|
+
|
1512
|
+
# The product id.
|
1513
|
+
# Corresponds to the JSON property `resourceId`
|
1514
|
+
# @return [String]
|
1515
|
+
attr_accessor :resource_id
|
1516
|
+
|
1517
|
+
# The resource that changed, in this case it will always be `Product`.
|
1518
|
+
# Corresponds to the JSON property `resourceType`
|
1519
|
+
# @return [String]
|
1520
|
+
attr_accessor :resource_type
|
1521
|
+
|
1522
|
+
def initialize(**args)
|
1523
|
+
update!(**args)
|
1524
|
+
end
|
1525
|
+
|
1526
|
+
# Update properties of this object
|
1527
|
+
def update!(**args)
|
1528
|
+
@account = args[:account] if args.key?(:account)
|
1529
|
+
@attribute = args[:attribute] if args.key?(:attribute)
|
1530
|
+
@changes = args[:changes] if args.key?(:changes)
|
1531
|
+
@managing_account = args[:managing_account] if args.key?(:managing_account)
|
1532
|
+
@resource = args[:resource] if args.key?(:resource)
|
1533
|
+
@resource_id = args[:resource_id] if args.key?(:resource_id)
|
1534
|
+
@resource_type = args[:resource_type] if args.key?(:resource_type)
|
1535
|
+
end
|
1536
|
+
end
|
1537
|
+
|
1538
|
+
# Structured description, for algorithmically (AI)-generated descriptions.
|
1539
|
+
class ProductStructuredDescription
|
1540
|
+
include Google::Apis::Core::Hashable
|
1541
|
+
|
1542
|
+
# The description text Maximum length is 5000 characters
|
1543
|
+
# Corresponds to the JSON property `content`
|
1544
|
+
# @return [String]
|
1545
|
+
attr_accessor :content
|
1546
|
+
|
1547
|
+
# The digital source type, for example "trained_algorithmic_media". Following [
|
1548
|
+
# IPTC](https://cv.iptc.org/newscodes/digitalsourcetype). Maximum length is 40
|
1549
|
+
# characters.
|
1550
|
+
# Corresponds to the JSON property `digitalSourceType`
|
1551
|
+
# @return [String]
|
1552
|
+
attr_accessor :digital_source_type
|
1553
|
+
|
1554
|
+
def initialize(**args)
|
1555
|
+
update!(**args)
|
1556
|
+
end
|
1557
|
+
|
1558
|
+
# Update properties of this object
|
1559
|
+
def update!(**args)
|
1560
|
+
@content = args[:content] if args.key?(:content)
|
1561
|
+
@digital_source_type = args[:digital_source_type] if args.key?(:digital_source_type)
|
1562
|
+
end
|
1563
|
+
end
|
1564
|
+
|
1565
|
+
# Structured title, for algorithmically (AI)-generated titles.
|
1566
|
+
class ProductStructuredTitle
|
1567
|
+
include Google::Apis::Core::Hashable
|
1568
|
+
|
1569
|
+
# The title text Maximum length is 150 characters
|
1570
|
+
# Corresponds to the JSON property `content`
|
1571
|
+
# @return [String]
|
1572
|
+
attr_accessor :content
|
1573
|
+
|
1574
|
+
# The digital source type, for example "trained_algorithmic_media". Following [
|
1575
|
+
# IPTC](https://cv.iptc.org/newscodes/digitalsourcetype). Maximum length is 40
|
1576
|
+
# characters.
|
1577
|
+
# Corresponds to the JSON property `digitalSourceType`
|
1578
|
+
# @return [String]
|
1579
|
+
attr_accessor :digital_source_type
|
1580
|
+
|
1581
|
+
def initialize(**args)
|
1582
|
+
update!(**args)
|
1583
|
+
end
|
1584
|
+
|
1585
|
+
# Update properties of this object
|
1586
|
+
def update!(**args)
|
1587
|
+
@content = args[:content] if args.key?(:content)
|
1588
|
+
@digital_source_type = args[:digital_source_type] if args.key?(:digital_source_type)
|
1589
|
+
end
|
1590
|
+
end
|
1591
|
+
|
1592
|
+
# The weight of the product.
|
1593
|
+
class ProductWeight
|
1594
|
+
include Google::Apis::Core::Hashable
|
1595
|
+
|
1596
|
+
# Required. The weight unit. Acceptable values are: * "`g`" * "`kg`" * "`oz`" * "
|
1597
|
+
# `lb`"
|
1598
|
+
# Corresponds to the JSON property `unit`
|
1599
|
+
# @return [String]
|
1600
|
+
attr_accessor :unit
|
1601
|
+
|
1602
|
+
# Required. The weight represented as a number. The weight can have a maximum
|
1603
|
+
# precision of four decimal places.
|
1604
|
+
# Corresponds to the JSON property `value`
|
1605
|
+
# @return [Float]
|
1606
|
+
attr_accessor :value
|
1607
|
+
|
1608
|
+
def initialize(**args)
|
1609
|
+
update!(**args)
|
1610
|
+
end
|
1611
|
+
|
1612
|
+
# Update properties of this object
|
1613
|
+
def update!(**args)
|
1614
|
+
@unit = args[:unit] if args.key?(:unit)
|
1615
|
+
@value = args[:value] if args.key?(:value)
|
1616
|
+
end
|
1617
|
+
end
|
1618
|
+
|
1619
|
+
# The Shipping of the product.
|
1620
|
+
class Shipping
|
1621
|
+
include Google::Apis::Core::Hashable
|
1622
|
+
|
1623
|
+
# The [CLDR territory code](http://www.unicode.org/repos/cldr/tags/latest/common/
|
1624
|
+
# main/en.xml) of the country to which an item will ship.
|
1625
|
+
# Corresponds to the JSON property `country`
|
1626
|
+
# @return [String]
|
1627
|
+
attr_accessor :country
|
1628
|
+
|
1629
|
+
# The location where the shipping is applicable, represented by a location group
|
1630
|
+
# name.
|
1631
|
+
# Corresponds to the JSON property `locationGroupName`
|
1632
|
+
# @return [String]
|
1633
|
+
attr_accessor :location_group_name
|
1634
|
+
|
1635
|
+
# The numeric ID of a location that the shipping rate applies to as defined in
|
1636
|
+
# the [AdWords API](https://developers.google.com/adwords/api/docs/appendix/
|
1637
|
+
# geotargeting).
|
1638
|
+
# Corresponds to the JSON property `locationId`
|
1639
|
+
# @return [Fixnum]
|
1640
|
+
attr_accessor :location_id
|
1641
|
+
|
1642
|
+
# Maximum handling time (inclusive) between when the order is received and
|
1643
|
+
# shipped in business days. 0 means that the order is shipped on the same day as
|
1644
|
+
# it is received if it happens before the cut-off time. Both maxHandlingTime and
|
1645
|
+
# maxTransitTime are required if providing shipping speeds. minHandlingTime is
|
1646
|
+
# optional if maxHandlingTime is present.
|
1647
|
+
# Corresponds to the JSON property `maxHandlingTime`
|
1648
|
+
# @return [Fixnum]
|
1649
|
+
attr_accessor :max_handling_time
|
1650
|
+
|
1651
|
+
# Maximum transit time (inclusive) between when the order has shipped and when
|
1652
|
+
# it is delivered in business days. 0 means that the order is delivered on the
|
1653
|
+
# same day as it ships. Both maxHandlingTime and maxTransitTime are required if
|
1654
|
+
# providing shipping speeds. minTransitTime is optional if maxTransitTime is
|
1655
|
+
# present.
|
1656
|
+
# Corresponds to the JSON property `maxTransitTime`
|
1657
|
+
# @return [Fixnum]
|
1658
|
+
attr_accessor :max_transit_time
|
1659
|
+
|
1660
|
+
# Minimum handling time (inclusive) between when the order is received and
|
1661
|
+
# shipped in business days. 0 means that the order is shipped on the same day as
|
1662
|
+
# it is received if it happens before the cut-off time. minHandlingTime can only
|
1663
|
+
# be present together with maxHandlingTime; but it is not required if
|
1664
|
+
# maxHandlingTime is present.
|
1665
|
+
# Corresponds to the JSON property `minHandlingTime`
|
1666
|
+
# @return [Fixnum]
|
1667
|
+
attr_accessor :min_handling_time
|
1668
|
+
|
1669
|
+
# Minimum transit time (inclusive) between when the order has shipped and when
|
1670
|
+
# it is delivered in business days. 0 means that the order is delivered on the
|
1671
|
+
# same day as it ships. minTransitTime can only be present together with
|
1672
|
+
# maxTransitTime; but it is not required if maxTransitTime is present.
|
1673
|
+
# Corresponds to the JSON property `minTransitTime`
|
1674
|
+
# @return [Fixnum]
|
1675
|
+
attr_accessor :min_transit_time
|
1676
|
+
|
1677
|
+
# The postal code range that the shipping rate applies to, represented by a
|
1678
|
+
# postal code, a postal code prefix followed by a * wildcard, a range between
|
1679
|
+
# two postal codes or two postal code prefixes of equal length.
|
1680
|
+
# Corresponds to the JSON property `postalCode`
|
1681
|
+
# @return [String]
|
1682
|
+
attr_accessor :postal_code
|
1683
|
+
|
1684
|
+
# The price represented as a number and currency.
|
1685
|
+
# Corresponds to the JSON property `price`
|
1686
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
1687
|
+
attr_accessor :price
|
1688
|
+
|
1689
|
+
# The geographic region to which a shipping rate applies. See [region](https://
|
1690
|
+
# support.google.com/merchants/answer/6324484) for more information.
|
1691
|
+
# Corresponds to the JSON property `region`
|
1692
|
+
# @return [String]
|
1693
|
+
attr_accessor :region
|
1694
|
+
|
1695
|
+
# A free-form description of the service class or delivery speed.
|
1696
|
+
# Corresponds to the JSON property `service`
|
1697
|
+
# @return [String]
|
1698
|
+
attr_accessor :service
|
1699
|
+
|
1700
|
+
def initialize(**args)
|
1701
|
+
update!(**args)
|
1702
|
+
end
|
1703
|
+
|
1704
|
+
# Update properties of this object
|
1705
|
+
def update!(**args)
|
1706
|
+
@country = args[:country] if args.key?(:country)
|
1707
|
+
@location_group_name = args[:location_group_name] if args.key?(:location_group_name)
|
1708
|
+
@location_id = args[:location_id] if args.key?(:location_id)
|
1709
|
+
@max_handling_time = args[:max_handling_time] if args.key?(:max_handling_time)
|
1710
|
+
@max_transit_time = args[:max_transit_time] if args.key?(:max_transit_time)
|
1711
|
+
@min_handling_time = args[:min_handling_time] if args.key?(:min_handling_time)
|
1712
|
+
@min_transit_time = args[:min_transit_time] if args.key?(:min_transit_time)
|
1713
|
+
@postal_code = args[:postal_code] if args.key?(:postal_code)
|
1714
|
+
@price = args[:price] if args.key?(:price)
|
1715
|
+
@region = args[:region] if args.key?(:region)
|
1716
|
+
@service = args[:service] if args.key?(:service)
|
1717
|
+
end
|
1718
|
+
end
|
1719
|
+
|
1720
|
+
# The ShippingDimension of the product.
|
1721
|
+
class ShippingDimension
|
1722
|
+
include Google::Apis::Core::Hashable
|
1723
|
+
|
1724
|
+
# The unit of value.
|
1725
|
+
# Corresponds to the JSON property `unit`
|
1726
|
+
# @return [String]
|
1727
|
+
attr_accessor :unit
|
1728
|
+
|
1729
|
+
# The dimension of the product used to calculate the shipping cost of the item.
|
1730
|
+
# Corresponds to the JSON property `value`
|
1731
|
+
# @return [Float]
|
1732
|
+
attr_accessor :value
|
1733
|
+
|
1734
|
+
def initialize(**args)
|
1735
|
+
update!(**args)
|
1736
|
+
end
|
1737
|
+
|
1738
|
+
# Update properties of this object
|
1739
|
+
def update!(**args)
|
1740
|
+
@unit = args[:unit] if args.key?(:unit)
|
1741
|
+
@value = args[:value] if args.key?(:value)
|
1742
|
+
end
|
1743
|
+
end
|
1744
|
+
|
1745
|
+
# The ShippingWeight of the product.
|
1746
|
+
class ShippingWeight
|
1747
|
+
include Google::Apis::Core::Hashable
|
1748
|
+
|
1749
|
+
# The unit of value.
|
1750
|
+
# Corresponds to the JSON property `unit`
|
1751
|
+
# @return [String]
|
1752
|
+
attr_accessor :unit
|
1753
|
+
|
1754
|
+
# The weight of the product used to calculate the shipping cost of the item.
|
1755
|
+
# Corresponds to the JSON property `value`
|
1756
|
+
# @return [Float]
|
1757
|
+
attr_accessor :value
|
1758
|
+
|
1759
|
+
def initialize(**args)
|
1760
|
+
update!(**args)
|
1761
|
+
end
|
1762
|
+
|
1763
|
+
# Update properties of this object
|
1764
|
+
def update!(**args)
|
1765
|
+
@unit = args[:unit] if args.key?(:unit)
|
1766
|
+
@value = args[:value] if args.key?(:value)
|
1767
|
+
end
|
1768
|
+
end
|
1769
|
+
|
1770
|
+
# The SubscriptionCost of the product.
|
1771
|
+
class SubscriptionCost
|
1772
|
+
include Google::Apis::Core::Hashable
|
1773
|
+
|
1774
|
+
# The price represented as a number and currency.
|
1775
|
+
# Corresponds to the JSON property `amount`
|
1776
|
+
# @return [Google::Apis::MerchantapiProductsV1beta::Price]
|
1777
|
+
attr_accessor :amount
|
1778
|
+
|
1779
|
+
# The type of subscription period. Supported values are: * "`month`" * "`year`"
|
1780
|
+
# Corresponds to the JSON property `period`
|
1781
|
+
# @return [String]
|
1782
|
+
attr_accessor :period
|
1783
|
+
|
1784
|
+
# The number of subscription periods the buyer has to pay.
|
1785
|
+
# Corresponds to the JSON property `periodLength`
|
1786
|
+
# @return [Fixnum]
|
1787
|
+
attr_accessor :period_length
|
1788
|
+
|
1789
|
+
def initialize(**args)
|
1790
|
+
update!(**args)
|
1791
|
+
end
|
1792
|
+
|
1793
|
+
# Update properties of this object
|
1794
|
+
def update!(**args)
|
1795
|
+
@amount = args[:amount] if args.key?(:amount)
|
1796
|
+
@period = args[:period] if args.key?(:period)
|
1797
|
+
@period_length = args[:period_length] if args.key?(:period_length)
|
1798
|
+
end
|
1799
|
+
end
|
1800
|
+
|
1801
|
+
# The Tax of the product.
|
1802
|
+
class Tax
|
1803
|
+
include Google::Apis::Core::Hashable
|
1804
|
+
|
1805
|
+
# The country within which the item is taxed, specified as a [CLDR territory
|
1806
|
+
# code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml).
|
1807
|
+
# Corresponds to the JSON property `country`
|
1808
|
+
# @return [String]
|
1809
|
+
attr_accessor :country
|
1810
|
+
|
1811
|
+
# The numeric ID of a location that the tax rate applies to as defined in the [
|
1812
|
+
# AdWords API](https://developers.google.com/adwords/api/docs/appendix/
|
1813
|
+
# geotargeting).
|
1814
|
+
# Corresponds to the JSON property `locationId`
|
1815
|
+
# @return [Fixnum]
|
1816
|
+
attr_accessor :location_id
|
1817
|
+
|
1818
|
+
# The postal code range that the tax rate applies to, represented by a ZIP code,
|
1819
|
+
# a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP
|
1820
|
+
# code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
|
1821
|
+
# Corresponds to the JSON property `postalCode`
|
1822
|
+
# @return [String]
|
1823
|
+
attr_accessor :postal_code
|
1824
|
+
|
1825
|
+
# The percentage of tax rate that applies to the item price.
|
1826
|
+
# Corresponds to the JSON property `rate`
|
1827
|
+
# @return [Float]
|
1828
|
+
attr_accessor :rate
|
1829
|
+
|
1830
|
+
# The geographic region to which the tax rate applies.
|
1831
|
+
# Corresponds to the JSON property `region`
|
1832
|
+
# @return [String]
|
1833
|
+
attr_accessor :region
|
1834
|
+
|
1835
|
+
# Set to true if tax is charged on shipping.
|
1836
|
+
# Corresponds to the JSON property `taxShip`
|
1837
|
+
# @return [Boolean]
|
1838
|
+
attr_accessor :tax_ship
|
1839
|
+
alias_method :tax_ship?, :tax_ship
|
1840
|
+
|
1841
|
+
def initialize(**args)
|
1842
|
+
update!(**args)
|
1843
|
+
end
|
1844
|
+
|
1845
|
+
# Update properties of this object
|
1846
|
+
def update!(**args)
|
1847
|
+
@country = args[:country] if args.key?(:country)
|
1848
|
+
@location_id = args[:location_id] if args.key?(:location_id)
|
1849
|
+
@postal_code = args[:postal_code] if args.key?(:postal_code)
|
1850
|
+
@rate = args[:rate] if args.key?(:rate)
|
1851
|
+
@region = args[:region] if args.key?(:region)
|
1852
|
+
@tax_ship = args[:tax_ship] if args.key?(:tax_ship)
|
1853
|
+
end
|
1854
|
+
end
|
1855
|
+
|
1856
|
+
# The UnitPricingBaseMeasure of the product.
|
1857
|
+
class UnitPricingBaseMeasure
|
1858
|
+
include Google::Apis::Core::Hashable
|
1859
|
+
|
1860
|
+
# The unit of the denominator.
|
1861
|
+
# Corresponds to the JSON property `unit`
|
1862
|
+
# @return [String]
|
1863
|
+
attr_accessor :unit
|
1864
|
+
|
1865
|
+
# The denominator of the unit price.
|
1866
|
+
# Corresponds to the JSON property `value`
|
1867
|
+
# @return [Fixnum]
|
1868
|
+
attr_accessor :value
|
1869
|
+
|
1870
|
+
def initialize(**args)
|
1871
|
+
update!(**args)
|
1872
|
+
end
|
1873
|
+
|
1874
|
+
# Update properties of this object
|
1875
|
+
def update!(**args)
|
1876
|
+
@unit = args[:unit] if args.key?(:unit)
|
1877
|
+
@value = args[:value] if args.key?(:value)
|
1878
|
+
end
|
1879
|
+
end
|
1880
|
+
|
1881
|
+
# The UnitPricingMeasure of the product.
|
1882
|
+
class UnitPricingMeasure
|
1883
|
+
include Google::Apis::Core::Hashable
|
1884
|
+
|
1885
|
+
# The unit of the measure.
|
1886
|
+
# Corresponds to the JSON property `unit`
|
1887
|
+
# @return [String]
|
1888
|
+
attr_accessor :unit
|
1889
|
+
|
1890
|
+
# The measure of an item.
|
1891
|
+
# Corresponds to the JSON property `value`
|
1892
|
+
# @return [Float]
|
1893
|
+
attr_accessor :value
|
1894
|
+
|
1895
|
+
def initialize(**args)
|
1896
|
+
update!(**args)
|
1897
|
+
end
|
1898
|
+
|
1899
|
+
# Update properties of this object
|
1900
|
+
def update!(**args)
|
1901
|
+
@unit = args[:unit] if args.key?(:unit)
|
1902
|
+
@value = args[:value] if args.key?(:value)
|
1903
|
+
end
|
1904
|
+
end
|
1905
|
+
end
|
1906
|
+
end
|
1907
|
+
end
|