IntegrationsShopify

What Is Indexed

Product and variant data PSYKHE AI pulls from Shopify, metafield and metaobject support, and sync cadence.

PSYKHE AI indexes one record per variant with the parent product context flattened onto it.

Sync Model

Two sync paths run in parallel:

  • Near-real-time webhooks - Shopify webhooks deliver product, variant, collection, and inventory changes within seconds. This is the primary path.
  • Scheduled reconciliation - full or delta syncs run on an agreed cadence (1h, 12h, or 24h). This keeps the catalog index aligned with Shopify.

The first sync after install is always a full backfill of the catalog.

Core Fields

Every indexed record contains the following fields.

Product

FieldSource
product_identifierShopify product GID
handleproduct handle
titleproduct title
product_typeShopify product type
vendorShopify vendor
tagsfull tag list
body_htmlproduct description (HTML)
template_suffixproduct template suffix
variants_counttotal variants on the parent product
product_imageprimary product image URL
categoryShopify product taxonomy name
currencystore currency code
collectionscollection handles the product belongs to
published_atfirst publish timestamp
created_atproduct creation timestamp
updated_atproduct update timestamp

Variant

FieldSource
variant_identifierShopify variant GID
skuvariant SKU
barcodevariant barcode
variant_titlevariant title
pricevariant price
compare_at_pricevariant compare-at price
option1 / option2 / option3Shopify variant options
imagevariant image URL
imagesall images for the variant's product
inventory_quantityper-variant inventory count
inventory_policydeny or continue
positionvariant position on the product
in_stockinventory_quantity > 0
inventory_availableproduct in stock or continue policy

Aggregates

These are computed at ingest time across the parent product's variants:

FieldMeaning
price_min / price_maxmin and max variant price
compare_at_price_min / compare_at_price_maxmin and max compare-at price
price_ratiocompare_at_price / price (1.0 if no compare-at)
allVariantsInventorysummed inventory across variants
options_mapevery option value across variants (e.g., {color: ["Black", "Red"], size: ["S", "M", "L"]})

Tags And Named Tags

Tags are indexed twice:

  • tags - the raw tag list as defined in Shopify.
  • named_tags - tags split on a delimiter (default :) into a namespace → value[] map. For example, the tag material:cotton becomes named_tags.material = ["cotton"]. Repeated keys accumulate values.
  • named_tags_names - Object.keys(named_tags), used for facet discovery.

Named tags are the easiest way for a merchant to expose custom facets without metafields.

Metafields (Opt-In)

PSYKHE AI supports both Product-level and Variant-level metafields. Metafield indexing is disabled by default and enabled per tenant on request.

When enabled, metafields are indexed under:

metafields[namespace][key] = value

The original namespace, key, value, and type are preserved. Use cases include:

  • exposing material, fit, sustainability flags, or other product attributes as filters
  • carrying merchant-specific structured data that does not fit into tags
  • driving custom sort orders (see Customization)

Metaobject References (Beta)

Metaobject support is in beta and currently scoped to reference metafields. Coverage is being expanded - reach out if you need a Metaobject shape that is not yet resolved.

Current scope:

  • metafield types metaobject_reference and list.metaobject_reference are resolved
  • for each reference, PSYKHE AI fetches the metaobject's id and displayName only
  • nested field traversal is not supported - only the GID and the display name are pulled
  • resolved values are cached per tenant

What Is Not Indexed

  • customer or order data - only the catalog is indexed; order data flows through the Web Pixel for tracking, not the catalog index
  • drafts, archived, and unpublished products
  • non-online-store sales channels - only products published to the online store are indexed

On this page