Optimization Guide

Shopify Craft Supplies & Art Materials Schema — Yarn Gauge, Paint Pigment, ACMI Non-Toxic & Skill Level Structured Data

AI shopping agents handling queries like "worsted weight superwash merino yarn under $20," "professional grade acrylic paint with lightfastness I pigments," "ACMI non-toxic watercolor set for kids," or "vegan cotton yarn for crochet" need machine-readable fiber content, yarn weight categories, paint pigment codes, lightfastness ratings, and certification data. Shopify's default JSON-LD for a skein of yarn outputs name and price only — the absence of weight category, fiber content, and gauge makes every specification-filtered crafting query unmatched.

TL;DR For yarn: use additionalProperty for Yarn Weight Category (CYC 0-7), Gauge, Fiber Content, Yardage, Skein Weight (GRM), Superwash status, and Vegan flag. For paints: add Pigment Code, Pigment Name, Lightfastness (ASTM I-V), Paint Type (acrylic/oil/watercolor), and Opacity (transparent/opaque). Add hasCertification for ACMI AP non-toxic. Use suggestedAudience for age-appropriate and skill-level targeting. Use material for fiber composition summary.

Yarn Product Schema — Superwash Merino Example

Yarn buyers filter by weight category, fiber content, yardage, and machine-washability — four properties entirely absent from Shopify's default JSON-LD. This example covers the complete structured data for a skein of fingering weight superwash merino.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Malabrigo Sock Yarn — Superwash Merino, 440 yards, Worsted Weight — Ravelry Red",
  "description": "Malabrigo Sock single-ply superwash merino wool yarn. 100g skein, 440 yards (402m). Hand-dyed, kettle-dyed colorway. CYC Weight 1 — Super Fine (Fingering/Sock). Recommended for socks, shawls, lightweight garments. Machine washable (superwash treated wool).",
  "sku": "MAL-SOCK-RAVRED",
  "brand": { "@type": "Brand", "name": "Malabrigo Yarn" },
  "material": "100% Superwash Merino Wool",
  "suggestedAudience": {
    "@type": "PeopleAudience",
    "audienceType": "Intermediate to Advanced Knitter or Crocheter",
    "suggestedMinAge": 12
  },
  "additionalProperty": [
    { "@type": "PropertyValue", "name": "Craft Material Type", "value": "Yarn" },
    { "@type": "PropertyValue", "name": "Yarn Weight Category", "value": "1 — Super Fine (Fingering/Sock/Baby)", "description": "CYC Yarn Weight 1 — Super Fine. Knitting gauge: 27-32 sts per 4 inches on US size 1-3 (2.25-3.25mm) needles. Crochet gauge: 21-32 sc per 4 inches on US B-1 to E-4 (2.25-3.5mm) hook." },
    { "@type": "PropertyValue", "name": "Gauge (Knitting)", "value": "28 stitches x 36 rows per 4 inches on US size 2 (2.75mm) needles", "description": "Stockinette stitch gauge. Always swatch before beginning a project." },
    { "@type": "PropertyValue", "name": "Fiber Content", "value": "100% Superwash Merino Wool" },
    { "@type": "PropertyValue", "name": "Superwash", "value": "Yes", "description": "Superwash treated — machine washable on cold cycle, lay flat to dry." },
    { "@type": "PropertyValue", "name": "Vegan", "value": "No", "description": "Contains animal fiber (merino wool)" },
    { "@type": "PropertyValue", "name": "Natural Fiber", "value": "Yes — Animal Fiber" },
    { "@type": "PropertyValue", "name": "Yardage", "value": "440", "unitCode": "YRD", "description": "440 yards (402 meters) per 100g skein" },
    { "@type": "PropertyValue", "name": "Skein Weight", "value": "100", "unitCode": "GRM", "description": "100 gram skein" },
    { "@type": "PropertyValue", "name": "Ply Count", "value": "Single", "description": "Single ply construction — more rustic, softer drape, requires careful handling to avoid splitting" },
    { "@type": "PropertyValue", "name": "Dye Method", "value": "Hand-Dyed — Kettle Dyed", "description": "Kettle-dyed colorway. Tonal variation within skein is expected and desirable." },
    { "@type": "PropertyValue", "name": "Color Name", "value": "Ravelry Red" },
    { "@type": "PropertyValue", "name": "Care Instructions", "value": "Machine wash cold, lay flat to dry. Do not tumble dry.", "description": "Superwash treated for machine washing. High heat will cause felting." },
    { "@type": "PropertyValue", "name": "Recommended Project", "value": "Socks, shawls, lightweight garments, baby items" },
    { "@type": "PropertyValue", "name": "Skill Level", "value": "Intermediate — Advanced" }
  ],
  "offers": {
    "@type": "Offer",
    "price": "16.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://example-yarn.myshopify.com/products/malabrigo-sock-ravelry-red"
  }
}
</script>

