# OpenAI / Shopify / Google Feed Readiness Appendix

```json
{
  "title": "OpenAI / Shopify / Google Feed Readiness Appendix",
  "purpose": "Validate whether product data can become feed-grade AI shopping input without claiming feed submission or platform approval.",
  "detected_signals": {
    "products": 5,
    "offers": 5,
    "return_policies": 0,
    "shipping_details": 0,
    "product_links": 3679
  },
  "field_matrix": [
    {
      "field": "stable_product_id",
      "meaning": "Stable product or variant identifier",
      "status": "observed"
    },
    {
      "field": "title",
      "meaning": "Human-readable product title",
      "status": "observed"
    },
    {
      "field": "description",
      "meaning": "Concise factual product description",
      "status": "observed"
    },
    {
      "field": "canonical_url",
      "meaning": "Canonical product URL",
      "status": "observed"
    },
    {
      "field": "media_url",
      "meaning": "Valid product or variant image/video URL",
      "status": "observed"
    },
    {
      "field": "variant_id",
      "meaning": "Unique purchasable variant identifier",
      "status": "observed"
    },
    {
      "field": "variant_options",
      "meaning": "User-facing option labels such as color, size, volume",
      "status": "needs_mapping"
    },
    {
      "field": "price_amount",
      "meaning": "Price amount in currency minor units or equivalent source value",
      "status": "observed"
    },
    {
      "field": "price_currency",
      "meaning": "ISO 4217 currency",
      "status": "observed"
    },
    {
      "field": "availability",
      "meaning": "Purchasable stock state",
      "status": "observed"
    },
    {
      "field": "seller_name",
      "meaning": "Seller name shown to buyer agents",
      "status": "requires_merchant_confirmation"
    },
    {
      "field": "policy_links",
      "meaning": "Privacy, terms, refund, shipping, and FAQ URLs",
      "status": "needs_mapping"
    },
    {
      "field": "target_country",
      "meaning": "Target market/country assumption",
      "status": "requires_merchant_confirmation"
    }
  ],
  "policy_link_requirements": {
    "observed_policy_types": [],
    "missing_policy_types": [
      "shipping_policy",
      "refund_policy",
      "privacy_policy",
      "terms_of_service",
      "faq",
      "support"
    ],
    "status_rule": "policy_links is observed only when shipping, refund, privacy, terms, FAQ, and support policy URLs are all source-backed or merchant-confirmed."
  },
  "variant_option_evidence": [],
  "variant_modeling_warnings": [
    "Model every purchasable option as a stable variant row when title, URL, media, price, or availability differs.",
    "Keep parent product IDs stable over time and separate them from variant IDs.",
    "Expose user-facing option names such as shade, size, color, volume, material, or bundle size."
  ],
  "freshness_checks": [
    "Price and availability must be refreshed from the merchant system of record.",
    "Page text, JSON-LD, feed rows, and cart state should agree after deployment.",
    "Do not place stale price or stock facts into llms.txt or static policy copy."
  ],
  "prohibited_category_caution": "Flag age-restricted, prescription, financial, weapons, dangerous, deceptive, or legally restricted products before AI channel expansion.",
  "feed_handoff_template_fields": [
    "stable_product_id",
    "title",
    "description",
    "canonical_url",
    "media_url",
    "variant_id",
    "variant_options",
    "price_amount",
    "price_currency",
    "availability",
    "seller_name",
    "policy_links",
    "target_country"
  ]
}
```
