feed-common 1.35.4 → 1.35.5

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.35.5](https://github.com/advertikon/package-maxify-feed-common/compare/v1.35.4...v1.35.5) (2024-08-16)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * update facebook feed template ([104b9ff](https://github.com/advertikon/package-maxify-feed-common/commit/104b9ff21e1c9140e29e0823d508e1055e981e0d))
7
+
1
8
  ## [1.35.4](https://github.com/advertikon/package-maxify-feed-common/compare/v1.35.3...v1.35.4) (2024-08-15)
2
9
 
3
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"facebook.template.d.ts","sourceRoot":"","sources":["../../../src/utils/feed-templates/facebook.template.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AA2DnE,eAAO,MAAM,oBAAoB,EAAE,mBA6UlC,CAAC"}
1
+ {"version":3,"file":"facebook.template.d.ts","sourceRoot":"","sources":["../../../src/utils/feed-templates/facebook.template.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AA2DnE,eAAO,MAAM,oBAAoB,EAAE,mBAoVlC,CAAC"}
@@ -8,48 +8,48 @@ import { XmlFeedFormat } from '../../constants/profile.constants.js';
8
8
  const availabilityMapping = {
9
9
  attribute: 'availability',
10
10
  label: 'Availability',
11
- description: "The current availability of the item. Supported values: in stock, out of stock. Out of stock items don't appear in ads, which prevents advertising items that aren't available. They do still appear in shops on Facebook and Instagram, but are marked as sold out",
11
+ description: "The current availability of the item. Supported values: in stock, out of stock. Out of stock items don't appear in ads, which prevents advertising items that aren't available. They do still appear in shops on Facebook and Instagram, but are marked as sold out. Example: in stock",
12
12
  required: true,
13
13
  type: 'macro-input',
14
- validator: (v) => validate(v, z.enum(['in stock', 'out of stock']), false),
14
+ validator: (v) => validateIfNoMacro(v, z.enum(['in stock', 'out of stock'])),
15
15
  };
16
16
  const conditionMapping = {
17
17
  attribute: 'condition',
18
18
  label: 'Condition',
19
- description: 'The condition of the item. Supported values: new, refurbished, used',
19
+ description: 'The condition of the item. Supported values: new, refurbished, used. Example: new',
20
20
  required: true,
21
21
  type: 'macro-input',
22
- validator: (v) => validate(v, z.enum(['new', 'refurbished', 'used'])),
22
+ validator: (v) => validateIfNoMacro(v, z.enum(['new', 'refurbished', 'used'])),
23
23
  };
24
24
  const videoMapping = {
25
25
  attribute: 'video[0].url',
26
26
  label: 'Video URL 1',
27
- description: 'Up to 20 fields each containing a link to a product video. video[0].url will be your default video and a 4:5 aspect ratio is recommended. To add multiple videos per product, such as alternative 1:1 or 9:16 aspect ratios, add additional video fields',
27
+ description: 'Up to 20 fields each containing a link to a product video. video[0].url will be your default video and a 4:5 aspect ratio is recommended. To add multiple videos per product, such as alternative 1:1 or 9:16 aspect ratios, add additional video fields. Example: http://www.jaspersmarket.com/product_video.avi',
28
28
  required: false,
29
29
  type: 'macro-input',
30
30
  defaultValue: '',
31
31
  rules: { sections: [] },
32
- validator: (v) => validateIfNoMacro(v, z.string().url()),
32
+ validator: (v) => validateIfNoMacro(v, z.string().url().optional()),
33
33
  };
34
34
  const customLabelMapping = {
35
35
  attribute: 'custom_label_0',
36
36
  label: 'Custom Label 1',
37
- description: 'Up to five custom fields. Use these fields to create custom labels for your items. For example, you can use custom labels to filter your products in your Facebook catalog. Supported values: 0-100 characters',
37
+ description: 'Up to five custom fields. Use these fields to create custom labels for your items. For example, you can use custom labels to filter your products in your Facebook catalog. Supported values: 0-100 characters. Example: Summer sale',
38
38
  required: false,
39
39
  type: 'macro-input',
40
40
  defaultValue: '',
41
41
  rules: { sections: [] },
42
- validator: (v) => validate(v, z.string().max(100)),
42
+ validator: (v) => validate(v, z.string().max(100).optional()),
43
43
  };
44
44
  const customNumberMapping = {
45
45
  attribute: '',
46
46
  label: '',
47
- description: 'Up to five custom fields for any additional number-related information you want to filter items by when you create product sets. These fields allow you to filter by number ranges (is greater than and is less than) when you create a set. For example, you could use a custom number field to indicate the year each item was produced, and then filter a certain year range into a set. Supported whole number from 0 to 4294967295',
47
+ description: 'Up to five custom fields for any additional number-related information you want to filter items by when you create product sets. These fields allow you to filter by number ranges (is greater than and is less than) when you create a set. For example, you could use a custom number field to indicate the year each item was produced, and then filter a certain year range into a set. Supported whole number from 0 to 4294967295. Example: 2022',
48
48
  required: false,
49
49
  type: 'macro-input',
50
50
  defaultValue: '',
51
51
  rules: { sections: [] },
52
- validator: (v) => validateIfNoMacro(v, z.coerce.number().min(0).max(4294967295).int()),
52
+ validator: (v) => validateIfNoMacro(v, z.coerce.number().min(0).max(4294967295).int().optional()),
53
53
  };
54
54
  export const facebookFeedTemplate = {
55
55
  formats: [XmlFeedFormat.CSV, XmlFeedFormat.XMLS, XmlFeedFormat.TSV, XmlFeedFormat.XML],
@@ -58,30 +58,30 @@ export const facebookFeedTemplate = {
58
58
  {
59
59
  attribute: 'id',
60
60
  label: 'ID',
61
- description: "A unique content ID for the item. Use the item's stock keeping unit (SKU) number if possible. Each content ID must appear only once in your catalog. If you use the same content ID for multiple items, none of them will be uploaded. Character limit: 100",
61
+ description: "A unique content ID for the item. Use the item's stock keeping unit (SKU) number if possible. Each content ID must appear only once in your catalog. If you use the same content ID for multiple items, none of them will be uploaded. Character limit: 100. Example: 12345",
62
62
  required: true,
63
63
  type: 'macro-input',
64
- validator: v => validate(v, z.string().max(100), false),
64
+ validator: v => validateIfNoMacro(v, z.string().max(100).min(1)),
65
65
  defaultValue: '{{shopify.sku}}',
66
66
  rules: { sections: [] },
67
67
  },
68
68
  {
69
69
  attribute: 'title',
70
70
  label: 'Title',
71
- description: 'A specific, relevant title for the item, written in title case. Character limit: 200, but we recommend 65 maximum to avoid longer titles being cut off',
71
+ description: 'A specific, relevant title for the item, written in title case. Character limit: 200, but we recommend 65 maximum to avoid longer titles being cut off. Example: Blue Cotton T-Shirt',
72
72
  required: true,
73
73
  type: 'macro-input',
74
- validator: (v) => validate(v, z.string().max(200), false),
74
+ validator: (v) => validateIfNoMacro(v, z.string().max(200).min(1)),
75
75
  defaultValue: '{{shopify.title}}',
76
76
  rules: { sections: [] },
77
77
  },
78
78
  {
79
79
  attribute: 'description',
80
80
  label: 'Description',
81
- description: "A detailed description of the item. Include specific and unique product features like material or color. Use plain text only (to use HTML, see rich_text description) and don't enter text in all capital letters. The description should be different from the title. We recommend not including any links. See product description specifications. Character limit: 9,999",
81
+ description: "A detailed description of the item. Include specific and unique product features like material or color. Use plain text only (to use HTML, see rich_text description) and don't enter text in all capital letters. The description should be different from the title. We recommend not including any links. See product description specifications. Character limit: 9,999. Example: A comfortable royal blue women's T-shirt in organic cotton. Cap sleeves and relaxed fit. Perfect for warm summer days.",
82
82
  required: true,
83
83
  type: 'macro-input',
84
- validator: (v) => validate(v, z.string().max(9999), false),
84
+ validator: (v) => validateIfNoMacro(v, z.string().max(9999).min(1)),
85
85
  defaultValue: '{{shopify.description}}',
86
86
  rules: { sections: [] },
87
87
  },
@@ -130,16 +130,17 @@ export const facebookFeedTemplate = {
130
130
  {
131
131
  attribute: 'price',
132
132
  label: 'Price',
133
- description: "The price of the item. Format the price as a number, followed by a space and then the 3-letter ISO 4217 currency code. Always use a period (.) as the decimal point, not a comma (,). Don't include currency symbols such as $, € or £. Only use one currency in your feed. To add prices in other currencies for selling in different countries, upload a country feed.",
133
+ description: "The price of the item. Format the price as a number, followed by a space and then the 3-letter ISO 4217 currency code. Always use a period (.) as the decimal point, not a comma (,). Don't include currency symbols such as $, € or £. Only use one currency in your feed. To add prices in other currencies for selling in different countries, upload a country feed. Examples: 9.99 USD or 7.99 EUR",
134
134
  required: true,
135
135
  type: 'macro-input',
136
+ validator: (v) => validateIfNoMacro(v, z.string().min(1)),
136
137
  defaultValue: '{{shopify.price}} {{shopify.shop_currency}}',
137
138
  rules: { sections: [] },
138
139
  },
139
140
  {
140
141
  attribute: 'link',
141
142
  label: 'Link',
142
- description: "The link to the item's specific product page on your business's website where people can learn more about or buy the item. Links must begin with http:// or https://, be valid and be hosted on your business’s website domain",
143
+ description: "The link to the item's specific product page on your business's website where people can learn more about or buy the item. Links must begin with http:// or https://, be valid and be hosted on your business’s website domain. Example: http://www.jaspersmarket.com/products/shirt",
143
144
  required: true,
144
145
  type: 'macro-input',
145
146
  validator: (v) => validateIfNoMacro(v, z.string().url()),
@@ -149,7 +150,7 @@ export const facebookFeedTemplate = {
149
150
  {
150
151
  attribute: 'image_link',
151
152
  label: 'Image link',
152
- description: 'The URL for the main image of your item. Images must be in JPEG or PNG format, at least 500 x 500 pixels and up to 8 MB',
153
+ description: 'The URL for the main image of your item. Images must be in JPEG or PNG format, at least 500 x 500 pixels and up to 8 MB. Example: http://www.jaspersmarket.com/products/shirt.jpg',
153
154
  required: true,
154
155
  type: 'macro-input',
155
156
  validator: (v) => validateIfNoMacro(v, z.string().url()),
@@ -159,37 +160,37 @@ export const facebookFeedTemplate = {
159
160
  {
160
161
  attribute: 'brand',
161
162
  label: 'Brand',
162
- description: 'The brand name of the item. Character limit: 100',
163
+ description: "The brand name of the item. Character limit: 100. Example: Jasper's Market",
163
164
  required: true,
164
165
  type: 'macro-input',
165
- validator: (v) => validate(v, z.string().max(100), false),
166
+ validator: (v) => validateIfNoMacro(v, z.string().max(100).min(1)),
166
167
  defaultValue: '{{shopify.vendor}}',
167
168
  rules: { sections: [] },
168
169
  },
169
170
  {
170
171
  attribute: 'quantity_to_sell_on_facebook',
171
172
  label: 'Quantity to sell on Facebook',
172
- description: "Checkout on Facebook and Instagram (US only). The quantity of this item that you have available to sell. Enter a whole number. To prevent overselling, an item's quantity is automatically reduced each time a purchase order is confirmed through checkout. When the quantity reaches 0, the item is marked as sold out in your shop on Facebook and Instagram. After 56 days, out of stock items stop appearing in your shop",
173
+ description: "Checkout on Facebook and Instagram (US only). The quantity of this item that you have available to sell. Enter a whole number. To prevent overselling, an item's quantity is automatically reduced each time a purchase order is confirmed through checkout. When the quantity reaches 0, the item is marked as sold out in your shop on Facebook and Instagram. After 56 days, out of stock items stop appearing in your shop. Example: 150",
173
174
  required: false,
174
175
  type: 'macro-input',
175
- validator: (v) => validateIfNoMacro(v, z.coerce.number().min(0)),
176
+ validator: (v) => validateIfNoMacro(v, z.coerce.number().min(0).optional()),
176
177
  defaultValue: '{{shopify.inventory_quantity}}',
177
178
  rules: { sections: [] },
178
179
  },
179
180
  {
180
181
  attribute: 'size',
181
182
  label: 'Size',
182
- description: 'Required for items in specific product categories including clothing and shoes. The size of the item written as a word, abbreviation or number, such as "Small", "XL", "12" or "One size". Include a space between words and numbers (such as "US 12" or "15 months" instead of "US12" or "15months") and don\'t include the word "size" if not necessary (such as "XS" instead of "Size XS"). Character limit: 200',
183
+ description: 'Required for items in specific product categories including clothing and shoes. The size of the item written as a word, abbreviation or number, such as "Small", "XL", "12" or "One size". Include a space between words and numbers (such as "US 12" or "15 months" instead of "US12" or "15months") and don\'t include the word "size" if not necessary (such as "XS" instead of "Size XS"). Character limit: 200. Example: Medium',
183
184
  required: false,
184
185
  type: 'macro-input',
185
- validator: (v) => validate(v, z.string().max(200)),
186
+ validator: (v) => validate(v, z.string().max(200).optional()),
186
187
  defaultValue: '',
187
188
  rules: { sections: [] },
188
189
  },
189
190
  {
190
191
  attribute: 'sale_price',
191
192
  label: 'Sale price',
192
- description: 'If the item is on sale, enter its discounted price. Use the same formatting as the price field',
193
+ description: 'If the item is on sale, enter its discounted price. Use the same formatting as the price field. Example: 5.99 USD',
193
194
  required: false,
194
195
  type: 'macro-input',
195
196
  defaultValue: '',
@@ -198,7 +199,7 @@ export const facebookFeedTemplate = {
198
199
  {
199
200
  attribute: 'sale_price_effective_date',
200
201
  label: 'Sale price effective date',
201
- description: "The date, time and time zone when your sale starts and ends. If you don't add this field, any items with a sale_price remain on sale until you remove their sale price. Use this format: YYYY-MM-DDT23:59+00:00/YYYY-MM-DDT23:59+00:00",
202
+ description: "The date, time and time zone when your sale starts and ends. If you don't add this field, any items with a sale_price remain on sale until you remove their sale price. Use this format: YYYY-MM-DDT23:59+00:00/YYYY-MM-DDT23:59+00:00. Example (using PST time zone -08:00): 2020-04-30T09:30-08:00/2020-05-30T23:59-08:00",
202
203
  required: false,
203
204
  type: 'macro-input',
204
205
  defaultValue: '',
@@ -207,7 +208,7 @@ export const facebookFeedTemplate = {
207
208
  {
208
209
  attribute: 'item_group_id',
209
210
  label: 'Item group ID',
210
- description: "Allows you to set up variants of the same product, such as different sizes, colors or patterns. Enter the same group ID in this field for all variants of the same product to indicate they're part of a group",
211
+ description: "Allows you to set up variants of the same product, such as different sizes, colors or patterns. Enter the same group ID in this field for all variants of the same product to indicate they're part of a group. Example: Shirt_1",
211
212
  required: false,
212
213
  type: 'macro-input',
213
214
  defaultValue: '{{shopify.id}}',
@@ -216,16 +217,17 @@ export const facebookFeedTemplate = {
216
217
  {
217
218
  attribute: 'status',
218
219
  label: 'Status',
219
- description: 'Controls whether the item is active or archived in your catalog. Only active items can be seen by people in your ads, shops or any other channels. Supported values: active, archived. Items are active by default',
220
+ description: 'Controls whether the item is active or archived in your catalog. Only active items can be seen by people in your ads, shops or any other channels. Supported values: active, archived. Items are active by default. Example: active',
220
221
  required: false,
221
222
  type: 'macro-input',
222
223
  defaultValue: '{{shopify.status}}',
224
+ validator: (v) => validateIfNoMacro(v, z.enum(['active', 'archived', '']).optional()),
223
225
  rules: { sections: [] },
224
226
  },
225
227
  {
226
228
  attribute: 'additional_image_link',
227
229
  label: 'Additional image link',
228
- description: 'Links to up to 20 additional images of your item, separated by a comma (,), semicolon (;), space ( ) or vertical bar (|). Follow the same image specifications as image_link',
230
+ description: 'Links to up to 20 additional images of your item, separated by a comma (,), semicolon (;), space ( ) or vertical bar (|). Follow the same image specifications as image_link. Example: http://www.jaspersmarket.com/products/shirt2.jpg, http://www.jaspersmarket.com/products/shirt3.jpg',
229
231
  required: false,
230
232
  type: 'macro-input',
231
233
  defaultValue: '{{shopify.images}}',
@@ -234,7 +236,7 @@ export const facebookFeedTemplate = {
234
236
  {
235
237
  attribute: 'gtin',
236
238
  label: 'GTIN',
237
- description: 'The item’s Global Trade Item Number (GTIN). Providing a GTIN is highly recommended to help classify the item. The GTIN may appear on the barcode, packaging or book cover. Not all items have a GTIN. Only provide one if you’re sure it’s correct. Don’t include dashes or spaces',
239
+ description: 'The item’s Global Trade Item Number (GTIN). Providing a GTIN is highly recommended to help classify the item. The GTIN may appear on the barcode, packaging or book cover. Not all items have a GTIN. Only provide one if you’re sure it’s correct. Don’t include dashes or spaces. Example: 4011200296908',
238
240
  required: false,
239
241
  type: 'macro-input',
240
242
  defaultValue: '',
@@ -243,11 +245,11 @@ export const facebookFeedTemplate = {
243
245
  {
244
246
  attribute: 'mpn',
245
247
  label: 'MPN',
246
- description: 'The item’s manufacturer part number (MPN), a unique alphanumeric code assigned by the manufacturer in some industries to identify a specific item or part. It may appear on the packaging, label or etched directly onto the item. Providing a MPN is recommended to help classify the item if there is no GTIN. Not all items have a MPN. Only provide one if you’re sure it’s correct. Character limit: 100',
248
+ description: 'The item’s manufacturer part number (MPN), a unique alphanumeric code assigned by the manufacturer in some industries to identify a specific item or part. It may appear on the packaging, label or etched directly onto the item. Providing a MPN is recommended to help classify the item if there is no GTIN. Not all items have a MPN. Only provide one if you’re sure it’s correct. Character limit: 100. Example: JAS12345PER',
247
249
  required: false,
248
250
  type: 'macro-input',
249
251
  defaultValue: '',
250
- validator: (v) => validate(v, z.string()),
252
+ validator: (v) => validate(v, z.string().optional()),
251
253
  rules: { sections: [] },
252
254
  },
253
255
  {
@@ -271,52 +273,52 @@ export const facebookFeedTemplate = {
271
273
  {
272
274
  attribute: 'color',
273
275
  label: 'Color',
274
- description: 'The main color of the item. Describe the color in words, not a hex code. Character limit: 200',
276
+ description: 'The main color of the item. Describe the color in words, not a hex code. Character limit: 200. Example: Royal blue',
275
277
  required: false,
276
278
  type: 'macro-input',
277
279
  defaultValue: '',
278
280
  rules: { sections: [] },
279
- validator: (v) => validate(v, z.string()),
281
+ validator: (v) => validate(v, z.string().optional()),
280
282
  },
281
283
  {
282
284
  attribute: 'gender',
283
285
  label: 'Gender',
284
- description: 'The gender your item is targeted towards. Supported values: female, male, unisex',
286
+ description: 'The gender your item is targeted towards. Supported values: female, male, unisex. Example: female',
285
287
  required: false,
286
288
  type: 'macro-input',
287
289
  defaultValue: '',
288
290
  rules: { sections: [] },
289
- validator: v => validate(v, z.enum(['female', 'male', 'unisex'])),
291
+ validator: v => validate(v, z.enum(['female', 'male', 'unisex', '']).optional()),
290
292
  },
291
293
  {
292
294
  attribute: 'age_group',
293
295
  label: 'Age group',
294
- description: 'The age group that the item is targeted towards. Supported values: adult, all ages, teen, kids, toddler, infant, newborn',
296
+ description: 'The age group that the item is targeted towards. Supported values: adult, all ages, teen, kids, toddler, infant, newborn. Example: adult',
295
297
  required: false,
296
298
  type: 'macro-input',
297
299
  defaultValue: '',
298
300
  rules: { sections: [] },
299
- validator: v => validate(v, z.enum(['adult', 'all ages', 'teen', 'kids', 'toddler', 'infant', 'newborn'])),
301
+ validator: v => validate(v, z.enum(['adult', 'all ages', 'teen', 'kids', 'toddler', 'infant', 'newborn', '']).optional()),
300
302
  },
301
303
  {
302
304
  attribute: 'material',
303
305
  label: 'Material',
304
- description: 'The material the item is made from, such as cotton, polyester, denim or leather. Character limit: 200',
306
+ description: 'The material the item is made from, such as cotton, polyester, denim or leather. Character limit: 200. Example: Organic cotton',
305
307
  required: false,
306
308
  type: 'macro-input',
307
309
  defaultValue: '',
308
310
  rules: { sections: [] },
309
- validator: (v) => validate(v, z.string()),
311
+ validator: (v) => validate(v, z.string().optional()),
310
312
  },
311
313
  {
312
314
  attribute: 'pattern',
313
315
  label: 'Pattern',
314
- description: 'The pattern or graphic print on the item. Character limit: 100',
316
+ description: 'The pattern or graphic print on the item. Character limit: 100. Example: Stripes',
315
317
  required: false,
316
318
  type: 'macro-input',
317
319
  defaultValue: '',
318
320
  rules: { sections: [] },
319
- validator: (v) => validate(v, z.string().max(100)),
321
+ validator: (v) => validate(v, z.string().max(100).optional()),
320
322
  },
321
323
  {
322
324
  attribute: 'rich_text_description',
@@ -326,7 +328,7 @@ export const facebookFeedTemplate = {
326
328
  type: 'macro-input',
327
329
  defaultValue: '{{shopify.description_html}}',
328
330
  rules: { sections: [] },
329
- validator: (v) => validate(v, z.string()),
331
+ validator: (v) => validate(v, z.string().optional()),
330
332
  },
331
333
  ...[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19].map(i => ({
332
334
  ...videoMapping,
@@ -1 +1 @@
1
- {"version":3,"file":"facebook.template.js","sourceRoot":"","sources":["../../../src/utils/feed-templates/facebook.template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"facebook.template.js","sourceRoot":"","sources":["../../../src/utils/feed-templates/facebook.template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feed-common",
3
- "version": "1.35.4",
3
+ "version": "1.35.5",
4
4
  "description": "Maxify feed common library",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -11,55 +11,55 @@ const availabilityMapping = {
11
11
  attribute: 'availability',
12
12
  label: 'Availability',
13
13
  description:
14
- "The current availability of the item. Supported values: in stock, out of stock. Out of stock items don't appear in ads, which prevents advertising items that aren't available. They do still appear in shops on Facebook and Instagram, but are marked as sold out",
14
+ "The current availability of the item. Supported values: in stock, out of stock. Out of stock items don't appear in ads, which prevents advertising items that aren't available. They do still appear in shops on Facebook and Instagram, but are marked as sold out. Example: in stock",
15
15
  required: true,
16
16
  type: 'macro-input' as any,
17
- validator: (v: string | number) => validate(v, z.enum(['in stock', 'out of stock']), false),
17
+ validator: (v: string | number) => validateIfNoMacro(v, z.enum(['in stock', 'out of stock'])),
18
18
  };
19
19
 
20
20
  const conditionMapping = {
21
21
  attribute: 'condition',
22
22
  label: 'Condition',
23
- description: 'The condition of the item. Supported values: new, refurbished, used',
23
+ description: 'The condition of the item. Supported values: new, refurbished, used. Example: new',
24
24
  required: true,
25
25
  type: 'macro-input' as any,
26
- validator: (v: string | number) => validate(v, z.enum(['new', 'refurbished', 'used'])),
26
+ validator: (v: string | number) => validateIfNoMacro(v, z.enum(['new', 'refurbished', 'used'])),
27
27
  };
28
28
 
29
29
  const videoMapping = {
30
30
  attribute: 'video[0].url',
31
31
  label: 'Video URL 1',
32
32
  description:
33
- 'Up to 20 fields each containing a link to a product video. video[0].url will be your default video and a 4:5 aspect ratio is recommended. To add multiple videos per product, such as alternative 1:1 or 9:16 aspect ratios, add additional video fields',
33
+ 'Up to 20 fields each containing a link to a product video. video[0].url will be your default video and a 4:5 aspect ratio is recommended. To add multiple videos per product, such as alternative 1:1 or 9:16 aspect ratios, add additional video fields. Example: http://www.jaspersmarket.com/product_video.avi',
34
34
  required: false,
35
35
  type: 'macro-input' as any,
36
36
  defaultValue: '',
37
37
  rules: { sections: [] },
38
- validator: (v: string | number) => validateIfNoMacro(v, z.string().url()),
38
+ validator: (v: string | number) => validateIfNoMacro(v, z.string().url().optional()),
39
39
  };
40
40
 
41
41
  const customLabelMapping = {
42
42
  attribute: 'custom_label_0',
43
43
  label: 'Custom Label 1',
44
44
  description:
45
- 'Up to five custom fields. Use these fields to create custom labels for your items. For example, you can use custom labels to filter your products in your Facebook catalog. Supported values: 0-100 characters',
45
+ 'Up to five custom fields. Use these fields to create custom labels for your items. For example, you can use custom labels to filter your products in your Facebook catalog. Supported values: 0-100 characters. Example: Summer sale',
46
46
  required: false,
47
47
  type: 'macro-input' as any,
48
48
  defaultValue: '',
49
49
  rules: { sections: [] },
50
- validator: (v: string | number) => validate(v, z.string().max(100)),
50
+ validator: (v: string | number) => validate(v, z.string().max(100).optional()),
51
51
  };
52
52
 
53
53
  const customNumberMapping = {
54
54
  attribute: '',
55
55
  label: '',
56
56
  description:
57
- 'Up to five custom fields for any additional number-related information you want to filter items by when you create product sets. These fields allow you to filter by number ranges (is greater than and is less than) when you create a set. For example, you could use a custom number field to indicate the year each item was produced, and then filter a certain year range into a set. Supported whole number from 0 to 4294967295',
57
+ 'Up to five custom fields for any additional number-related information you want to filter items by when you create product sets. These fields allow you to filter by number ranges (is greater than and is less than) when you create a set. For example, you could use a custom number field to indicate the year each item was produced, and then filter a certain year range into a set. Supported whole number from 0 to 4294967295. Example: 2022',
58
58
  required: false,
59
59
  type: 'macro-input' as any,
60
60
  defaultValue: '',
61
61
  rules: { sections: [] },
62
- validator: (v: string | number) => validateIfNoMacro(v, z.coerce.number().min(0).max(4294967295).int()),
62
+ validator: (v: string | number) => validateIfNoMacro(v, z.coerce.number().min(0).max(4294967295).int().optional()),
63
63
  };
64
64
 
65
65
  export const facebookFeedTemplate: XmlFeedTemplateType = {
@@ -70,10 +70,10 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
70
70
  attribute: 'id',
71
71
  label: 'ID',
72
72
  description:
73
- "A unique content ID for the item. Use the item's stock keeping unit (SKU) number if possible. Each content ID must appear only once in your catalog. If you use the same content ID for multiple items, none of them will be uploaded. Character limit: 100",
73
+ "A unique content ID for the item. Use the item's stock keeping unit (SKU) number if possible. Each content ID must appear only once in your catalog. If you use the same content ID for multiple items, none of them will be uploaded. Character limit: 100. Example: 12345",
74
74
  required: true,
75
75
  type: 'macro-input',
76
- validator: v => validate(v, z.string().max(100), false),
76
+ validator: v => validateIfNoMacro(v, z.string().max(100).min(1)),
77
77
  defaultValue: '{{shopify.sku}}',
78
78
  rules: { sections: [] },
79
79
  },
@@ -81,10 +81,10 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
81
81
  attribute: 'title',
82
82
  label: 'Title',
83
83
  description:
84
- 'A specific, relevant title for the item, written in title case. Character limit: 200, but we recommend 65 maximum to avoid longer titles being cut off',
84
+ 'A specific, relevant title for the item, written in title case. Character limit: 200, but we recommend 65 maximum to avoid longer titles being cut off. Example: Blue Cotton T-Shirt',
85
85
  required: true,
86
86
  type: 'macro-input',
87
- validator: (v: string | number) => validate(v, z.string().max(200), false),
87
+ validator: (v: string | number) => validateIfNoMacro(v, z.string().max(200).min(1)),
88
88
  defaultValue: '{{shopify.title}}',
89
89
  rules: { sections: [] },
90
90
  },
@@ -92,10 +92,10 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
92
92
  attribute: 'description',
93
93
  label: 'Description',
94
94
  description:
95
- "A detailed description of the item. Include specific and unique product features like material or color. Use plain text only (to use HTML, see rich_text description) and don't enter text in all capital letters. The description should be different from the title. We recommend not including any links. See product description specifications. Character limit: 9,999",
95
+ "A detailed description of the item. Include specific and unique product features like material or color. Use plain text only (to use HTML, see rich_text description) and don't enter text in all capital letters. The description should be different from the title. We recommend not including any links. See product description specifications. Character limit: 9,999. Example: A comfortable royal blue women's T-shirt in organic cotton. Cap sleeves and relaxed fit. Perfect for warm summer days.",
96
96
  required: true,
97
97
  type: 'macro-input',
98
- validator: (v: string | number) => validate(v, z.string().max(9999), false),
98
+ validator: (v: string | number) => validateIfNoMacro(v, z.string().max(9999).min(1)),
99
99
  defaultValue: '{{shopify.description}}',
100
100
  rules: { sections: [] },
101
101
  },
@@ -145,9 +145,10 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
145
145
  attribute: 'price',
146
146
  label: 'Price',
147
147
  description:
148
- "The price of the item. Format the price as a number, followed by a space and then the 3-letter ISO 4217 currency code. Always use a period (.) as the decimal point, not a comma (,). Don't include currency symbols such as $, € or £. Only use one currency in your feed. To add prices in other currencies for selling in different countries, upload a country feed.",
148
+ "The price of the item. Format the price as a number, followed by a space and then the 3-letter ISO 4217 currency code. Always use a period (.) as the decimal point, not a comma (,). Don't include currency symbols such as $, € or £. Only use one currency in your feed. To add prices in other currencies for selling in different countries, upload a country feed. Examples: 9.99 USD or 7.99 EUR",
149
149
  required: true,
150
150
  type: 'macro-input',
151
+ validator: (v: string | number) => validateIfNoMacro(v, z.string().min(1)),
151
152
  defaultValue: '{{shopify.price}} {{shopify.shop_currency}}',
152
153
  rules: { sections: [] },
153
154
  },
@@ -155,7 +156,7 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
155
156
  attribute: 'link',
156
157
  label: 'Link',
157
158
  description:
158
- "The link to the item's specific product page on your business's website where people can learn more about or buy the item. Links must begin with http:// or https://, be valid and be hosted on your business’s website domain",
159
+ "The link to the item's specific product page on your business's website where people can learn more about or buy the item. Links must begin with http:// or https://, be valid and be hosted on your business’s website domain. Example: http://www.jaspersmarket.com/products/shirt",
159
160
  required: true,
160
161
  type: 'macro-input',
161
162
  validator: (v: string | number) => validateIfNoMacro(v, z.string().url()),
@@ -166,7 +167,7 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
166
167
  attribute: 'image_link',
167
168
  label: 'Image link',
168
169
  description:
169
- 'The URL for the main image of your item. Images must be in JPEG or PNG format, at least 500 x 500 pixels and up to 8 MB',
170
+ 'The URL for the main image of your item. Images must be in JPEG or PNG format, at least 500 x 500 pixels and up to 8 MB. Example: http://www.jaspersmarket.com/products/shirt.jpg',
170
171
  required: true,
171
172
  type: 'macro-input',
172
173
  validator: (v: string | number) => validateIfNoMacro(v, z.string().url()),
@@ -176,10 +177,10 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
176
177
  {
177
178
  attribute: 'brand',
178
179
  label: 'Brand',
179
- description: 'The brand name of the item. Character limit: 100',
180
+ description: "The brand name of the item. Character limit: 100. Example: Jasper's Market",
180
181
  required: true,
181
182
  type: 'macro-input',
182
- validator: (v: string | number) => validate(v, z.string().max(100), false),
183
+ validator: (v: string | number) => validateIfNoMacro(v, z.string().max(100).min(1)),
183
184
  defaultValue: '{{shopify.vendor}}',
184
185
  rules: { sections: [] },
185
186
  },
@@ -187,10 +188,10 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
187
188
  attribute: 'quantity_to_sell_on_facebook',
188
189
  label: 'Quantity to sell on Facebook',
189
190
  description:
190
- "Checkout on Facebook and Instagram (US only). The quantity of this item that you have available to sell. Enter a whole number. To prevent overselling, an item's quantity is automatically reduced each time a purchase order is confirmed through checkout. When the quantity reaches 0, the item is marked as sold out in your shop on Facebook and Instagram. After 56 days, out of stock items stop appearing in your shop",
191
+ "Checkout on Facebook and Instagram (US only). The quantity of this item that you have available to sell. Enter a whole number. To prevent overselling, an item's quantity is automatically reduced each time a purchase order is confirmed through checkout. When the quantity reaches 0, the item is marked as sold out in your shop on Facebook and Instagram. After 56 days, out of stock items stop appearing in your shop. Example: 150",
191
192
  required: false,
192
193
  type: 'macro-input',
193
- validator: (v: string | number) => validateIfNoMacro(v, z.coerce.number().min(0)),
194
+ validator: (v: string | number) => validateIfNoMacro(v, z.coerce.number().min(0).optional()),
194
195
  defaultValue: '{{shopify.inventory_quantity}}',
195
196
  rules: { sections: [] },
196
197
  },
@@ -198,10 +199,10 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
198
199
  attribute: 'size',
199
200
  label: 'Size',
200
201
  description:
201
- 'Required for items in specific product categories including clothing and shoes. The size of the item written as a word, abbreviation or number, such as "Small", "XL", "12" or "One size". Include a space between words and numbers (such as "US 12" or "15 months" instead of "US12" or "15months") and don\'t include the word "size" if not necessary (such as "XS" instead of "Size XS"). Character limit: 200',
202
+ 'Required for items in specific product categories including clothing and shoes. The size of the item written as a word, abbreviation or number, such as "Small", "XL", "12" or "One size". Include a space between words and numbers (such as "US 12" or "15 months" instead of "US12" or "15months") and don\'t include the word "size" if not necessary (such as "XS" instead of "Size XS"). Character limit: 200. Example: Medium',
202
203
  required: false,
203
204
  type: 'macro-input',
204
- validator: (v: string | number) => validate(v, z.string().max(200)),
205
+ validator: (v: string | number) => validate(v, z.string().max(200).optional()),
205
206
  defaultValue: '',
206
207
  rules: { sections: [] },
207
208
  },
@@ -209,7 +210,7 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
209
210
  attribute: 'sale_price',
210
211
  label: 'Sale price',
211
212
  description:
212
- 'If the item is on sale, enter its discounted price. Use the same formatting as the price field',
213
+ 'If the item is on sale, enter its discounted price. Use the same formatting as the price field. Example: 5.99 USD',
213
214
  required: false,
214
215
  type: 'macro-input',
215
216
  defaultValue: '',
@@ -219,7 +220,7 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
219
220
  attribute: 'sale_price_effective_date',
220
221
  label: 'Sale price effective date',
221
222
  description:
222
- "The date, time and time zone when your sale starts and ends. If you don't add this field, any items with a sale_price remain on sale until you remove their sale price. Use this format: YYYY-MM-DDT23:59+00:00/YYYY-MM-DDT23:59+00:00",
223
+ "The date, time and time zone when your sale starts and ends. If you don't add this field, any items with a sale_price remain on sale until you remove their sale price. Use this format: YYYY-MM-DDT23:59+00:00/YYYY-MM-DDT23:59+00:00. Example (using PST time zone -08:00): 2020-04-30T09:30-08:00/2020-05-30T23:59-08:00",
223
224
  required: false,
224
225
  type: 'macro-input',
225
226
  defaultValue: '',
@@ -229,7 +230,7 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
229
230
  attribute: 'item_group_id',
230
231
  label: 'Item group ID',
231
232
  description:
232
- "Allows you to set up variants of the same product, such as different sizes, colors or patterns. Enter the same group ID in this field for all variants of the same product to indicate they're part of a group",
233
+ "Allows you to set up variants of the same product, such as different sizes, colors or patterns. Enter the same group ID in this field for all variants of the same product to indicate they're part of a group. Example: Shirt_1",
233
234
  required: false,
234
235
  type: 'macro-input',
235
236
  defaultValue: '{{shopify.id}}',
@@ -239,17 +240,18 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
239
240
  attribute: 'status',
240
241
  label: 'Status',
241
242
  description:
242
- 'Controls whether the item is active or archived in your catalog. Only active items can be seen by people in your ads, shops or any other channels. Supported values: active, archived. Items are active by default',
243
+ 'Controls whether the item is active or archived in your catalog. Only active items can be seen by people in your ads, shops or any other channels. Supported values: active, archived. Items are active by default. Example: active',
243
244
  required: false,
244
245
  type: 'macro-input',
245
246
  defaultValue: '{{shopify.status}}',
247
+ validator: (v: string | number) => validateIfNoMacro(v, z.enum(['active', 'archived', '']).optional()),
246
248
  rules: { sections: [] },
247
249
  },
248
250
  {
249
251
  attribute: 'additional_image_link',
250
252
  label: 'Additional image link',
251
253
  description:
252
- 'Links to up to 20 additional images of your item, separated by a comma (,), semicolon (;), space ( ) or vertical bar (|). Follow the same image specifications as image_link',
254
+ 'Links to up to 20 additional images of your item, separated by a comma (,), semicolon (;), space ( ) or vertical bar (|). Follow the same image specifications as image_link. Example: http://www.jaspersmarket.com/products/shirt2.jpg, http://www.jaspersmarket.com/products/shirt3.jpg',
253
255
  required: false,
254
256
  type: 'macro-input',
255
257
  defaultValue: '{{shopify.images}}',
@@ -259,7 +261,7 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
259
261
  attribute: 'gtin',
260
262
  label: 'GTIN',
261
263
  description:
262
- 'The item’s Global Trade Item Number (GTIN). Providing a GTIN is highly recommended to help classify the item. The GTIN may appear on the barcode, packaging or book cover. Not all items have a GTIN. Only provide one if you’re sure it’s correct. Don’t include dashes or spaces',
264
+ 'The item’s Global Trade Item Number (GTIN). Providing a GTIN is highly recommended to help classify the item. The GTIN may appear on the barcode, packaging or book cover. Not all items have a GTIN. Only provide one if you’re sure it’s correct. Don’t include dashes or spaces. Example: 4011200296908',
263
265
  required: false,
264
266
  type: 'macro-input',
265
267
  defaultValue: '',
@@ -269,11 +271,11 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
269
271
  attribute: 'mpn',
270
272
  label: 'MPN',
271
273
  description:
272
- 'The item’s manufacturer part number (MPN), a unique alphanumeric code assigned by the manufacturer in some industries to identify a specific item or part. It may appear on the packaging, label or etched directly onto the item. Providing a MPN is recommended to help classify the item if there is no GTIN. Not all items have a MPN. Only provide one if you’re sure it’s correct. Character limit: 100',
274
+ 'The item’s manufacturer part number (MPN), a unique alphanumeric code assigned by the manufacturer in some industries to identify a specific item or part. It may appear on the packaging, label or etched directly onto the item. Providing a MPN is recommended to help classify the item if there is no GTIN. Not all items have a MPN. Only provide one if you’re sure it’s correct. Character limit: 100. Example: JAS12345PER',
273
275
  required: false,
274
276
  type: 'macro-input',
275
277
  defaultValue: '',
276
- validator: (v: string | number) => validate(v, z.string()),
278
+ validator: (v: string | number) => validate(v, z.string().optional()),
277
279
  rules: { sections: [] },
278
280
  },
279
281
  {
@@ -300,54 +302,59 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
300
302
  attribute: 'color',
301
303
  label: 'Color',
302
304
  description:
303
- 'The main color of the item. Describe the color in words, not a hex code. Character limit: 200',
305
+ 'The main color of the item. Describe the color in words, not a hex code. Character limit: 200. Example: Royal blue',
304
306
  required: false,
305
307
  type: 'macro-input',
306
308
  defaultValue: '',
307
309
  rules: { sections: [] },
308
- validator: (v: string | number) => validate(v, z.string()),
310
+ validator: (v: string | number) => validate(v, z.string().optional()),
309
311
  },
310
312
  {
311
313
  attribute: 'gender',
312
314
  label: 'Gender',
313
- description: 'The gender your item is targeted towards. Supported values: female, male, unisex',
315
+ description:
316
+ 'The gender your item is targeted towards. Supported values: female, male, unisex. Example: female',
314
317
  required: false,
315
318
  type: 'macro-input',
316
319
  defaultValue: '',
317
320
  rules: { sections: [] },
318
- validator: v => validate(v, z.enum(['female', 'male', 'unisex'])),
321
+ validator: v => validate(v, z.enum(['female', 'male', 'unisex', '']).optional()),
319
322
  },
320
323
  {
321
324
  attribute: 'age_group',
322
325
  label: 'Age group',
323
326
  description:
324
- 'The age group that the item is targeted towards. Supported values: adult, all ages, teen, kids, toddler, infant, newborn',
327
+ 'The age group that the item is targeted towards. Supported values: adult, all ages, teen, kids, toddler, infant, newborn. Example: adult',
325
328
  required: false,
326
329
  type: 'macro-input',
327
330
  defaultValue: '',
328
331
  rules: { sections: [] },
329
- validator: v => validate(v, z.enum(['adult', 'all ages', 'teen', 'kids', 'toddler', 'infant', 'newborn'])),
332
+ validator: v =>
333
+ validate(
334
+ v,
335
+ z.enum(['adult', 'all ages', 'teen', 'kids', 'toddler', 'infant', 'newborn', '']).optional()
336
+ ),
330
337
  },
331
338
  {
332
339
  attribute: 'material',
333
340
  label: 'Material',
334
341
  description:
335
- 'The material the item is made from, such as cotton, polyester, denim or leather. Character limit: 200',
342
+ 'The material the item is made from, such as cotton, polyester, denim or leather. Character limit: 200. Example: Organic cotton',
336
343
  required: false,
337
344
  type: 'macro-input',
338
345
  defaultValue: '',
339
346
  rules: { sections: [] },
340
- validator: (v: string | number) => validate(v, z.string()),
347
+ validator: (v: string | number) => validate(v, z.string().optional()),
341
348
  },
342
349
  {
343
350
  attribute: 'pattern',
344
351
  label: 'Pattern',
345
- description: 'The pattern or graphic print on the item. Character limit: 100',
352
+ description: 'The pattern or graphic print on the item. Character limit: 100. Example: Stripes',
346
353
  required: false,
347
354
  type: 'macro-input',
348
355
  defaultValue: '',
349
356
  rules: { sections: [] },
350
- validator: (v: string | number) => validate(v, z.string().max(100)),
357
+ validator: (v: string | number) => validate(v, z.string().max(100).optional()),
351
358
  },
352
359
  {
353
360
  attribute: 'rich_text_description',
@@ -358,7 +365,7 @@ export const facebookFeedTemplate: XmlFeedTemplateType = {
358
365
  type: 'macro-input',
359
366
  defaultValue: '{{shopify.description_html}}',
360
367
  rules: { sections: [] },
361
- validator: (v: string | number) => validate(v, z.string()),
368
+ validator: (v: string | number) => validate(v, z.string().optional()),
362
369
  },
363
370
  ...[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19].map(i => ({
364
371
  ...videoMapping,