Optimization Guide

Shopify Pre-Owned & Resale Product Schema — itemCondition, Authentication & Condition Grade JSON-LD

The pre-owned and resale market on Shopify has exploded — luxury resale, certified pre-owned electronics, vintage clothing, and refurbished gear are now major Shopify store categories. AI shopping agents specifically filter for condition, authentication status, and original retail price comparison. Without machine-readable condition signals, every pre-owned listing looks identical to a new product from the agent's perspective.

TL;DR Set itemCondition on the Offer object using the schema.org enum URLs (UsedCondition, RefurbishedCondition, etc.); add additionalProperty with conditionGrade string for sub-classification (Like New, Excellent, Very Good, Good); use hasCertification for authentication certificates; add serialNumber or identifier for provenance; and use ListPrice PriceSpecification for original retail comparison.

itemCondition: The Primary Condition Signal

The itemCondition property belongs on the Offer object, not on the Product root. It takes a schema.org enum URL as its value. These are the five defined values:

Schema.org URL Short name Use for AI queries matched
https://schema.org/NewCondition New Brand new, never used, original packaging "buy new [product]"
https://schema.org/UsedCondition Used Pre-owned, secondhand, previously used "used [product]", "pre-owned [product]", "secondhand [product]"
https://schema.org/RefurbishedCondition Refurbished Professionally restored, tested, certified "refurbished [product]", "certified pre-owned [product]"
https://schema.org/DamagedCondition Damaged As-is, known defects, sold for parts/repair "damaged [product] for parts", "as-is [product]"
https://schema.org/OldCondition Old Vintage, antique, collectible age designation "vintage [product]", "antique [product]"
Condition only in title (not machine-readable)
{
  "@type": "Product",
  "name": "USED - Louis Vuitton Neverfull MM",
  "offers": {
    "@type": "Offer",
    "price": "890.00"
    // No itemCondition
    // AI: cannot filter by condition
    // Looks identical to new listing
  }
}
itemCondition on Offer (machine-readable)
{
  "@type": "Product",
  "name": "Louis Vuitton Neverfull MM Monogram",
  "offers": {
    "@type": "Offer",
    "price": "890.00",
    "itemCondition":
      "https://schema.org/UsedCondition"
  }
  // AI: condition filter → used match
}

Condition Grades: additionalProperty Sub-Classification

The five schema.org condition enum values are too coarse for resale — "Used" covers everything from Like New to Fair. AI agents use additionalProperty condition grade strings to match condition-qualified queries like "pre-owned MacBook excellent condition" or "used Lululemon very good".

Use consistent grade vocabulary across your catalog. The Mercari/eBay/The Real Real grading systems are the most widely recognized — AI agents are trained on data from these platforms and match against their terminology.

conditionGrade value Description itemCondition pairing Platform equivalents
Like New Worn/used once or twice; pristine condition with all original packaging UsedCondition eBay: Like New; Poshmark: NWT/NWOT; The RealReal: Excellent+
Excellent Light use; no visible flaws; no missing parts UsedCondition eBay: Very Good; The RealReal: Excellent; Vestiaire: Very Good
Very Good Normal use; minor cosmetic wear only; fully functional UsedCondition eBay: Good; ThredUp: Good; Mercari: Good
Good Visible wear commensurate with age; fully functional UsedCondition eBay: Acceptable; Depop: Used; Back Market: Good
Fair Significant wear or cosmetic flaws; functional UsedCondition Back Market: Fair; Swappa: Good (with noted flaws)
For Parts / Repair Non-functional or major damage; sold for parts DamagedCondition eBay: For parts or not working; Swappa: For Parts
Manufacturer Refurbished Refurbished by OEM; may include OEM warranty RefurbishedCondition Apple Certified Refurbished; Dell Renewed
Seller Refurbished Refurbished by independent reseller; tested and cleaned RefurbishedCondition Back Market: Good/Excellent; Amazon Renewed