CYC Yarn Weight Reference

CYC # Weight name Also called Knitting gauge (4 in) Needle size (US)
0LaceThread, cobweb33-40 sts000-1 (1.5-2.25mm)
1Super FineFingering, sock, baby27-32 sts1-3 (2.25-3.25mm)
2FineSport, baby23-26 sts3-5 (3.25-3.75mm)
3LightDK, light worsted21-24 sts5-7 (3.75-4.5mm)
4MediumWorsted, afghan, aran16-20 sts7-9 (4.5-5.5mm)
5BulkyChunky, craft, rug12-15 sts9-11 (5.5-8mm)
6Super BulkySuper chunky, roving7-11 sts11-17 (8-12.75mm)
7JumboJumbo, roving6 or fewer17+ (12.75mm+)

Artist Paint Schema — Professional Acrylic Example

Professional art supply buyers filter by pigment code (e.g., PB29 for Ultramarine Blue), lightfastness rating, and transparency — none of which appear in Shopify's default product JSON-LD. This example covers professional-grade acrylic paint with full pigment and lightfastness data.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Golden Heavy Body Acrylic — Ultramarine Blue (PB29), 2 fl oz Tube",
  "description": "Golden Heavy Body Acrylic Ultramarine Blue, 2 fl oz (59ml) tube. Pigment Blue 29 (PB29). Lightfastness I — Excellent (ASTM D4302). Transparent. High viscosity, retains brush strokes. Professional artist grade.",
  "sku": "GOLDEN-HB-ULT-BLUE-2OZ",
  "brand": { "@type": "Brand", "name": "Golden Artist Colors" },
  "material": "Acrylic polymer emulsion, Pigment Blue 29 (PB29), synthetic thickener",
  "hasCertification": [
    {
      "@type": "Certification",
      "name": "ACMI AP Certified Non-Toxic",
      "issuedBy": {
        "@type": "Organization",
        "name": "Art and Creative Materials Institute (ACMI)",
        "url": "https://acminet.org"
      },
      "url": "https://acminet.org/ap-seal"
    },
    {
      "@type": "Certification",
      "name": "ASTM D4302 Certified — Artist Acrylic Paint",
      "issuedBy": {
        "@type": "Organization",
        "name": "ASTM International",
        "url": "https://www.astm.org"
      },
      "description": "ASTM D4302 certification indicates this paint meets professional artist quality standards for consistency, lightfastness testing, and pigment labeling."
    }
  ],
  "additionalProperty": [
    { "@type": "PropertyValue", "name": "Craft Material Type", "value": "Artist Acrylic Paint" },
    { "@type": "PropertyValue", "name": "Paint Type", "value": "Heavy Body Acrylic", "description": "High-viscosity acrylic. Retains brush and palette knife marks. Suitable for impasto technique." },
    { "@type": "PropertyValue", "name": "Color Name", "value": "Ultramarine Blue" },
    { "@type": "PropertyValue", "name": "Pigment Code", "value": "PB29", "description": "Pigment Blue 29 — Ultramarine Blue (sodium aluminosilicate). Warm-toned, slightly reddish blue. Transparent." },
    { "@type": "PropertyValue", "name": "Pigment Name", "value": "Ultramarine Blue (Pigment Blue 29)" },
    { "@type": "PropertyValue", "name": "Pigment Count", "value": "1", "description": "Single-pigment color. Single-pigment paints allow for more predictable color mixing." },
    { "@type": "PropertyValue", "name": "Lightfastness", "value": "I — Excellent (ASTM)", "description": "ASTM D4302 Lightfastness Rating I — Excellent. Expected to retain color for 100+ years under museum lighting conditions." },
    { "@type": "PropertyValue", "name": "Opacity", "value": "Transparent", "description": "Transparent — allows underpainting to show through. Ideal for glazing, washes, and underpainting techniques." },
    { "@type": "PropertyValue", "name": "Viscosity", "value": "Heavy Body", "description": "High viscosity. Retains brush strokes and texture. Does not self-level." },
    { "@type": "PropertyValue", "name": "Dry Time", "value": "Touch dry in 30-60 minutes. Full cure 1-2 weeks.", "description": "Acrylic drying time depends on layer thickness, ambient humidity, and temperature." },
    { "@type": "PropertyValue", "name": "Artist Grade", "value": "Professional", "description": "Artist quality (professional) grade — higher pigment load, single-pigment colorants, verified lightfastness. Distinct from student/scholastic grade paints." },
    { "@type": "PropertyValue", "name": "Skill Level", "value": "Intermediate — Professional" },
    { "@type": "PropertyValue", "name": "Volume", "value": "59", "unitCode": "MLT", "description": "59ml (2 fl oz) tube" },
    { "@type": "PropertyValue", "name": "ACMI Non-Toxic", "value": "Yes — AP Seal", "description": "ACMI Approved Product (AP) non-toxic certification. Safe for studio use with normal ventilation." }
  ]
}

