Tento use all declared Shopify definitions, you can find all of them here
single_line_text_field
string
A single-line text field. String value types can store up to five million characters.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .singleLineTextField () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .singleLineTextField ({
validations : (v) => [ v .min ( 1 )] ,
});
fieldDefinition : (f) => f .singleLineTextField ({
validations : (v) => [ v .max ( 1 )] ,
});
fieldDefinition : (f) => f .singleLineTextField ({
validations : (v) => [ v .regex ( "." )] ,
});
Choices
A list of up to 128 predefined options that limit the values allowed for the metafield.
fieldDefinition : (f) => f .singleLineTextField ({
validations : (v) => [ v .choices ([ 'choice1' , 'choice2' ])] ,
});
list.single_line_text_field
string[]
A list of single-line text fields.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .singleLineTextList () ,
});
multi_line_text_field
string
A multi-line text field. String value types can store up to five million characters.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .multiLineTextField () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .multiLineTextField ({
validations : (v) => [ v .min ( 1 )] ,
});
fieldDefinition : (f) => f .multiLineTextField ({
validations : (v) => [ v .max ( 1 )] ,
});
fieldDefinition : (f) => f .multiLineTextField ({
validations : (v) => [ v .regex ( "." )] ,
});
---
number_decimal
string
A number with decimal places in the range of +/-9999999999999.999999999. String value types can store up to five million characters.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .decimal () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .decimal ({
validations : (v) => [ v .min ( 1 )] ,
});
fieldDefinition : (f) => f .decimal ({
validations : (v) => [ v .max ( 1 )] ,
});
Maximum precision
Sets the maximum number of decimal places to store for a decimal number
fieldDefinition : (f) => f .decimal ({
validations : (v) => [ v .maxPrecision ( 1 )] ,
});
list.number_decimal
string[]
A list of numbers with decimal places in the range of +/-9999999999999.999999999.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .decimalList () ,
});
---
url
string
A URL with one of the allowed schemes: https
, http
, mailto
, sms
, tel
. String value types can store up to five million characters.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .url () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .url ({
validations : (v) => [ v .allowedDomains ( "google.com" )] ,
});
list.url
string[]
A list of URLs with one of the allowed schemes: https
, http
, mailto
, sms
, tel
.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .urlList () ,
});
---
number_integer
integer
A whole number in the range of +/-9,007,199,254,740,991.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .integer () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .integer ({
validations : (v) => [ v .min ( 1 )] ,
});
fieldDefinition : (f) => f .integer ({
validations : (v) => [ v .max ( 1 )] ,
});
list.number_integer
string[]
A list of whole numbers in the range of +/-9,007,199,254,740,991.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .integerList () ,
});
---
date
string
A date in ISO 8601 format without a presumed timezone. String value types can store up to five million characters.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .date () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .date ({
validations : (v) => [ v .min ( "2024-01-01" )] ,
});
// or
fieldDefinition : (f) => f .date ({
validations : (v) => [ v .min ( new Date ( "2024-01-01" ))] ,
});
fieldDefinition : (f) => f .date ({
validations : (v) => [ v .max ( "2024-01-01" )] ,
});
// or
fieldDefinition : (f) => f .date ({
validations : (v) => [ v .min ( new Date ( "2024-01-01" ))] ,
});
list.date
string[]
A list of dates in ISO 8601 format without a presumed timezone.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .dateList () ,
});
---
date_time
string
A date and time in ISO 8601 format without a presumed timezone. Defaults to Greenwich Mean Time (GMT). String value types can store up to five million characters.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .dateTime () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .dateTime ({
validations : (v) => [ v .min ( "2024-01-01" )] ,
});
// or
fieldDefinition : (f) => f .dateTime ({
validations : (v) => [ v .min ( new Date ( "2024-01-01" ))] ,
});
fieldDefinition : (f) => f .dateTime ({
validations : (v) => [ v .max ( "2024-01-01" )] ,
});
// or
fieldDefinition : (f) => f .dateTime ({
validations : (v) => [ v .min ( new Date ( "2024-01-01" ))] ,
});
list.date_time
string[]
A list of dates and times in ISO 8601 format without a presumed timezone. Defaults to Greenwich Mean Time (GMT).
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .dateTimeList () ,
});
---
dimension
json
A value and a unit of length. Valid unit values: in
, ft
, yd
, mm
, cm
, m
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .dimension () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .dimension ({
validations : (v) => [ v .min ({
value : 1 ,
unit : "CENTIMETERS" ,
})] ,
});
fieldDefinition : (f) => f .dimension ({
validations : (v) => [ v .max ({
value : 1 ,
unit : "CENTIMETERS" ,
})] ,
});
list.dimension
json[]
A list of values and a unit of length. Valid unit values: in
, ft
, yd
, mm
, cm
, m
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .dimensionList () ,
});
---
volume
json
A value and a unit of volume. Valid unit values: ml
, cl
, l
, m3
(cubic meters), us_fl_oz
, us_pt
, us_qt
, us_gal
, imp_fl_oz
, imp_pt
, imp_qt
, imp_gal
.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .volume () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .volume ({
validations : (v) => [ v .min ({
value : 1 ,
unit : "LITERS" ,
})] ,
});
fieldDefinition : (f) => f .volume ({
validations : (v) => [ v .max ({
value : 1 ,
unit : "LITERS" ,
})] ,
});
list.volume
json[]
A list of values and a unit of volume. Valid unit values: ml
, cl
, l
, m3
(cubic meters), us_fl_oz
, us_pt
, us_qt
, us_gal
, imp_fl_oz
, imp_pt
, imp_qt
, imp_gal
.
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .volumeList () ,
});
---
weight
json
A value and a unit of weight. Valid unit values: oz
, lb
, g
, kg
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .weight () ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .weight ({
validations : (v) => [ v .min ({
value : 1 ,
unit : "KILOGRAMS" ,
})] ,
});
fieldDefinition : (f) => f .weight ({
validations : (v) => [ v .max ({
value : 1 ,
unit : "KILOGRAMS" ,
})] ,
});
list.weight
json[]
A list of values and a unit of weight. Valid unit values: oz
, lb
, g
, kg
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .weightList () ,
});
---
string
A reference to a metaobject entry. You can use validations to set which metaobject definition the metaobject must be.
export const metaobjectDefinition = metaobject ({
name : "Metaobject Definition" ,
type : "metaobject_definition" ,
fieldDefinitions : (f) => ({
field : f .weight () ,
}) ,
});
export const metafieldDefinition = metafield ({
name : "Metafield Definition" ,
key : "metafield_definition" ,
namespace : "custom" ,
ownerType : "PRODUCT" ,
fieldDefinition : (f) => f .metaobjectReference ({
validations : (v) => [ v .metaobjectDefinitionType (() => metaobjectDefinition .type)]
}) ,
});
Custom validations that apply to values assigned to the field.
fieldDefinition : (f) => f .metaobjectReference ({
validations : (v) => [ v .metaobjectDefinitionType (() => < metaobjectDefinition >.type)] ,
});