Complete JSON-LD Example: Authenticated Pre-Owned Luxury Bag

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Louis Vuitton Neverfull MM — Damier Azur — Pre-Owned Excellent",
  "description": "Pre-owned Louis Vuitton Neverfull MM in Damier Azur canvas. Condition: Excellent — light use, clean interior, no pen marks, hardware with minimal scratching. Authenticated by Entrupy with certificate ID ENT-2025-882014. Serial number MI1016 (manufactured October 2016, Asnieres France).",
  "url": "https://example.com/products/lv-neverfull-mm-azur-mi1016",
  "sku": "RESALE-LV-NF-AZ-001",
  "brand": { "@type": "Brand", "name": "Louis Vuitton" },
  "serialNumber": "MI1016",
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "serialNumber",
      "name": "LV Date Code",
      "value": "MI1016"
    }
  ],
  "image": [
    "https://example.com/cdn/shop/products/lv-neverfull-front.jpg",
    "https://example.com/cdn/shop/products/lv-neverfull-interior.jpg",
    "https://example.com/cdn/shop/products/lv-neverfull-hardware.jpg",
    "https://example.com/cdn/shop/products/lv-neverfull-auth-cert.jpg"
  ],
  "offers": {
    "@type": "Offer",
    "price": "895.00",
    "priceCurrency": "USD",
    "itemCondition": "https://schema.org/UsedCondition",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/products/lv-neverfull-mm-azur-mi1016",
    "priceSpecification": [
      {
        "@type": "PriceSpecification",
        "price": "895.00",
        "priceCurrency": "USD",
        "priceType": "https://schema.org/SalePrice"
      },
      {
        "@type": "PriceSpecification",
        "price": "1570.00",
        "priceCurrency": "USD",
        "priceType": "https://schema.org/ListPrice",
        "description": "Original retail price (Louis Vuitton, 2024)"
      }
    ]
  },
  "hasCertification": [
    {
      "@type": "Certification",
      "name": "Entrupy Authentication Certificate",
      "certificationIdentification": "ENT-2025-882014",
      "issuedBy": {
        "@type": "Organization",
        "name": "Entrupy Inc.",
        "url": "https://www.entrupy.com"
      },
      "certificationStatus": "CertificationActive"
    }
  ],
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "propertyID": "conditionGrade",
      "name": "Condition Grade",
      "value": "Excellent"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "conditionNotes",
      "name": "Condition Notes",
      "value": "Light use. Clean interior, no pen marks or stains. Vachetta leather lightly honey-patinated. Zip pull hardware with minimal surface scratching. All hardware functions correctly."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "serialNumber",
      "name": "Date Code",
      "value": "MI1016"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "manufactureDate",
      "name": "Manufacture Date",
      "value": "October 2016"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "manufactureLocation",
      "name": "Made In",
      "value": "France (Asnieres workshop)"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "authenticated",
      "name": "Authentication",
      "value": "Entrupy certified authentic — certificate ENT-2025-882014"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "includes",
      "name": "Included Items",
      "value": "Dust bag, padlock and keys, authenticity certificate"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "originalRetailPrice",
      "name": "Original Retail Price",
      "value": "$1,570 USD (Louis Vuitton, 2024)"
    }
  ]
}
</script>

Refurbished Electronics: Complete Example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Apple MacBook Pro 14-inch M3 Pro — Refurbished Excellent — 18GB/512GB",
  "description": "Professionally refurbished MacBook Pro 14-inch M3 Pro. Grade: Excellent — fully functional, battery health 94%, cosmetically clean with no visible scratches. Includes 90-day warranty. Third-party tested by Aztek Electronics.",
  "url": "https://example.com/products/mbp14-m3pro-refurb-excellent",
  "sku": "REFURB-MBP14-M3P-512-001",
  "brand": { "@type": "Brand", "name": "Apple" },
  "model": "MacBook Pro 14-inch M3 Pro",
  "offers": {
    "@type": "Offer",
    "price": "1649.00",
    "priceCurrency": "USD",
    "itemCondition": "https://schema.org/RefurbishedCondition",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/products/mbp14-m3pro-refurb-excellent",
    "warranty": {
      "@type": "WarrantyPromise",
      "durationOfWarranty": {
        "@type": "QuantitativeValue",
        "value": 90,
        "unitCode": "DAY"
      },
      "warrantyScope": "Parts and labor; covers functional defects"
    },
    "priceSpecification": [
      {
        "@type": "PriceSpecification",
        "price": "1649.00",
        "priceCurrency": "USD",
        "priceType": "https://schema.org/SalePrice"
      },
      {
        "@type": "PriceSpecification",
        "price": "1999.00",
        "priceCurrency": "USD",
        "priceType": "https://schema.org/ListPrice",
        "description": "New retail price (Apple.com)"
      }
    ]
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "propertyID": "conditionGrade",
      "name": "Condition Grade",
      "value": "Seller Refurbished — Excellent"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "batteryHealth",
      "name": "Battery Health",
      "value": "94%"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "refurbishmentLevel",
      "name": "Refurbishment Level",
      "value": "Seller Refurbished"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "testingLab",
      "name": "Tested By",
      "value": "Aztek Electronics (CTIA-certified refurbisher)"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "warrantyIncluded",
      "name": "Warranty",
      "value": "90-day parts and labor warranty"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "includes",
      "name": "Box Contents",
      "value": "MacBook Pro, USB-C charging cable, 96W power adapter"
    }
  ]
}
</script>

Authentication Certifications for Luxury Resale