Children's Craft Kit Schema: ACMI Non-Toxic & Age Safety

Children's art supplies require ACMI AP certification, clear minimum age (as integer for structured filtering), and safety considerations for AI agents answering "safe non-toxic art supplies for a 5-year-old."

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Crayola Washable Watercolor Paint Set — 24 Colors, ACMI Non-Toxic, Ages 3+",
  "description": "Crayola Washable Watercolor Paint Set, 24 vivid colors. Washes from skin and most fabrics. ACMI AP certified non-toxic. Safe for children ages 3 and up. Includes 24 watercolor pans and brush.",
  "sku": "CRAYOLA-WC-24",
  "brand": { "@type": "Brand", "name": "Crayola" },
  "safetyConsideration": "For children 3 years and older. Adult supervision recommended for children under 6. Not for oral consumption.",
  "hasCertification": [
    {
      "@type": "Certification",
      "name": "ACMI AP Certified Non-Toxic",
      "issuedBy": {
        "@type": "Organization",
        "name": "Art and Creative Materials Institute (ACMI)",
        "url": "https://acminet.org"
      }
    }
  ],
  "suggestedAudience": {
    "@type": "PeopleAudience",
    "suggestedMinAge": 3,
    "suggestedMaxAge": 12,
    "audienceType": "Children — Beginner Crafter"
  },
  "additionalProperty": [
    { "@type": "PropertyValue", "name": "Craft Material Type", "value": "Watercolor Paint Set" },
    { "@type": "PropertyValue", "name": "Paint Type", "value": "Washable Watercolor" },
    { "@type": "PropertyValue", "name": "Number of Colors", "value": "24" },
    { "@type": "PropertyValue", "name": "Washable", "value": "Yes", "description": "Washes from skin with soap and water. Washes from most fabrics in cold water." },
    { "@type": "PropertyValue", "name": "ACMI Non-Toxic", "value": "Yes — AP Seal" },
    { "@type": "PropertyValue", "name": "Minimum Age", "value": "3", "description": "Suitable for children ages 3 and older" },
    { "@type": "PropertyValue", "name": "Skill Level", "value": "Beginner — Child" },
    { "@type": "PropertyValue", "name": "Includes", "value": "24 watercolor pans, 1 brush" }
  ]
}

Paint Lightfastness & ASTM Rating Reference

ASTM Rating Label Expected durability Professional use?
IExcellent100+ years under museum conditionsRecommended — archival quality
IIVery Good50-100 yearsAcceptable for professional work
IIIFair15-50 yearsNot recommended for professional/archival work
IVPoor2-15 yearsAvoid for artwork intended to last
VVery PoorUnder 2 yearsDo not use for permanent artwork

Dawn Liquid Snippet: craft.* Metafield Namespace

