feed-common 1.11.1 → 1.12.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,424 +1,407 @@
1
1
  /* eslint-disable quotes */
2
- import {
3
- ProductUploadMapSource,
4
- ProductUploadRuleFilterType,
5
- } from "../types/profile.types.js";
2
+ import { ProductUploadMapSource, ProductUploadRuleFilterType } from '../types/profile.types.js';
6
3
 
7
- export const SOURCE_VENDORS = "source.vendor";
8
- export const SOURCE_TAGS = "source.tag";
9
- export const SOURCE_PRODUCT_TYPE = "source.product_type";
10
- export const SOURCE_COLLECTIONS = "source.collection";
11
- export const SOURCE_LANGUAGE = "source.language";
12
- export const SOURCE_GOOGLE_CATEGORY = "source.google_category";
13
- export const SOURCE_COUNTRY = "source.country";
4
+ export const SOURCE_VENDORS = 'source.vendor';
5
+ export const SOURCE_TAGS = 'source.tag';
6
+ export const SOURCE_PRODUCT_TYPE = 'source.product_type';
7
+ export const SOURCE_COLLECTIONS = 'source.collection';
8
+ export const SOURCE_LANGUAGE = 'source.language';
9
+ export const SOURCE_GOOGLE_CATEGORY = 'source.google_category';
10
+ export const SOURCE_COUNTRY = 'source.country';
14
11
 
15
- export const SOURCE_SHOPIFY_VENDORS = "shopify.vendor";
16
- export const SOURCE_SHOPIFY_BARCODE = "shopify.barcode";
17
- export const SOURCE_SHOPIFY_SKU = "shopify.sku";
12
+ export const SOURCE_SHOPIFY_VENDORS = 'shopify.vendor';
13
+ export const SOURCE_SHOPIFY_BARCODE = 'shopify.barcode';
14
+ export const SOURCE_SHOPIFY_SKU = 'shopify.sku';
18
15
 
19
- export const SOURCE_CUSTOM = "custom_input";
16
+ export const SOURCE_CUSTOM = 'custom_input';
20
17
 
21
18
  export const RuleOperators = {
22
- contains: {
23
- label: "Contains",
24
- value: "contains",
25
- },
26
- notContains: {
27
- label: "Not Contains",
28
- value: "notContains",
29
- },
30
- equals: {
31
- label: "Equals",
32
- value: "equals",
33
- },
34
- notEquals: {
35
- label: "Not Equals",
36
- value: "notEquals",
37
- },
38
- startsWith: {
39
- label: "Starts With",
40
- value: "startsWith",
41
- },
42
- notStartsWith: {
43
- label: "Not Starts With",
44
- value: "notStartsWith",
45
- },
46
- endsWith: {
47
- label: "Ends With",
48
- value: "endsWith",
49
- },
50
- notEndsWith: {
51
- label: "Not Ends With",
52
- value: "notEndsWith",
53
- },
54
- in: {
55
- label: "In",
56
- value: "in",
57
- },
58
- notIn: {
59
- label: "Not In",
60
- value: "notIn",
61
- },
62
- less: {
63
- label: "Less Than",
64
- value: "less",
65
- },
66
- greater: {
67
- label: "Greater Than",
68
- value: "greater",
69
- },
70
- lessOrEqual: {
71
- label: "Less Than or Equal",
72
- value: "lessOrEqual",
73
- },
74
- greaterOrEqual: {
75
- label: "Greater Than or Equal",
76
- value: "greaterOrEqual",
77
- },
19
+ contains: {
20
+ label: 'Contains',
21
+ value: 'contains',
22
+ },
23
+ notContains: {
24
+ label: 'Not Contains',
25
+ value: 'notContains',
26
+ },
27
+ equals: {
28
+ label: 'Equals',
29
+ value: 'equals',
30
+ },
31
+ notEquals: {
32
+ label: 'Not Equals',
33
+ value: 'notEquals',
34
+ },
35
+ startsWith: {
36
+ label: 'Starts With',
37
+ value: 'startsWith',
38
+ },
39
+ notStartsWith: {
40
+ label: 'Not Starts With',
41
+ value: 'notStartsWith',
42
+ },
43
+ endsWith: {
44
+ label: 'Ends With',
45
+ value: 'endsWith',
46
+ },
47
+ notEndsWith: {
48
+ label: 'Not Ends With',
49
+ value: 'notEndsWith',
50
+ },
51
+ in: {
52
+ label: 'In',
53
+ value: 'in',
54
+ },
55
+ notIn: {
56
+ label: 'Not In',
57
+ value: 'notIn',
58
+ },
59
+ less: {
60
+ label: 'Less Than',
61
+ value: 'less',
62
+ },
63
+ greater: {
64
+ label: 'Greater Than',
65
+ value: 'greater',
66
+ },
67
+ lessOrEqual: {
68
+ label: 'Less Than or Equal',
69
+ value: 'lessOrEqual',
70
+ },
71
+ greaterOrEqual: {
72
+ label: 'Greater Than or Equal',
73
+ value: 'greaterOrEqual',
74
+ },
78
75
  };
