Optimization Guide
Shopify Handmade & Artisan Product Schema — Maker Identity, Production Methods & Material Provenance JSON-LD
AI shopping agents answering "handmade ceramic mugs by a Portland potter," "Fair Trade certified hand-woven baskets," or "small-batch hot sauce made in Vermont" need machine-readable maker identity, production method, material origin, and sustainability certification data — none of which Shopify's default Product JSON-LD outputs. The artisan economy is built on provenance and story, but those attributes are only commercially visible when they are machine-readable.
creator with Person @type for individual makers; manufacturer with Organization for studio brands; use both together when the maker operates under a studio name. Use additionalProperty for productionMethod, materialOrigin, craftTradition, editionType, and countryOfOrigin (not a standard schema.org property on Product). Use hasCertification for Fair Trade, B Corp, FSC, GOTS, and Rainforest Alliance. Use isVariantOf for natural-variation variants. Store everything in an artisan.* metafield namespace. Cross-reference Visual Artwork & Collectibles Schema for fine art products.
Why Artisan Products Are Invisible to AI Provenance Queries
Handmade and artisan products command price premiums because buyers are purchasing provenance, process, and maker identity alongside the object itself. A hand-thrown stoneware mug by a named potter is worth more than a mass-produced mug of identical dimensions precisely because the maker, materials, and method are verifiable. AI shopping agents are increasingly the first touchpoint where buyers evaluate whether a product qualifies as "genuinely handmade" — and they can only evaluate what is machine-readable.
The problem is that most artisan Shopify stores communicate provenance exclusively through product descriptions and brand storytelling — compelling to human readers, invisible to AI agents. Shopify's default Product JSON-LD outputs name, price, and availability. It does not output the potter's name, the clay body origin, the firing method, or the fact that this is one of eight pieces fired in that kiln run. All of those signals — the signals that justify the artisan premium — are lost at the structured data layer.
Schema.org does not have a dedicated HandmadeProduct type. Artisan products use the standard Product type, augmented with creator for maker identity, additionalProperty for production method signals, hasCertification for sustainability credentials, and careful use of inventory-level signals for scarcity. The result is a machine-readable provenance layer that AI agents can parse, cite, and surface in response to "handmade by" queries.
Artisan AI query dimensions requiring structured data
| Query dimension | Example AI query | Required structured signal | Default Shopify output |
|---|---|---|---|
| Maker identity | "ceramics by [artisan name]" | creator: Person name |
Not present |
| Production method | "hand-thrown wheel-formed stoneware" | productionMethod additionalProperty |
Not present |
| Material origin | "locally sourced Pacific Northwest wool" | materialOrigin additionalProperty |
Not present |
| Craft tradition | "Japanese sashiko embroidery" | craftTradition additionalProperty |
Not present |
| Country of origin | "made in USA handmade pottery" | countryOfOrigin additionalProperty |
Not present |
| Edition / scarcity | "one of a kind ceramic bowl" | editionType: "One-of-a-kind" |
Not present |
| Sustainability cert | "Fair Trade certified handmade basket" | hasCertification Fair Trade USA |
Not present |
| Studio brand | "pottery from [studio name]" | manufacturer: Organization name |
brand name only (if set) |
creator vs manufacturer: When to Use Each
Schema.org defines both creator and manufacturer as properties of Product, and they serve distinct purposes in artisan commerce:
creatorwithPerson@type — identifies the individual human who made the item. Use for: solo makers, studio potters, independent weavers, individual woodworkers, and any product where the named human maker is part of the product's value proposition. IncludesameAsURLs for the maker's Etsy shop, Instagram, personal website, or other canonical identity references so AI agents can cross-reference maker identity across platforms.manufacturerwithOrganization@type — identifies the studio, workshop, or small business entity responsible for production. Use for: a named studio brand, a family workshop, a cooperative of makers, or any artisan business operating under a business name. Even a one-person studio should usemanufacturer: Organizationfor the brand entity.- Both together — when an individual maker (creator: Person) operates under a studio name (manufacturer: Organization), use both. The
creatoridentifies "who made this specific item" and themanufactureridentifies "under what brand/studio." This is the most complete and AI-searchable artisan identity pattern.
Note: author is a property of creative works (Article, Book, CreativeWork) — it is not defined on Product. Using author on a Product block is technically incorrect. Some AI agents may parse it opportunistically, but use creator for maker attribution on products.
{
"@type": "Product",
"name": "Hand-thrown Stoneware Mug",
"brand": {
"@type": "Brand",
"name": "Earthworks Studio"
}
// No creator Person
// No manufacturer Org
// AI: cannot match
// "ceramics by [artisan]"
}
{
"@type": "Product",
"creator": {
"@type": "Person",
"name": "Maya Chen",
"jobTitle": "Studio Potter",
"sameAs": [
"https://earthworksstudio.com",
"https://www.instagram.com/mayachen_pottery"
]
},
"manufacturer": {
"@type": "Organization",
"name": "Earthworks Studio",
"url": "https://earthworksstudio.com"
}
}
Complete JSON-LD Example: Hand-Thrown Stoneware Mug
This example shows a fully marked-up artisan ceramic product with maker identity, production method, material origin, craft tradition, country of origin, scarcity signals, and Fair Trade certification.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Hand-Thrown Speckled Stoneware Mug — 14oz — Ash Grey Glaze",
"description": "Wheel-thrown stoneware mug with hand-applied ash grey glaze, food-safe interior, dishwasher-safe. Each mug is unique due to the hand-forming process. Clay sourced from Pacific Northwest deposits. Fired in a cone 10 reduction atmosphere kiln. One of only 8 made in this kiln run.",
"url": "https://example.com/products/stoneware-mug-ash-grey",
"sku": "MUGH-14OZ-ASHGREY-008",
"image": [
"https://example.com/cdn/shop/products/stoneware-mug-ash-grey-01.jpg",
"https://example.com/cdn/shop/products/stoneware-mug-ash-grey-02.jpg"
],
"brand": { "@type": "Brand", "name": "Earthworks Studio" },
"creator": {
"@type": "Person",
"name": "Maya Chen",
"jobTitle": "Studio Potter",
"description": "Maya Chen is a studio potter based in Portland, Oregon, working in wheel-thrown and hand-built stoneware. She has been working with clay for 14 years.",
"sameAs": [
"https://earthworksstudio.com/about",
"https://www.instagram.com/mayachen_pottery",
"https://www.etsy.com/shop/EarthworksStudioPDX"
]
},
"manufacturer": {
"@type": "Organization",
"name": "Earthworks Studio",
"url": "https://earthworksstudio.com",
"address": {
"@type": "PostalAddress",
"addressLocality": "Portland",
"addressRegion": "OR",
"addressCountry": "US"
}
},
"offers": {
"@type": "Offer",
"price": "48.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"inventoryLevel": {
"@type": "QuantitativeValue",
"value": 1
},
"url": "https://example.com/products/stoneware-mug-ash-grey"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "73",
"bestRating": "5"
},
"hasCertification": [
{
"@type": "Certification",
"name": "Lead-Free Clay Body — NSF/ANSI 51 Compliant",
"issuedBy": {
"@type": "Organization",
"name": "NSF International",
"url": "https://www.nsf.org"
},
"certificationStatus": "CertificationActive"
}
],
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "productionMethod",
"name": "Production Method",
"value": "Hand-thrown wheel-formed stoneware, individually trimmed and hand-applied glaze"
},
{
"@type": "PropertyValue",
"propertyID": "materialOrigin",
"name": "Material Origin",
"value": "Stoneware clay sourced from Pacific Northwest deposits (Oregon and Washington State)"
},
{
"@type": "PropertyValue",
"propertyID": "material",
"name": "Material",
"value": "Stoneware clay body, cone 10 reduction fired, food-safe ash grey glaze"
},
{
"@type": "PropertyValue",
"propertyID": "technique",
"name": "Technique",
"value": "Wheel-throwing, cone 10 reduction atmosphere kiln firing"
},
{
"@type": "PropertyValue",
"propertyID": "editionType",
"name": "Edition Type",
"value": "Limited kiln run of 8 pieces"
},
{
"@type": "PropertyValue",
"propertyID": "editionSize",
"name": "Edition Size",
"value": {
"@type": "QuantitativeValue",
"value": 8,
"unitText": "pieces in kiln run"
}
},
{
"@type": "PropertyValue",
"propertyID": "countryOfOrigin",
"name": "Country of Origin",
"value": "United States"
},
{
"@type": "PropertyValue",
"propertyID": "naturalVariation",
"name": "Natural Variation",
"value": "Each piece is unique due to the hand-forming process and kiln atmosphere. Actual colors and surface texture will vary slightly from photos."
}
]
}
</script>
Complete JSON-LD Example: Hand-Dyed Sashiko Textile (Craft Tradition)
This example marks up a textile with a specific craft tradition (Japanese Sashiko embroidery), natural dye material origin, GOTS organic certification, and made-to-order availability with lead time.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Hand-Dyed Indigo Sashiko Tote Bag — Persimmon Pattern — Organic Cotton",
"description": "Hand-stitched Sashiko tote bag in traditional persimmon pattern on GOTS-certified organic cotton, naturally dyed with indigo. Made to order — approximately 10–14 business days production time. Each bag is individually stitched.",
"url": "https://example.com/products/indigo-sashiko-tote-persimmon",
"sku": "TOTE-SASHIKO-IND-PERS-MTO",
"brand": { "@type": "Brand", "name": "Stitch & Field Studio" },
"creator": {
"@type": "Person",
"name": "Akiko Tanaka",
"jobTitle": "Textile Artist, Sashiko Practitioner",
"sameAs": [
"https://stitchandfield.com/about-akiko",
"https://www.instagram.com/stitchandfield"
]
},
"manufacturer": {
"@type": "Organization",
"name": "Stitch and Field Studio",
"url": "https://stitchandfield.com"
},
"offers": {
"@type": "Offer",
"price": "185.00",
"priceCurrency": "USD",
"availability": "https://schema.org/PreOrder",
"url": "https://example.com/products/indigo-sashiko-tote-persimmon",
"deliveryLeadTime": {
"@type": "QuantitativeValue",
"minValue": 10,
"maxValue": 14,
"unitCode": "DAY",
"unitText": "business days"
}
},
"hasCertification": [
{
"@type": "Certification",
"name": "GOTS — Global Organic Textile Standard",
"certificationIdentification": "GOTS-TX-2025-00432",
"issuedBy": {
"@type": "Organization",
"name": "Global Standard gGmbH",
"url": "https://global-standard.org"
},
"certificationStatus": "CertificationActive"
},
{
"@type": "Certification",
"name": "OEKO-TEX Standard 100",
"issuedBy": {
"@type": "Organization",
"name": "OEKO-TEX Association",
"url": "https://www.oeko-tex.com"
},
"certificationStatus": "CertificationActive"
}
],
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "productionMethod",
"name": "Production Method",
"value": "Hand-stitched traditional Sashiko embroidery, individually dyed and stitched to order"
},
{
"@type": "PropertyValue",
"propertyID": "craftTradition",
"name": "Craft Tradition",
"value": "Japanese Sashiko embroidery — a traditional Japanese reinforcement stitching technique originating in the Edo period"
},
{
"@type": "PropertyValue",
"propertyID": "materialOrigin",
"name": "Material Origin",
"value": "GOTS-certified organic cotton woven in Japan; natural indigo dye sourced from Tokushima Prefecture, Japan"
},
{
"@type": "PropertyValue",
"propertyID": "material",
"name": "Material",
"value": "100% GOTS-certified organic cotton, naturally dyed with Tokushima indigo"
},
{
"@type": "PropertyValue",
"propertyID": "technique",
"name": "Technique",
"value": "Hand-stitched Sashiko (persimmon kaki pattern), natural indigo vat dyeing"
},
{
"@type": "PropertyValue",
"propertyID": "editionType",
"name": "Edition Type",
"value": "Made to order — each piece individually stitched"
},
{
"@type": "PropertyValue",
"propertyID": "countryOfOrigin",
"name": "Country of Origin",
"value": "Japan"
}
]
}
</script>
Artisan Certifications: hasCertification Reference
Sustainability and provenance certifications are primary filters in AI queries for handmade and ethical goods. Unlike mass-market product certifications (which focus on safety compliance), artisan certifications signal environmental stewardship, fair labor practices, and material sourcing integrity — all of which command premiums in the markets AI agents are increasingly serving.
| Certification | Product types | Issuing organization | AI queries matched |
|---|---|---|---|
| Fair Trade USA | Food, textiles, home goods from small producer cooperatives | Fair Trade USA | "Fair Trade certified handmade," "ethically sourced artisan goods" |
| B Corp Certified | Any product from a B Corp company | B Lab | "B Corp certified brand," "ethical small business maker" |
| FSC Certified | Wood products, paper, cork | Forest Stewardship Council | "FSC certified wood cutting board," "sustainable wood artisan" |
| GOTS (Global Organic Textile Standard) | Organic cotton, wool, and other natural textiles | Global Standard gGmbH | "GOTS certified organic cotton tote," "organic textile artisan" |
| Rainforest Alliance Certified | Agricultural materials (cacao, coffee, palm fiber) | Rainforest Alliance | "Rainforest Alliance certified cacao," "sustainable sourcing" |
| OEKO-TEX Standard 100 | Textiles — tested for harmful substances | OEKO-TEX Association | "OEKO-TEX certified baby textile," "chemical-free fabric artisan" |
| Bluesign Approved | Synthetic and performance textiles | bluesign technologies ag | "bluesign approved sustainable fabric" |
| Certified B Corp + 1% for the Planet | Any product from member brand | 1% for the Planet | "1% for the Planet member brand handmade" |
countryOfOrigin: The Missing Property
Schema.org does not define countryOfOrigin as a standard property on Product. The most commonly cited workaround is additionalProperty with propertyID: "countryOfOrigin" and a country name string value. Use the full country name ("United States", "Japan", "Mexico") rather than ISO 3166-1 alpha-2 codes — AI agents match natural language country names more reliably than codes for "made in" queries.
Important distinction: countryOfOrigin is the country where the product was made, not the country where the seller is located. The seller's country is inferred from the Organization address.addressCountry. For artisan imports — a US shop selling Japanese ceramics, or a UK shop selling Peruvian textiles — these will differ. AI agents filtering for "made in USA" or "imported from Japan" use the countryOfOrigin additionalProperty to determine production origin independently of seller location.
For "Made in USA" FTC compliance, the FTC requires that virtually all of the product's components, processing, and labor originate in the United States. If your product qualifies under FTC's "all or virtually all" standard, use "value": "United States". For products with partial US content, use a more specific value: "value": "Assembled in United States with imported components".
{
"@type": "PropertyValue",
"propertyID": "countryOfOrigin",
"name": "Country of Origin",
"value": "United States"
},
{
"@type": "PropertyValue",
"propertyID": "madeInUSA",
"name": "Made in USA",
"value": "Yes — all components, processing, and labor in Portland, Oregon, USA"
}
Edition Type and Inventory Scarcity Signals
Scarcity and uniqueness are fundamental value drivers for artisan products. Machine-readable edition and inventory signals let AI agents answer "one of a kind" and "limited edition" queries without relying on product title text parsing. Combine additionalProperty editionType with Offer inventoryLevel for the strongest scarcity signal.
| Edition type | editionType value | Offer signals | AI query matched |
|---|---|---|---|
| One of a kind | One-of-a-kind |
availability: InStock, inventoryLevel: 1 |
"one of a kind ceramic piece" |
| Limited edition | Limited edition of 25 |
inventoryLevel: N (remaining) |
"limited edition hand-printed textile" |
| Small batch | Small batch — 12 pieces per kiln run |
inventoryLevel: N |
"small-batch handmade pottery" |
| Made to order | Made to order |
availability: PreOrder + deliveryLeadTime |
"custom made-to-order leather goods" |
| Open edition | Open edition — made year-round |
availability: InStock |
"handmade soap available in stock" |
For low-inventory scarcity patterns that apply beyond handmade products, see Shopify Low Inventory Scarcity Signal Schema. For made-to-order and custom product patterns, see Shopify Made-to-Order Custom Product Schema.
isVariantOf and Natural Material Variation
Handmade products with color or size variants present a unique challenge: because the items are made by hand with natural materials, each variant may look visually different from the product photos in ways that are expected and desirable, not defects. Schema.org's isVariantOf relationship links individual Product variants back to their parent ProductGroup — this is the correct structure for handmade items with multiple variants that share a maker, production method, and craft tradition but differ in size, color, or glaze.
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Hand-Thrown Stoneware Bowl — Maker's Choice Glaze",
"description": "Set of wheel-thrown stoneware bowls in Maya Chen's current glaze rotation. Each bowl is unique — glaze color, surface texture, and exact dimensions will vary from photos.",
"url": "https://example.com/products/stoneware-bowl",
"brand": { "@type": "Brand", "name": "Earthworks Studio" },
"creator": {
"@type": "Person",
"name": "Maya Chen",
"jobTitle": "Studio Potter"
},
"variesBy": ["https://schema.org/size", "https://schema.org/color"],
"hasVariant": [
{
"@type": "Product",
"name": "Hand-Thrown Stoneware Bowl — Small (5–6 inch) — Ash Grey",
"isVariantOf": {
"@id": "https://example.com/products/stoneware-bowl"
},
"color": "Ash Grey",
"size": "Small (5–6 inch)",
"offers": {
"@type": "Offer",
"price": "42.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"inventoryLevel": { "@type": "QuantitativeValue", "value": 3 }
},
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "naturalVariation",
"name": "Natural Variation",
"value": "Each bowl varies in exact diameter (4.8–6.2 in), glaze surface, and color due to hand-forming and kiln atmosphere. Photos are representative."
},
{
"@type": "PropertyValue",
"propertyID": "editionType",
"name": "Edition Type",
"value": "Small batch — 3 remaining from current kiln run"
}
]
},
{
"@type": "Product",
"name": "Hand-Thrown Stoneware Bowl — Large (7–8 inch) — Iron Red",
"isVariantOf": {
"@id": "https://example.com/products/stoneware-bowl"
},
"color": "Iron Red",
"size": "Large (7–8 inch)",
"offers": {
"@type": "Offer",
"price": "58.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"inventoryLevel": { "@type": "QuantitativeValue", "value": 2 }
}
}
]
}
Artisan Collection: ItemList for a Maker's Catalog
When presenting multiple handmade items from a single maker, use an ItemList (or CollectionPage schema on the collection page) to group products by maker identity. This enables AI agents to answer "show me all pottery by Maya Chen" or "browse Earthworks Studio collection" as a single structured query against the collection rather than individual product pages.
{
"@context": "https://schema.org",
"@type": "ItemList",
"name": "Earthworks Studio — Maya Chen Pottery Collection",
"description": "Hand-thrown stoneware pottery by Portland studio potter Maya Chen. Wheel-formed bowls, mugs, plates, and vases in reduction-fired glazes.",
"url": "https://example.com/collections/earthworks-studio",
"creator": {
"@type": "Person",
"name": "Maya Chen",
"jobTitle": "Studio Potter",
"sameAs": ["https://earthworksstudio.com/about"]
},
"numberOfItems": 24,
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"url": "https://example.com/products/stoneware-mug-ash-grey",
"name": "Hand-Thrown Stoneware Mug — Ash Grey"
},
{
"@type": "ListItem",
"position": 2,
"url": "https://example.com/products/stoneware-bowl-iron-red",
"name": "Hand-Thrown Stoneware Bowl — Iron Red"
}
]
}
Shopify Liquid Snippet for Artisan Schema
Store artisan-specific data in an artisan metafield namespace. Create these in Shopify Admin → Settings → Custom data → Products. The snippet reads all maker identity, production method, and certification metafields and outputs the complete artisan JSON-LD block.
| Metafield key | Type | Maps to | Example |
|---|---|---|---|
artisan.artisan_name |
Single-line text | creator.name (Person) |
Maya Chen |
artisan.artisan_job_title |
Single-line text | creator.jobTitle |
Studio Potter |
artisan.artisan_url |
URL | creator.sameAs[0] |
https://earthworksstudio.com/about |
artisan.production_method |
Single-line text | productionMethod additionalProperty |
Hand-thrown wheel-formed stoneware |
artisan.material_origin |
Single-line text | materialOrigin additionalProperty |
Pacific Northwest clay deposits |
artisan.craft_tradition |
Single-line text | craftTradition additionalProperty |
Japanese Sashiko embroidery |
artisan.country_of_origin |
Single-line text | countryOfOrigin additionalProperty |
United States |
artisan.edition_type |
Single-line text | editionType additionalProperty |
One-of-a-kind |
artisan.certifications |
JSON | hasCertification array |
[{"name":"Fair Trade USA","issuer":"Fair Trade USA","url":"https://www.fairtradeusa.org","id":"FT-2025-00412"}] |
{% comment %} artisan-schema.liquid — outputs artisan/maker identity JSON-LD block {% endcomment %}
{% assign is_artisan = false %}
{% if product.metafields.artisan.artisan_name != blank %}{% assign is_artisan = true %}{% endif %}
{% if product.metafields.artisan.production_method != blank %}{% assign is_artisan = true %}{% endif %}
{% assign artisan_types = 'Handmade,Artisan,Pottery,Ceramics,Textile,Weaving,Woodwork,Jewelry,Candles,Soap' | split: ',' %}
{% for at in artisan_types %}
{% if product.type == at %}{% assign is_artisan = true %}{% endif %}
{% endfor %}
{% if is_artisan %}
{% assign a_name = product.metafields.artisan.artisan_name %}
{% assign a_title = product.metafields.artisan.artisan_job_title %}
{% assign a_url = product.metafields.artisan.artisan_url %}
{% assign a_prod_meth = product.metafields.artisan.production_method %}
{% assign a_mat_orig = product.metafields.artisan.material_origin %}
{% assign a_craft_trad = product.metafields.artisan.craft_tradition %}
{% assign a_country = product.metafields.artisan.country_of_origin %}
{% assign a_edition = product.metafields.artisan.edition_type %}
{% assign a_certs_json = product.metafields.artisan.certifications %}
{% assign a_inv_level = product.selected_or_first_available_variant.inventory_quantity %}
{% endif %}
Save as snippets/artisan-schema.liquid and render from your product template: {% raw %}{% render 'artisan-schema' %}{% endraw %}.
artMedium: The VisualArtwork Trap
Schema.org defines artMedium as a property of VisualArtwork — not Product. If your handmade item is a fine art piece (painting, sculpture, limited-edition print) it may qualify as VisualArtwork, in which case artMedium is appropriate. For a studio pottery mug, a hand-woven tote bag, or a hand-carved wooden spoon — these are products, not visual artworks in the schema.org sense.
For non-art handmade products, use additionalProperty with propertyID: "material" for the physical material ("100% GOTS-certified organic cotton") and propertyID: "technique" for the production technique ("hand-thrown, cone 10 reduction fired"). This is more semantically precise than forcing a non-artwork product into the VisualArtwork type to get access to artMedium. For fine art products — paintings, sculptures, prints — see Shopify Visual Artwork & Collectibles Schema.
5 Common Artisan Product Schema Mistakes
| # | Mistake | Impact | Fix |
|---|---|---|---|
| 1 | Using author instead of creator for the maker |
author is not a valid property on Product in schema.org — it is a property of CreativeWork. Validators flag it; AI agents may ignore it. Maker identity is lost |
Use creator with Person @type for individual makers. Use manufacturer with Organization @type for studio brands. Use both together when applicable |
| 2 | Setting countryOfOrigin directly as a top-level Product property |
Schema.org does not define countryOfOrigin on Product. Placing it directly on the Product object may generate validation errors and will be ignored by strict AI parsers |
Use additionalProperty with propertyID: "countryOfOrigin" and a country name string value. Do not use ISO codes — use full country names for natural language AI matching |
| 3 | Using artMedium on a non-artwork handmade product |
artMedium is a property of VisualArtwork, not Product. Applying it to a stoneware mug or hand-woven bag forces an incorrect @type or generates validation errors |
Use additionalProperty propertyID: "material" for material composition and propertyID: "technique" for production method. Reserve VisualArtwork and artMedium for actual fine art products |
| 4 | No inventoryLevel on one-of-a-kind or low-inventory items |
AI agents filtering for "one of a kind" or "last in stock" handmade items rely on machine-readable inventory level signals. If inventoryLevel is absent, the scarcity signal comes only from the product title, which AI agents treat as unreliable |
Set inventoryLevel: QuantitativeValue value: 1 for one-of-a-kind items. For limited editions with remaining stock, set the actual remaining quantity. Combine with editionType additionalProperty for the strongest scarcity signal |
| 5 | No sameAs URLs on the creator Person object |
Without sameAs cross-references (Etsy shop URL, Instagram, maker website), AI agents cannot disambiguate the maker from other individuals with the same name or verify the maker identity claim. Maker identity becomes a text string rather than a verifiable entity |
Add at minimum one sameAs URL to the maker's canonical web presence — their own website, verified Etsy shop URL, or Instagram profile. Multiple sameAs references strengthen identity disambiguation |
Frequently Asked Questions
Should I use 'author', 'creator', or 'manufacturer' for an individual maker on a handmade product?
Use creator with Person @type for an individual human maker. Use manufacturer with Organization for a studio or brand. Use both together when an individual maker operates under a studio name. Do not use author on Product — it is defined on CreativeWork, not Product. Include sameAs URLs on the Person object to connect maker identity across Etsy, Instagram, and the maker's own website.
How do I signal 'made in USA' or country of origin in schema for handmade products?
Use additionalProperty with propertyID: "countryOfOrigin" and the full country name: "United States", "Japan", "Mexico". Schema.org does not define countryOfOrigin as a standard property on Product — the additionalProperty pattern is the correct workaround. Use the full country name rather than ISO codes for AI natural language matching. The seller's Organization address country is separate and distinct from production country of origin.
How should I mark up a 'one of a kind' or 'limited edition' handmade item in schema?
Use additionalProperty propertyID: "editionType" with value "One-of-a-kind" or "Limited edition of [N]". Reinforce with Offer inventoryLevel: QuantitativeValue value: 1 for one-of-a-kind items. For made-to-order, set Offer availability: PreOrder and add deliveryLeadTime. For more on scarcity signals, see Shopify Low Inventory Scarcity Signal Schema. For made-to-order patterns, see Shopify Made-to-Order Custom Product Schema.
How do I handle natural material variation in handmade product variants?
Use isVariantOf to link each variant Product back to its parent ProductGroup, and add additionalProperty propertyID: "naturalVariation" with a plain-language description of expected variation: "Each piece varies in exact color and surface texture due to the hand-forming process and kiln atmosphere." This signals to AI agents that visual differences are expected and not defects — important context for AI agents that surface product image data alongside recommendations. For visual artwork with natural variation, see Shopify Visual Artwork & Collectibles Schema.
What certifications should I add to hasCertification for handmade and sustainable products?
Prioritize: Fair Trade USA, B Corp Certified, FSC Certified (wood products), GOTS (organic textiles), Rainforest Alliance, and OEKO-TEX Standard 100 (textiles). Each hasCertification entry should include issuedBy Organization with url so AI agents can verify the credential against the issuing body's public registry. Also add certificationIdentification when you have a specific certification number — this is the strongest verifiability signal for AI agents evaluating certification authenticity.
Is your artisan catalog invisible to AI provenance queries?
CatalogScan audits your Shopify store's structured data and flags missing maker identity, production method, country of origin, and certification fields across your entire artisan product catalog.
Run Free ScanRelated Resources
- Shopify Visual Artwork & Collectibles Schema — VisualArtwork, artMedium & VisualArtworkType
- Shopify Made-to-Order Custom Product Schema — PreOrder, Lead Time & Customization
- Shopify Low Inventory Scarcity Signal Schema — inventoryLevel & LimitedAvailability
- E-commerce Country of Origin & Provenance Schema
- Product Material Composition Schema — Material, Technique & Composition
- CatalogScan Blog — AI Shopping Agent Optimization