Save as snippets/craft-product-schema.liquid. Activates for products tagged yarn, paint, art-supplies, or in the craft-supplies collection.

{% comment %} craft-product-schema.liquid — yarn, paint, art materials schema {% endcomment %}
{% assign is_craft = false %}
{% if product.tags contains 'yarn' or product.tags contains 'paint' or product.tags contains 'art-supplies' or product.tags contains 'craft' %}
  {% assign is_craft = true %}
{% endif %}
{% for collection in product.collections %}
  {% if collection.handle == 'craft-supplies' or collection.handle == 'yarn' or collection.handle == 'art-supplies' or collection.handle == 'paint' %}
    {% assign is_craft = true %}
  {% endif %}
{% endfor %}

{% if is_craft %}
{% assign craft_type   = product.metafields.craft.material_type %}
{% assign yarn_weight  = product.metafields.craft.yarn_weight_cyc %}
{% assign yarn_gauge   = product.metafields.craft.yarn_gauge %}
{% assign fiber_content= product.metafields.craft.fiber_content %}
{% assign yardage      = product.metafields.craft.yardage %}
{% assign skein_weight = product.metafields.craft.skein_weight_grams %}
{% assign superwash    = product.metafields.craft.superwash %}
{% assign is_vegan     = product.metafields.craft.vegan %}
{% assign pigment_code = product.metafields.craft.pigment_code %}
{% assign lightfast    = product.metafields.craft.lightfastness %}
{% assign paint_type   = product.metafields.craft.paint_type %}
{% assign opacity      = product.metafields.craft.opacity %}
{% assign acmi_ap      = product.metafields.craft.acmi_ap_certified %}
{% assign skill_level  = product.metafields.craft.skill_level %}
{% assign min_age      = product.metafields.craft.minimum_age %}

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": {{ product.title | json }},
  "description": {{ product.description | strip_html | truncatewords: 80 | json }},
  "url": "{{ shop.url }}{{ product.url }}",
  "sku": {{ product.selected_or_first_available_variant.sku | json }}
  {% if product.vendor != blank %}
  ,"brand": { "@type": "Brand", "name": {{ product.vendor | json }} }
  {% endif %}
  {% if fiber_content != blank %}
  ,"material": {{ fiber_content | json }}
  {% endif %}
  {% if min_age != blank %}
  ,"suggestedAudience": {
    "@type": "PeopleAudience",
    "suggestedMinAge": {{ min_age }},
    "audienceType": {% if skill_level == "Beginner — Child" %}"Children — Beginner Crafter"{% else %}"Crafter — {{ skill_level }}"{% endif %}
  }
  {% endif %}
  {% if acmi_ap == "true" or acmi_ap == true %}
  ,"hasCertification": [
    { "@type": "Certification", "name": "ACMI AP Certified Non-Toxic", "issuedBy": { "@type": "Organization", "name": "Art and Creative Materials Institute (ACMI)", "url": "https://acminet.org" } }
  ]
  {% endif %}
  ,"additionalProperty": [
    {% assign ap_s = false %}
    {% if craft_type != blank %}
    { "@type": "PropertyValue", "name": "Craft Material Type", "value": {{ craft_type | json }} }
    {% assign ap_s = true %}
    {% endif %}
    {% if yarn_weight != blank %}
    {% if ap_s %},{% endif %}{ "@type": "PropertyValue", "name": "Yarn Weight Category", "value": {{ yarn_weight | json }} }
    {% assign ap_s = true %}
    {% endif %}
    {% if yarn_gauge != blank %}
    ,{ "@type": "PropertyValue", "name": "Gauge", "value": {{ yarn_gauge | json }} }
    {% endif %}
    {% if fiber_content != blank %}
    ,{ "@type": "PropertyValue", "name": "Fiber Content", "value": {{ fiber_content | json }} }
    {% endif %}
    {% if yardage != blank %}
    ,{ "@type": "PropertyValue", "name": "Yardage", "value": {{ yardage | json }}, "unitCode": "YRD" }
    {% endif %}
    {% if skein_weight != blank %}
    ,{ "@type": "PropertyValue", "name": "Skein Weight", "value": {{ skein_weight | json }}, "unitCode": "GRM" }
    {% endif %}
    {% if superwash != blank %}
    ,{ "@type": "PropertyValue", "name": "Superwash", "value": {{ superwash | json }} }
    {% endif %}
    {% if is_vegan != blank %}
    ,{ "@type": "PropertyValue", "name": "Vegan", "value": {{ is_vegan | json }} }
    {% endif %}
    {% if paint_type != blank %}
    ,{ "@type": "PropertyValue", "name": "Paint Type", "value": {{ paint_type | json }} }
    {% endif %}
    {% if pigment_code != blank %}
    ,{ "@type": "PropertyValue", "name": "Pigment Code", "value": {{ pigment_code | json }} }
    {% endif %}
    {% if lightfast != blank %}
    ,{ "@type": "PropertyValue", "name": "Lightfastness", "value": {{ lightfast | json }} }
    {% endif %}
    {% if opacity != blank %}
    ,{ "@type": "PropertyValue", "name": "Opacity", "value": {{ opacity | json }} }
    {% endif %}
    {% if skill_level != blank %}
    ,{ "@type": "PropertyValue", "name": "Skill Level", "value": {{ skill_level | json }} }
    {% endif %}
    {% if acmi_ap == "true" or acmi_ap == true %}
    ,{ "@type": "PropertyValue", "name": "ACMI Non-Toxic", "value": "Yes — AP Seal" }
    {% endif %}
  ]
  ,"offers": {
    "@type": "Offer",
    "price": {{ product.selected_or_first_available_variant.price | money_without_currency | json }},
    "priceCurrency": {{ cart.currency.iso_code | json }},
    "availability": {% if product.available %}"https://schema.org/InStock"{% else %}"https://schema.org/OutOfStock"{% endif %},
    "url": "{{ shop.url }}{{ product.url }}"
  }
}
</script>
{% endif %}