79
76
 
80
77
  export const ProductUploadRulesOperators = {
81
- string: [
82
- RuleOperators.contains,
83
- RuleOperators.notContains,
84
- RuleOperators.equals,
85
- RuleOperators.notEquals,
86
- RuleOperators.startsWith,
87
- RuleOperators.endsWith,
88
- RuleOperators.notStartsWith,
89
- RuleOperators.notEndsWith,
90
- ],
91
- number: [
92
- RuleOperators.equals,
93
- RuleOperators.less,
94
- RuleOperators.greater,
95
- RuleOperators.lessOrEqual,
96
- RuleOperators.greaterOrEqual,
97
- ],
98
- list: [RuleOperators.in, RuleOperators.notIn],
99
- is: [RuleOperators.equals, RuleOperators.notEquals],
78
+ string: [
79
+ RuleOperators.contains,
80
+ RuleOperators.notContains,
81
+ RuleOperators.equals,
82
+ RuleOperators.notEquals,
83
+ RuleOperators.startsWith,
84
+ RuleOperators.endsWith,
85
+ RuleOperators.notStartsWith,
86
+ RuleOperators.notEndsWith,
87
+ ],
88
+ number: [
89
+ RuleOperators.equals,
90
+ RuleOperators.less,
91
+ RuleOperators.greater,
92
+ RuleOperators.lessOrEqual,
93
+ RuleOperators.greaterOrEqual,
94
+ ],
95
+ list: [RuleOperators.in, RuleOperators.notIn],
96
+ is: [RuleOperators.equals, RuleOperators.notEquals],
100
97
  };
101
98
 
102
99
  export const ProductUploadRuleFilters: ProductUploadRuleFilterType[] = [
103
- {
104
- label: "Title",
105
- operators: ProductUploadRulesOperators.string,
106
- value: "title",
107
- },
108
- {
109
- label: "Collection",
110
- operators: ProductUploadRulesOperators.list,
111
- value: "collection",
112
- },
113
- {
114
- label: "Product Type",
115
- operators: ProductUploadRulesOperators.list,
116
- value: "product_type",
117
- },
118
- {
119
- label: "Vendor",
120
- operators: ProductUploadRulesOperators.list,
121
- value: "vendor",
122
- },
123
- {
124
- label: "Tag",
125
- operators: ProductUploadRulesOperators.list,
126
- value: "tag",
127
- },
128
- {
129
- label: "Inventory Policy",
130
- operators: ProductUploadRulesOperators.is,
131
- value: "inventory_policy",
132
- values: [
133
- { label: "Deny", value: "deny" },
134
- { label: "Continue", value: "continue" },
135
- ],
136
- },
137
- {
138
- label: "Inventory Quantity",
139
- operators: ProductUploadRulesOperators.number,
140
- value: "inventory_quantity",
141
- },
100
+ {
101
+ label: 'Title',
102
+ operators: ProductUploadRulesOperators.string,
103
+ value: 'title',
104
+ },
105
+ {
106
+ label: 'Collection',
107
+ operators: ProductUploadRulesOperators.list,
108
+ value: 'collection',
109
+ },
110
+ {
111
+ label: 'Product Type',
112
+ operators: ProductUploadRulesOperators.list,
113
+ value: 'product_type',
114
+ },
115
+ {
116
+ label: 'Vendor',
117
+ operators: ProductUploadRulesOperators.list,
118
+ value: 'vendor',
119
+ },
120
+ {
121
+ label: 'Tag',
122
+ operators: ProductUploadRulesOperators.list,
123
+ value: 'tag',
124
+ },
125
+ {
126
+ label: 'Inventory Policy',
127
+ operators: ProductUploadRulesOperators.is,
128
+ value: 'inventory_policy',
129
+ values: [
130
+ { label: 'Deny', value: 'deny' },
131
+ { label: 'Continue', value: 'continue' },
132
+ ],
133
+ },
134
+ {
135
+ label: 'Inventory Quantity',
136
+ operators: ProductUploadRulesOperators.number,
137
+ value: 'inventory_quantity',
138
+ },
139
+ {
140
+ label: 'Price',
141
+ operators: ProductUploadRulesOperators.number,
142
+ value: 'price',
143
+ },
142
144
  ];
