feed-common 1.11.1 → 1.12.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.
@@ -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'];