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 +7 -0
- package/dist/utils/feed-templates/facebook.template.d.ts.map +1 -1
- package/dist/utils/feed-templates/facebook.template.js +46 -44
- package/dist/utils/feed-templates/facebook.template.js.map +1 -1
- package/package.json +1 -1
- package/src/utils/feed-templates/facebook.template.ts +51 -44
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,
|
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) =>
|
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) =>
|
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 =>
|
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) =>
|
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) =>
|
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:
|
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) =>
|
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
@@ -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) =>
|
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) =>
|
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 =>
|
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) =>
|
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) =>
|
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:
|
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) =>
|
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:
|
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 =>
|
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,
|