craft.* metafield namespace

Metafield Type Example values
craft.material_typeSingle line textYarn, Artist Acrylic Paint, Watercolor Set, Oil Paint, Embroidery Floss
craft.yarn_weight_cycSingle line text1 — Super Fine (Fingering/Sock), 4 — Medium (Worsted), 6 — Super Bulky
craft.yarn_gaugeSingle line text18 stitches x 24 rows per 4 inches on US size 8
craft.fiber_contentSingle line text100% Superwash Merino Wool, 75% Cotton 25% Acrylic, 80% Merino 20% Nylon
craft.yardageInteger440, 200, 875, 100
craft.skein_weight_gramsInteger50, 100, 200, 400
craft.superwashSingle line textYes, No
craft.veganSingle line textYes, No
craft.paint_typeSingle line textHeavy Body Acrylic, Fluid Acrylic, Watercolor, Oil Paint, Gouache, Encaustic
craft.pigment_codeSingle line textPB29, PR102, PY150, PW6, PBk11
craft.lightfastnessSingle line textI — Excellent, II — Very Good, III — Fair
craft.opacitySingle line textTransparent, Semi-Transparent, Semi-Opaque, Opaque
craft.skill_levelSingle line textBeginner — Child, Beginner — Adult, Intermediate, Advanced, Professional
craft.minimum_ageInteger3, 6, 8, 12, 16
craft.acmi_ap_certifiedBooleantrue, false

5 Common Craft Supply Schema Mistakes