143
145
 
144
146
  const ShopifyProductSource = {
145
- vendor: { label: "Shopify Product Vendor", value: SOURCE_SHOPIFY_VENDORS },
146
- barcode: { label: "Shopify Product Barcode", value: SOURCE_SHOPIFY_BARCODE },
147
- sku: { label: "Shopify Product SKU", value: SOURCE_SHOPIFY_SKU },
148
- custom: { label: "Custom input", value: SOURCE_CUSTOM },
147
+ vendor: { label: 'Shopify Product Vendor', value: SOURCE_SHOPIFY_VENDORS },
148
+ barcode: { label: 'Shopify Product Barcode', value: SOURCE_SHOPIFY_BARCODE },
149
+ sku: { label: 'Shopify Product SKU', value: SOURCE_SHOPIFY_SKU },
150
+ custom: { label: 'Custom input', value: SOURCE_CUSTOM },
149
151
  };
150
152
 
151
153
  export const ProductUploadMappings: ProductUploadMapSource[] = [
152
- {
153
- required: true,
154
- label: "Content Language",
155
- attribute: "contentLanguage",
156
- type: "select",
157
- choices: [SOURCE_LANGUAGE],
158
- rules: ["title", "collection", "product_type", "vendor", "tag"],
159
- description: "Language for the item",
160
- },
161
- {
162
- required: true,
163
- label: "Target Country",
164
- attribute: "targetCountry",
165
- type: "select",
166
- choices: [SOURCE_COUNTRY],
167
- rules: ["title", "collection", "product_type", "vendor", "tag"],
168
- description: "The item's country of sale",
169
- },
170
- {
171
- required: false,
172
- label: "Adult",
173
- attribute: "adult",
174
- type: "select",
175
- choices: [
176
- { label: "Yes", value: true },
177
- { label: "No", value: false },
178
- ],
179
- rules: ["title", "collection", "product_type", "vendor", "tag"],
180
- description:
181
- 'Should be set to "Yes" if the item is targeted towards adults',
182
- },
183
- {
184
- required: false,
185
- label: "Age Group",
186
- attribute: "ageGroup",
187
- type: "select",
188
- choices: [
189
- { label: "0-3 months old", value: "newborn" },
190
- { label: "3-12 months old", value: "infant" },
191
- { label: "1-5 years old", value: "toddler" },
192
- { label: "5-13 years old", value: "kids" },
193
- { label: "13 years old or more", value: "adult" },
194
- ],
195
- rules: ["title", "collection", "product_type", "vendor", "tag"],
196
- description: "Target age group of the item",
197
- },
198
- {
199
- required: true,
200
- label: "Availability",
201
- attribute: "availability",
202
- type: "select",
203
- choices: [
204
- { label: "In Stock", value: "in_stock" },
205
- { label: "Out Of Stock", value: "out_of_stock" },
206
- { label: "Preorder", value: "preorder" },
207
- { label: "Backorder", value: "backorder" },
208
- ],
209
- rules: [
210
- "title",
211
- "collection",
212
- "product_type",
213
- "vendor",
214
- "tag",
215
- "inventory_policy",
216
- "inventory_quantity",
217
- ],
218
- description: "Availability status of the item",
219
- },
220
- {
221
- required: false,
222
- label: "Brand",
223
- attribute: "brand",
224
- type: "select",
225
- defaultValue: "shopify.vendor",
226
- rules: ["title", "collection", "product_type", "vendor", "tag"],
227
- description: "Brand of the item",
228
- choices: [
229
- ShopifyProductSource.vendor,
230
- SOURCE_VENDORS,
231
- ShopifyProductSource.custom,
232
- ],
233
- },
234
- {
235
- required: false,
236
- label: "Gender",
237
- attribute: "gender",
238
- type: "select",
239
- choices: [
240
- { label: "Male", value: "male" },
241
- { label: "Female", value: "female" },
242
- { label: "Unisex", value: "unisex" },
243
- ],
244
- rules: ["title", "collection", "product_type", "vendor", "tag"],
245
- description: "Target gender of the item",
246
- },
247
- {
248
- required: false,
249
- label: "Google category",
250
- attribute: "googleProductCategory",
251
- type: "select",
252
- choices: [SOURCE_GOOGLE_CATEGORY],
253
- rules: ["title", "collection", "product_type", "vendor", "tag"],
254
- description: "Google's category of the item",
255
- },
256
- {
257
- required: false,
258
- label: "GTIN",
259
- attribute: "gtin",
260
- type: "select",
261
- defaultValue: "shopify.vendor",
262
- rules: ["title", "collection", "product_type", "vendor", "tag"],
263
- description: "Global Trade Item Number (GTIN) of the item",
264
- choices: [
265
- ShopifyProductSource.barcode,
266
- ShopifyProductSource.sku,
267
- { label: "Custom input", value: SOURCE_CUSTOM },
268
- ],
269
- },
270
- {
271
- required: false,
272
- label: "MPN",
273
- attribute: "mpn",
274
- type: "select",
275
- defaultValue: "shopify.vendor",
276
- rules: ["title", "collection", "product_type", "vendor", "tag"],
277
- description: "Manufacturer Part Number (MPN) of the item",
278
- choices: [
279
- ShopifyProductSource.barcode,
280
- ShopifyProductSource.sku,
281
- { label: "Custom input", value: SOURCE_CUSTOM },
282
- ],
283
- },
284
- {
285
- required: false,
286
- label: "Included Destinations",
287
- attribute: "includedDestinations",
288
- type: "multiselect",
289
- choices: [
290
- { label: "Shopping ads", value: "Shopping_ads" },
291
- { label: "Dynamic remarketing ads", value: "Display_ads" },
292
- { label: "Free listings", value: "Free_listings" },
293
- ],
294
- rules: ["title", "collection", "product_type", "vendor", "tag"],
295
- description:
296
- "The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center)",
297
- },
298
- {
299
- required: false,
300
- label: "Shipping label",
301
- attribute: "shippingLabel",
302
- type: "text",
303
- rules: ["title", "collection", "product_type", "vendor", "tag"],
304
- description:
305
- "The shipping label of the product, used to group product in account-level shipping rules",
306
- },
154
+ {
155
+ required: true,
156
+ label: 'Content Language',
157
+ attribute: 'contentLanguage',
158
+ type: 'select',
159
+ choices: [SOURCE_LANGUAGE],
160
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
161
+ description: 'Language for the item',
162
+ },
163
+ {
164
+ required: true,
165
+ label: 'Target Country',
166
+ attribute: 'targetCountry',
167
+ type: 'select',
168
+ choices: [SOURCE_COUNTRY],
169
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
170
+ description: "The item's country of sale",
171
+ },
172
+ {
173
+ required: false,
174
+ label: 'Adult',
175
+ attribute: 'adult',
176
+ type: 'select',
177
+ choices: [
178
+ { label: 'Yes', value: true },
179
+ { label: 'No', value: false },
180
+ ],
181
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
182
+ description: 'Should be set to "Yes" if the item is targeted towards adults',
183
+ },
184
+ {
185
+ required: false,
186
+ label: 'Age Group',
187
+ attribute: 'ageGroup',
188
+ type: 'select',
189
+ choices: [
190
+ { label: '0-3 months old', value: 'newborn' },
191
+ { label: '3-12 months old', value: 'infant' },
192
+ { label: '1-5 years old', value: 'toddler' },
193
+ { label: '5-13 years old', value: 'kids' },
194
+ { label: '13 years old or more', value: 'adult' },
195
+ ],
196
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
197
+ description: 'Target age group of the item',
198
+ },
199
+ {
200
+ required: true,
201
+ label: 'Availability',
202
+ attribute: 'availability',
203
+ type: 'select',
204
+ choices: [
205
+ { label: 'In Stock', value: 'in_stock' },
206
+ { label: 'Out Of Stock', value: 'out_of_stock' },
207
+ { label: 'Preorder', value: 'preorder' },
208
+ { label: 'Backorder', value: 'backorder' },
209
+ ],
210
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag', 'inventory_policy', 'inventory_quantity'],
211
+ description: 'Availability status of the item',
212
+ },
213
+ {
214
+ required: false,
215
+ label: 'Brand',
216
+ attribute: 'brand',
217
+ type: 'select',
218
+ defaultValue: 'shopify.vendor',
219
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
220
+ description: 'Brand of the item',
221
+ choices: [ShopifyProductSource.vendor, SOURCE_VENDORS, ShopifyProductSource.custom],
222
+ },
223
+ {
224
+ required: false,
225
+ label: 'Gender',
226
+ attribute: 'gender',
227
+ type: 'select',
228
+ choices: [
229
+ { label: 'Male', value: 'male' },
230
+ { label: 'Female', value: 'female' },
231
+ { label: 'Unisex', value: 'unisex' },
232
+ ],
233
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
234
+ description: 'Target gender of the item',
235
+ },
236
+ {
237
+ required: false,
238
+ label: 'Google category',
239
+ attribute: 'googleProductCategory',
240
+ type: 'select',
241
+ choices: [SOURCE_GOOGLE_CATEGORY],
242
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
243
+ description: "Google's category of the item",
244
+ },
245
+ {
246
+ required: false,
247
+ label: 'GTIN',
248
+ attribute: 'gtin',
249
+ type: 'select',
250
+ defaultValue: 'shopify.vendor',
251
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
252
+ description: 'Global Trade Item Number (GTIN) of the item',
253
+ choices: [
254
+ ShopifyProductSource.barcode,
255
+ ShopifyProductSource.sku,
256
+ { label: 'Custom input', value: SOURCE_CUSTOM },
257
+ ],
258
+ },
259
+ {
260
+ required: false,
261
+ label: 'MPN',
262
+ attribute: 'mpn',
263
+ type: 'select',
264
+ defaultValue: 'shopify.vendor',
265
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
266
+ description: 'Manufacturer Part Number (MPN) of the item',
267
+ choices: [
268
+ ShopifyProductSource.barcode,
269
+ ShopifyProductSource.sku,
270
+ { label: 'Custom input', value: SOURCE_CUSTOM },
271
+ ],
272
+ },
273
+ {
274
+ required: false,
275
+ label: 'Included Destinations',
276
+ attribute: 'includedDestinations',
277
+ type: 'multiselect',
278
+ choices: [
279
+ { label: 'Shopping ads', value: 'Shopping_ads' },
280
+ { label: 'Dynamic remarketing ads', value: 'Display_ads' },
281
+ { label: 'Free listings', value: 'Free_listings' },
282
+ ],
283
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
284
+ description:
285
+ 'The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center)',
286
+ },
287
+ {
288
+ required: false,
289
+ label: 'Shipping label',
290
+ attribute: 'shippingLabel',
291
+ type: 'text',
292
+ rules: ['title', 'collection', 'product_type', 'vendor', 'tag'],
293
+ description: 'The shipping label of the product, used to group product in account-level shipping rules',
294
+ },
307
295
 
308
- // /**
309
- // * The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
310
- // */
311
- // availabilityDate?: string | null;
312
- // /**
313
- // * Color of the item.
314
- // */
315
- // color?: string | null;
316
- // /**
317
- // * Condition or state of the item.
318
- // */
319
- // condition?: string | null;
320
- // /**
321
- // * Custom label 0 for custom grouping of items in a Shopping campaign.
322
- // */
323
- // customLabel0?: string | null;
324
- // /**
325
- // * Custom label 1 for custom grouping of items in a Shopping campaign.
326
- // */
327
- // customLabel1?: string | null;
328
- // /**
329
- // * Custom label 2 for custom grouping of items in a Shopping campaign.
330
- // */
331
- // customLabel2?: string | null;
332
- // /**
333
- // * Custom label 3 for custom grouping of items in a Shopping campaign.
334
- // */
335
- // customLabel3?: string | null;
336
- // /**
337
- // * Custom label 4 for custom grouping of items in a Shopping campaign.
338
- // */
339
- // customLabel4?: string | null;
340
- // /**
341
- // * The date time when an offer becomes visible in search results across Google’s YouTube surfaces, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format. See [Disclosure date](https://support.google.com/merchants/answer/13034208) for more information.
342
- // */
343
- // disclosureDate?: string | null;
344
- // /**
345
- // * Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
346
- // */
347
- // expirationDate?: string | null;
348
- // /**
349
- // * The material of which the item is made.
350
- // */
351
- // material?: string | null;
352
- // /**
353
- // * Maximal product handling time (in business days).
354
- // */
355
- // maxHandlingTime?: string | null;
356
- // /**
357
- // * Minimal product handling time (in business days).
358
- // */
359
- // minHandlingTime?: string | null;
360
- // /**
361
- // * The pick up option for the item. Acceptable values are: - "`buy`" - "`reserve`" - "`ship to store`" - "`not supported`"
362
- // */
363
- // pickupMethod?: string | null;
364
- // /**
365
- // * Item store pickup timeline. Acceptable values are: - "`same day`" - "`next day`" - "`2-day`" - "`3-day`" - "`4-day`" - "`5-day`" - "`6-day`" - "`7-day`" - "`multi-week`"
366
- // */
367
- // pickupSla?: string | null;
368
- // /**
369
- // * The height of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive).
370
- // */
371
- // productHeight?: Schema$ProductDimension;
372
- // /**
373
- // * The length of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive).
374
- // */
375
- // productLength?: Schema$ProductDimension;
376
- // /**
377
- // * The width of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive).
378
- // */
379
- // productWidth?: Schema$ProductDimension;
380
- // /**
381
- // * Shipping rules.
382
- // */
383
- // shipping?: Schema$ProductShipping[];
384
- // /**
385
- // * Height of the item for shipping.
386
- // */
387
- // shippingHeight?: Schema$ProductShippingDimension;
388
- // /**
389
- // * Length of the item for shipping.
390
- // */
391
- // shippingLength?: Schema$ProductShippingDimension;
392
- // /**
393
- // * Weight of the item for shipping.
394
- // */
395
- // shippingWeight?: Schema$ProductShippingWeight;
396
- // /**
397
- // * Width of the item for shipping.
398
- // */
399
- // shippingWidth?: Schema$ProductShippingDimension;
400
- // /**
401
- // * List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
402
- // */
403
- // shoppingAdsExcludedCountries?: string[] | null;
404
- // /**
405
- // * Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
406
- // */
407
- // sizes?: string[] | null;
408
- // /**
409
- // * System in which the size is specified. Recommended for apparel items.
410
- // */
411
- // sizeSystem?: string | null;
412
- // /**
413
- // * The cut of the item. Recommended for apparel items.
414
- // */
415
- // sizeType?: string | null;
416
- ];
417
- export const CHANNEL = "online";
418
- export const GMC_PRODUCT_ID_TEMPLATE = "{PRODUCT_ID}_{VARIANT_ID}";
419
- export const ProfileIdTemplateCodes = [
420
- "PRODUCT_ID",
421
- "VARIANT_ID",
422
- "COUNTRY",
423
- "LANGUAGE",
296
+ // /**
297
+ // * The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
298
+ // */
299
+ // availabilityDate?: string | null;
300
+ // /**
301
+ // * Color of the item.
302
+ // */
303
+ // color?: string | null;
304
+ // /**
305
+ // * Condition or state of the item.
306
+ // */
307
+ // condition?: string | null;
308
+ // /**
309
+ // * Custom label 0 for custom grouping of items in a Shopping campaign.
310
+ // */
311
+ // customLabel0?: string | null;
312
+ // /**
313
+ // * Custom label 1 for custom grouping of items in a Shopping campaign.
314
+ // */
315
+ // customLabel1?: string | null;
316
+ // /**
317
+ // * Custom label 2 for custom grouping of items in a Shopping campaign.
318
+ // */
319
+ // customLabel2?: string | null;
320
+ // /**
321
+ // * Custom label 3 for custom grouping of items in a Shopping campaign.
322
+ // */
323
+ // customLabel3?: string | null;
324
+ // /**
325
+ // * Custom label 4 for custom grouping of items in a Shopping campaign.
326
+ // */
327
+ // customLabel4?: string | null;
328
+ // /**
329
+ // * The date time when an offer becomes visible in search results across Google’s YouTube surfaces, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format. See [Disclosure date](https://support.google.com/merchants/answer/13034208) for more information.
330
+ // */
331
+ // disclosureDate?: string | null;
332
+ // /**
333
+ // * Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.
334
+ // */
335
+ // expirationDate?: string | null;
336
+ // /**
337
+ // * The material of which the item is made.
338
+ // */
339
+ // material?: string | null;
340
+ // /**
341
+ // * Maximal product handling time (in business days).
342
+ // */
343
+ // maxHandlingTime?: string | null;
344
+ // /**
345
+ // * Minimal product handling time (in business days).
346
+ // */
347
+ // minHandlingTime?: string | null;
348
+ // /**
349
+ // * The pick up option for the item. Acceptable values are: - "`buy`" - "`reserve`" - "`ship to store`" - "`not supported`"
350
+ // */
351
+ // pickupMethod?: string | null;
352
+ // /**
353
+ // * Item store pickup timeline. Acceptable values are: - "`same day`" - "`next day`" - "`2-day`" - "`3-day`" - "`4-day`" - "`5-day`" - "`6-day`" - "`7-day`" - "`multi-week`"
354
+ // */
355
+ // pickupSla?: string | null;
356
+ // /**
357
+ // * The height of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive).
358
+ // */
359
+ // productHeight?: Schema$ProductDimension;
360
+ // /**
361
+ // * The length of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive).
362
+ // */
363
+ // productLength?: Schema$ProductDimension;
364
+ // /**
365
+ // * The width of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive).
366
+ // */
367
+ // productWidth?: Schema$ProductDimension;
368
+ // /**
369
+ // * Shipping rules.
370
+ // */
371
+ // shipping?: Schema$ProductShipping[];
372
+ // /**
373
+ // * Height of the item for shipping.
374
+ // */
375
+ // shippingHeight?: Schema$ProductShippingDimension;
376
+ // /**
377
+ // * Length of the item for shipping.
378
+ // */
379
+ // shippingLength?: Schema$ProductShippingDimension;
380
+ // /**
381
+ // * Weight of the item for shipping.
382
+ // */
383
+ // shippingWeight?: Schema$ProductShippingWeight;
384
+ // /**
385
+ // * Width of the item for shipping.
386
+ // */
387
+ // shippingWidth?: Schema$ProductShippingDimension;
388
+ // /**
389
+ // * List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.
390
+ // */
391
+ // shoppingAdsExcludedCountries?: string[] | null;
392
+ // /**
393
+ // * Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).
394
+ // */
395
+ // sizes?: string[] | null;
396
+ // /**
397
+ // * System in which the size is specified. Recommended for apparel items.
398
+ // */
399
+ // sizeSystem?: string | null;
400
+ // /**
401
+ // * The cut of the item. Recommended for apparel items.
402
+ // */
403
+ // sizeType?: string | null;
424
404
  ];
405
+ export const CHANNEL = 'online';
406
+ export const GMC_PRODUCT_ID_TEMPLATE = '{PRODUCT_ID}_{VARIANT_ID}';
407
+ export const ProfileIdTemplateCodes = ['PRODUCT_ID', 'VARIANT_ID', 'COUNTRY', 'LANGUAGE'];