Authentication service Specialization AI queries matched
Entrupy Luxury handbags, sneakers, apparel (AI-powered) "Entrupy authenticated Louis Vuitton", "authenticated pre-owned Gucci"
Real Authentication Luxury handbags, accessories, watches "Real Authentication certificate handbag"
Legit Check By Ch Sneakers, streetwear "authenticated Jordan 1 resale", "legit checked sneakers"
WatchCSA Luxury watches "authenticated pre-owned Rolex", "certified used Omega watch"
GIA (Gemological Institute) Diamonds, gemstones, fine jewelry "GIA certified diamond ring", "GIA graded pre-owned engagement ring"
PSA (Professional Sports Authenticator) Sports cards, memorabilia "PSA graded baseball card", "PSA 9 rookie card"
CGC (Certified Guaranty Company) Comics, magazines, books "CGC graded comic book", "CGC 9.8 first appearance"

Shopify Liquid Snippet for Resale Condition Schema

{% comment %} resale-schema.liquid — condition and authentication JSON-LD {% endcomment %}
{% assign cond_grade   = product.metafields.resale.condition_grade %}
{% assign cond_notes   = product.metafields.resale.condition_notes %}
{% assign serial_num   = product.metafields.resale.serial_number %}
{% assign orig_price   = product.metafields.resale.original_retail_price %}
{% assign auth_json    = product.metafields.resale.authentication %}
{% assign cond_enum    = product.metafields.resale.condition_enum | default: 'UsedCondition' %}

{% if cond_grade != blank %}

{% endif %}

Common Pre-Owned Schema Mistakes

# Mistake Impact Fix
1 No itemCondition — condition only in product title ("USED -") AI agents cannot distinguish new vs. used listings; pre-owned products appear alongside new in condition-filtered queries Set itemCondition on the Offer object using the full schema.org enum URL
2 itemCondition set on Product root instead of Offer Schema.org specifies itemCondition is a property of Offer, not Product — placing it on the wrong object means some parsers ignore it Move itemCondition inside the offers object block
3 Authentication certificate only in product description text AI cannot verify authentication status from text alone; hasCertification is the explicit machine-readable signal Add hasCertification with the authentication service name and certificate ID for every authenticated item
4 No serial number or provenance identifiers Pre-owned luxury and electronics queries often include serial number lookups; missing identifiers reduce AI agent confidence in listing legitimacy Add serialNumber property and/or identifier PropertyValue blocks for every item with a traceable provenance identifier
5 No original retail price comparison AI agents answering "how much is a used [item] compared to new?" cannot surface the comparison without a ListPrice PriceSpecification Add original retail price as a ListPrice PriceSpecification in priceSpecification array on the Offer

Frequently Asked Questions

What are the itemCondition values for used and refurbished products?

Schema.org defines five itemCondition enum values, all set on the Offer object: NewCondition, UsedCondition, RefurbishedCondition, DamagedCondition, and OldCondition. For sub-classification, pair with additionalProperty using propertyID: "conditionGrade" and values like "Like New", "Excellent", "Very Good", "Good", "Fair". AI agents use both the enum (for binary condition filtering) and the grade string (for nuanced condition queries).

How do I express a luxury authentication certificate in schema?

Use hasCertification on the Product block with a Certification object. Set name to the authentication certificate type (e.g., "Entrupy Authentication Certificate"), issuedBy to the authenticating organization, and certificationIdentification to the certificate ID. Also add the item's serial number or date code in serialNumber and as an additionalProperty entry with propertyID: "serialNumber".

Should I set originalRetailPrice for pre-owned products?

Yes — for pre-owned luxury and high-value goods, add a ListPrice PriceSpecification in the priceSpecification array on the Offer. This enables AI agents to answer "how much is a used [item] compared to new?" and signals the discount magnitude. Use priceType: "https://schema.org/ListPrice" for the original retail value and priceType: "https://schema.org/SalePrice" for your asking price.

How do I handle serialNumber and provenance in product schema?

Use the top-level serialNumber property directly on Product, and add a parallel identifier PropertyValue or additionalProperty entry with propertyID: "serialNumber" for AI agents that scan additionalProperty arrays. For watches, add caseReference. For sneakers, add styleCode. For electronics, add IMEI. Multiple provenance identifiers are supported via multiple additionalProperty entries.

How do refurbished electronics differ from used products in schema?

Set itemCondition to https://schema.org/RefurbishedCondition instead of UsedCondition. Add additionalProperty entries for refurbishmentLevel ("Manufacturer Refurbished" vs. "Seller Refurbished"), testingLab, and warrantyIncluded. For OEM CPO programs (Apple Certified Refurbished, Dell Renewed), add hasCertification with the CPO program name and the manufacturer as issuedBy. A WarrantyPromise on the Offer further boosts refurbished listing confidence for AI agents.

Related Resources