# Mistake Impact Fix
1 No CYC yarn weight category in structured data Yarn weight is the first filter applied by every knitter and crocheter — "worsted weight yarn" excludes sock weight. Title text like "Worsted" is too inconsistently applied across product catalogs for reliable structured filtering Add additionalProperty Yarn Weight Category with the CYC number and label ("4 — Medium (Worsted)") — the standardized CYC system is what AI agents and Ravelry integrate for yarn matching
2 Fiber content only in product title or description — not in material or additionalProperty Fiber content is a primary purchase filter — allergies (wool allergy), machine-washability (superwash vs non-superwash), vegan (no animal fiber), and performance (100% cotton vs blended) all require machine-readable fiber data Add both material (the full composition string: "80% Merino Wool, 20% Nylon") and additionalProperty Fiber Content — plus separate Boolean flags for Superwash and Vegan
3 No pigment code or lightfastness for professional artist paints Professional artists and art educators filter by pigment code (PB29, PR101) and lightfastness rating — these are non-negotiable quality signals for archival artwork. A paint without these in structured data is invisible to professional-grade queries Add additionalProperty Pigment Code (e.g., "PB29"), Pigment Name, Lightfastness (ASTM I-V label), and Opacity level — the four properties that distinguish artist-quality from student-quality paints
4 ACMI non-toxic certification in description only — not in hasCertification Parents and school purchasing managers filter specifically for ACMI AP certified products — especially for classroom and children's use. Unstructured "non-toxic" claims are not equivalent to the ACMI AP third-party certification Add hasCertification with ACMI AP as the certification name and Art and Creative Materials Institute as the issuedBy organization — the structured certification is verifiable, unstructured claims are not
5 No minimum age structured data for children's craft products AI agents answering "craft supplies for a 4-year-old" require integer suggestedMinAge to filter age-appropriate products — products with no age data cannot be safely recommended for children queries Add suggestedAudience PeopleAudience with integer suggestedMinAge and audienceType — and add safetyConsideration for any small parts or age-related hazards

Frequently Asked Questions

How do I encode yarn weight (gauge) in schema.org?

Use two separate additionalProperty entries: one for Yarn Weight Category using the CYC (Craft Yarn Council) standard system with the number and label ("4 — Medium (Worsted/Afghan/Aran)"), and one for Gauge with the specific stitches/rows measurement ("18 stitches x 24 rows per 4 inches on US size 8 needles"). Include both because crafters search by CYC weight number, by label ("worsted"), and by gauge — and these three representations are not reliably equivalent across products.

How do I express fiber content (wool, cotton, acrylic) in schema.org?

Use the material property for the full composition string: "80% Superwash Merino Wool, 20% Nylon". Also add additionalProperty Fiber Content with the same value for structured querying. Add explicit Boolean flags as separate additionalProperty entries: Superwash: "Yes/No", Vegan: "Yes/No", Natural Fiber: "Yes — Animal/Plant/Mineral". Fiber content is the primary eligibility filter for allergic crafters, vegan buyers, and machine-washability requirements — these cannot be reliably inferred from the material string alone.

How do I mark art supplies as ACMI AP non-toxic?

Use hasCertification with name: "ACMI AP Certified Non-Toxic" and issuedBy set to the Art and Creative Materials Institute. The ACMI runs two programs: AP (Approved Product — safe for all ages, no hazard labeling required) and CL (Caution Label — specific hazards present). AP certification is what schools and parents require. Also add additionalProperty ACMI Non-Toxic: "Yes — AP Seal" for the explicit Boolean flag, and if the product has the CL seal instead, add appropriate safetyConsideration text.

What is pigment lightfastness and why does it matter for schema.org?

Lightfastness is how resistant a pigment's color is to fading under light exposure. ASTM rates it I (Excellent: 100+ years) to V (Very Poor: <2 years). Professional artists filter by lightfastness for archival artwork. In schema.org, add additionalProperty Lightfastness with the ASTM rating: "I — Excellent (ASTM)". Also add Pigment Code (e.g., "PB29") and Pigment Name ("Ultramarine Blue") — professional artists routinely search by pigment code rather than color name, because two paints called "Ultramarine Blue" by different manufacturers may use different pigments with different properties.

How do I target children's craft supplies vs professional art materials?

Use suggestedAudience PeopleAudience with integer suggestedMinAge (3, 6, 8, 12, 16) for children's products, and audienceType to distinguish categories ("Children — Beginner Crafter" vs "Professional Artist"). Add additionalProperty Skill Level ("Beginner — Child", "Intermediate", "Professional"). For children's products, also add safetyConsideration for any age-related hazards (small parts, scissors, sharp tools). See Shopify Toy & Children's Safety Schema for CPSC warning text patterns.

Are your yarn gauges, pigment codes, and ACMI certifications invisible to AI crafting queries?

CatalogScan audits your Shopify store for missing yarn weight categories, absent fiber content structured data, unstructured ACMI certification claims, and unmarked paint lightfastness — the most common AI agent visibility gaps for craft supply product pages.

Run Free Scan

Related Resources