{"provider":"kalicart","schema_version":"1.1","catalog_contract_version":"0.3-global-draft","catalog_kind":"global_merchants_index","scope":{"type":"global_multi_merchant_catalog","invariant":"Federated read-only catalog pointers. Every product endpoint must include explicit merchant identity. Kalicart does not mediate checkout or payments."},"links":{"discovery":"https://global.kalicart.com/v1/global-catalog/discovery","self":"https://global.kalicart.com/v1/global-catalog/merchants?limit=50&offset=0","next":null,"meta":"https://global.kalicart.com/v1/global-catalog/meta"},"agent_engagement":{"schema_version":"1.4.0","default_integration":"agent_first_L3_resolve","catalog_language":{"primary":"it","accepted":["it","en"],"rule":"The Kalicart catalog is in Italian/English. Regardless of the user language, normalize product terms to Italian or English before calling resolve_commerce_intent. The agent LLM must translate product vocabulary — Kalicart does not translate. User constraints (budget, size, color) must also be in standard form (numbers, EN color names or IT equivalents). Examples: \"Badehose\" → \"boxer da mare\", \"maillot de bain\" → \"costume da bagno\", \"pantalon de sport\" → \"pantaloni sportivi\", \"Turnschuhe\" → \"scarpe da ginnastica\"."},"principle":"Kalicart is a computable catalog, not semantic search. The agent interprets language; Kalicart computes verifiable contract. Embeddings may recover — only resolved rules may constrain.","summary":"Before searching: read these rules. Classify ambiguous terms, resolve them leaf-scoped, decompose into struct fields, then call resolve or public_catalog. Never pass raw adjectives (dark, heavy, premium) as query facets.","human_playbook":"docs/AGENT_QUERY_PLAYBOOK.md","primary_surface":"POST /v1/global-catalog/intent/resolve","primary_mcp_tool":"resolve_commerce_intent","how_to_search":["1) Bootstrap: GET /v1/global-catalog/discovery → read agent_engagement (this object). On a single shop: GET /v1/agent-bridge/{token} → read agent_engagement + public_catalog.*.","2) Classify: product-only browse vs budget vs delivery vs multi-item task.","3) Resolve ambiguous human terms (color, weight, premium, style…) leaf-scoped — see semantic_resolution — never pass raw adjectives to Kalicart.","4) Product-only browse (one shop, no budget/delivery) → public_catalog search/products on merchant bridge — fast L1.","5) Budget, delivery/shipping, shipping truth, or multi-merchant → resolve_commerce_intent / POST /intent/resolve with agent-first fields — do not use GET /search as primary.","6) Decompose before resolve: utterance = product spine; resolved traits → product_attributes; budget/delivery → constraints_global + destination.","7) Read agent_guidance + commerce_outcome before replying — never invent stock, price, or delivery.","8) Product detail / checkout-ready only after offer_ready or compatible from resolve."],"semantic_boundary":{"definition":"The boundary between agent and Kalicart separates linguistic interpretation (agent-side) from verifiable computation (substrate-side).","rule":"Every ambiguous, subjective, contextual, cultural, or comparative concept must be resolved, clarified, or dropped before substrate access — never passed through raw.","manifesto":["Retrieval may suggest. Only contextual resolution may constrain.","The agent interprets language. Kalicart computes the contract.","Embeddings may recover. Only rules may compute."],"agent_freedom":["Natural language with the human user","Interpretation, negotiation, explanation","Choosing evidence vs clarification when substrate lacks a hard axis","Maintaining semantic_resolution_trace for audit"],"substrate_truth":["Deterministic constraint application on documented fields and axes","Catalog-backed facts in responses — no semantic guessing","No interpretation of raw adjectives, taste, or embedding equivalence","Degradation accounting when soft axes cannot be hard-filtered"],"accepts":["constraint","typed_evidence","verifiable_facets","resolved_provenance"],"rejects":["raw taste adjectives","implicit style without resolution","embedding equivalence as operational truth","semantic_leakage in utterance or invented JSON keys"]},"semantic_resolution":{"fundamental_rule":"No ambiguous, subjective, or contextual term may cross the semantic boundary without explicit resolution. Do not fake computability.","thesis":"Kalicart is computable commerce, not embedding retrieval. Adjectives are inputs to resolve — not query strings.","pipeline":["user_intent","term_classification","semantic_axis_assignment","leaf_policy_resolver","resolution_kind_and_status","constraint_or_evidence_builder","kalicart_query","read_agent_guidance_before_human_reply"],"resolution_kinds":{"constraint":"Verifiable deterministically by substrate (e.g. product_attributes.color dark, budget_max, size L, documented hard axis).","evidence":"Semantic hint routed in utterance or recall — useful but NOT strong computation (e.g. utterance heavyweight cotton without gsm_min).","hint":"Ranking/support signal only — never a filter; may inform agent reply post-resolve.","unresolved":"Needs clarification or must stay outside the resolve payload — do not leak into utterance."},"resolution_status":{"resolved_constraint":"Mapped to verifiable substrate field or hard axis — safe to query.","resolved_evidence":"Semantic useful routing only — agent must not claim hard filter satisfied.","ambiguous_requires_clarification":"Too vague for leaf policy — ask user before substrate.","unsupported_semantic_axis":"Concept not supported in this leaf/domain — do not invent mapping."},"semantic_axes":[{"axis_id":"thermal_weight","user_terms":["pesante","leggero","heavy","lightweight","invernale"],"means":"Weight/warmth perception — NOT a global facet.","leaf_resolvers":{"apparel.tops.tshirt":["gsm evidence","heavyweight cotton evidence","fleece construction"],"apparel.outerwear.jacket":["insulation","winter routing","wool/down material constraint when stated"],"footwear.sneakers":["chunky sole model terms","unsupported if only aggressive/heavy adjective"]},"substrate_link":"Hard only when material/size or documented axis applies; else evidence in utterance."},{"axis_id":"visual_darkness","user_terms":["scuro","dark","nero","navy"],"means":"Luminance / color bucket — leaf-scoped.","leaf_resolvers":{"apparel":["product_attributes.color dark → constraint"],"home_furniture":["dominant tone evidence or clarification"]},"substrate_link":"color dark|light buckets when apparel/swimwear active."},{"axis_id":"formality","user_terms":["elegante","formale","casual","sportivo"],"means":"Formality/silhouette — not a JSON key.","leaf_resolvers":{"apparel":["tailoring/minimalism evidence","category routing","clarify occasion"]},"substrate_link":"Soft ranking or unresolved — no formality:true facet."},{"axis_id":"technicality","user_terms":["tecnico","technical","performance"],"means":"Functional construction axis.","leaf_resolvers":{"apparel.bottoms":["stretch ripstop material evidence"],"bags.backpack":["waterproof modular evidence"],"footwear":["waterproof gore evidence when explicit"]},"substrate_link":"Material/feature constraint only when observable in catalog."},{"axis_id":"luxury_signal","user_terms":["premium","lusso","luxury","high-end"],"means":"Market position — never premium:true.","leaf_resolvers":{"any":["material tier constraint","brand constraint","clarification","unsupported if no observable signal"]},"substrate_link":"market_position soft axis when domain-active — rank not gate unless hard evidence."}],"semantic_leakage":{"rule":"No ambiguous human term may cross substrate-side without explicit resolution. Stacking unresolved adjectives in utterance is semantic leakage — masked semantic search.","wrong_utterance":"premium elegant dark luxury heavy","right_approach":"Resolve each term to constraint | evidence | drop; utterance stays product spine only.","agent_must_not":"Reintroduce fuzzy retrieval by stuffing interpretive adjectives into utterance or invented keys."},"entry_schema":{"user_term":"string — original human token or phrase","leaf":"category leaf or branch after routing (e.g. apparel.tops.tshirt)","semantic_axis":"axis_id from semantic_axes or null if operational","resolution_type":"constraint | evidence | hint | unresolved","resolution_status":"resolved_constraint | resolved_evidence | ambiguous_requires_clarification | unsupported_semantic_axis","resolved_as":"object — product_attributes | constraints_global | utterance delta | null","confidence":"number 0–1 or high|medium|low","reason":"string — leaf-scoped explanation for audit"},"optional_resolve_field":{"name":"semantic_resolution_trace","location":"optional array on POST /intent/resolve body — agent-side audit","substrate_behavior":"Kalicart does not treat trace as authority; substrate computes only struct fields. Trace is governance and future tuning.","when_to_send":"Production MCP agents SHOULD attach trace for ambiguous terms resolved in the turn."},"human_language_examples":["elegante","pesante","leggero","scuro","premium","comodo","tecnico","estivo","sportivo"],"catalog_language_examples":["product_attributes.color dark|light","product_attributes.size material fit brand","constraints_global budget_max currency","utterance spine with category-routable product terms","semantic axes when domain-active (see semanticAxisRegistry)"],"rules":[{"id":"SEMANTIC_BOUNDARY","means":"Agent interprets; substrate computes. No semantic guessing substrate-side."},{"id":"CONSTRAINT_VS_EVIDENCE","means":"Do not fake computability — utterance routing is evidence unless a verifiable field exists (color dark, size, budget, hard axis)."},{"id":"SEPARATE_HUMAN_AND_CATALOG","means":"Human language has adjectives and intent; catalog accepts only observable fields and enums."},{"id":"LEAF_SCOPED_ONLY","means":"Same word ≠ same meaning globally. Map user_term → semantic_axis → leaf policy before querying."},{"id":"NO_HALLUCINATED_FACETS","means":"Never invent JSON keys (premium: true, heavy: true). Use supported product_attributes or ask clarification."},{"id":"SEMANTIC_LEAKAGE","means":"Never stack unresolved adjectives in utterance — each term resolved, clarified, or dropped."},{"id":"MANDATORY_DECOMPOSITION","means":"Split hard constraints, soft preferences, context, exclusions, and uncertainty before resolve."},{"id":"ANTI_EMBEDDING","means":"Embeddings may suggest — they do not authorize operational equivalence or substitute constraints."},{"id":"PROVENANCE","means":"Record semantic_resolution_trace entries with resolution_type and resolution_status for audit."},{"id":"COMPUTE_DONT_DESCRIBE","means":"Do not tell the catalog what you think a word means — produce verifiable constraints or typed evidence."}],"leaf_scoped_examples":[{"user_term":"pesante","leaf":"apparel.tops.tshirt","semantic_axis":"thermal_weight","resolution_type":"evidence","resolution_status":"resolved_evidence","resolved_as":{"utterance":"heavyweight cotton"},"confidence":0.74,"reason":"T-shirt heaviness ≈ construction/gsm — no gsm_min in substrate API yet; evidence not constraint.","wrong":["heavy: true","utterance: pesante","resolution_type: constraint without gsm_min"]},{"user_term":"pesante","leaf":"apparel.outerwear.jacket","semantic_axis":"thermal_weight","resolution_type":"evidence","resolution_status":"resolved_evidence","resolved_as":{"utterance":"winter insulated jacket"},"confidence":0.8,"reason":"Outerwear heaviness ≈ insulation/winter routing.","wrong":["heavy: true"]},{"user_term":"scuro","leaf":"apparel.swimwear.two_piece","semantic_axis":"visual_darkness","resolution_type":"constraint","resolution_status":"resolved_constraint","resolved_as":{"product_attributes":{"color":"dark"}},"confidence":0.9,"reason":"Apparel color bucket dark is substrate-verifiable.","wrong":["location_hint: dark color","utterance: scuro"]},{"user_term":"premium","leaf":"apparel.tops.sweater","semantic_axis":"luxury_signal","resolution_type":"constraint","resolution_status":"resolved_constraint","resolved_as":{"product_attributes":{"material":"cashmere"}},"confidence":0.65,"reason":"Premium resolved to observable material — not premium:true.","wrong":["premium: true","constraints_global.quality: premium"]},{"user_term":"aggressive","leaf":"footwear.sneakers","semantic_axis":"formality","resolution_type":"unresolved","resolution_status":"unsupported_semantic_axis","resolved_as":null,"confidence":0.2,"reason":"No supported sneaker axis for aggressive — clarify style or model; do not leak into utterance.","wrong":["utterance: aggressive sneakers"]}],"provenance_template":{"note":"Use entry_schema — deprecated alias for semantic_resolution_trace items.","user_term":"string","leaf":"category leaf","semantic_axis":"axis_id","resolution_type":"constraint | evidence | hint | unresolved","resolution_status":"resolved_constraint | resolved_evidence | ambiguous_requires_clarification | unsupported_semantic_axis","resolved_as":"object | null","confidence":"0–1","reason":"string"},"supported_product_attributes":["color","size","material","fit","brand"],"color_buckets":{"dark":"Use product_attributes.color dark after resolving scuro/nero/navy — not location_hint or raw adjective pass-through.","light":"Use product_attributes.color light after resolving chiaro/pastel — same rule."}},"do_not":["Do not search or scrape merchant HTML when public_catalog JSON or resolve is available.","Do not use GET /search as the primary path when the user stated budget, delivery intent, or a setup task — resolve first.","Do not send only a product keyword when the user also stated delivery intent or budget — map them to struct fields.","Do not put geographic tokens from product names (Paris, Roma, Portofino, Geneva, …) into location_hint — those belong in utterance only.","Do not set location_hint unless the user expressed delivery/shipping to a place; when unsure, omit it.","Do not treat commerce_outcome browse_match or offer list as deliverable when agent_guidance.shipping.eligibility_state is not_serviced.","Do not ask the user for CAP/postcode when location_hint and country are enough for merchant region policy (SHIP-v1).","Do not infer stock, variants, shipping zones, or category from merchant HTML when reasoning_runtime.available is true.","Do not invent delivery availability — if no destination was passed, do not claim a city is or is not served.","Do not set budget_max, budget_min, or currency on constraints_global unless the human task states a numeric budget — Kalicart human parsers are ground truth; omit budget fields when absent.","Do not put product attributes (color, size, material, style) in constraints_global — especially not location_hint (e.g. location_hint: \"dark color\" is wrong). Use product_attributes or utterance after leaf-scoped resolution.","Do not pass raw ambiguous adjectives to utterance or JSON (pesante, premium, elegante, scuro, comodo) — resolve leaf-scoped first; color → product_attributes.color dark|light when applicable.","Do not invent catalog facets (premium: true, heavy: true, elegant: true) — only supported product_attributes and documented axes.","Do not treat embedding similarity as operational equivalence (elegante ≈ premium ≈ lusso) — constraints must be explicit and auditable.","Do not use semantic search intuition as a substitute for decomposition — Kalicart resolve is contract computation, not free interpretation.","Do not stack unresolved adjectives in utterance (semantic leakage) — e.g. utterance: \"premium elegant dark luxury heavy\".","Do not label resolution_type constraint when only utterance evidence exists — that fakes computability.","Do not query substrate when resolution_status is unsupported_semantic_axis or ambiguous_requires_clarification without clarification or dropping the term."],"input":{"model":"agent_first","utterance":"Product spine for recall and routing only — NOT a bag of unresolved adjectives. Evidence terms allowed only after resolution_type evidence is declared in semantic_resolution_trace.","constraints_global":{"scope":"Global operational constraints only: budget, currency, delivery destination, delivery window, merchant_mode — NOT product color/size/material.","when_user_stated_you_must_set":["budget_max and/or budget_min → constraints_global (+ currency ISO 4217)","delivery/shipping intent to a place → constraints_global.location_hint (NOT product-name geography)","budget includes shipping → constraints_global.budget_includes_shipping: true when explicit"],"optional_fields":["budget_max","budget_min","currency","location_hint","budget_includes_shipping","delivery_max_days","delivery_postcode","merchant_mode"],"never_use_for":["color, size, material, style, or other product attributes","location_hint for non-geographic product traits (e.g. \"dark color\")"]},"product_attributes":{"means":"Structured product-level constraints extracted from the human task — not budget or shipping.","set_when":["User stated color, size, material, fit, or similar product traits","After leaf-scoped resolution of ambiguous terms (e.g. scuro → color dark)","Prefer explicit struct over overloading constraints_global or location_hint"],"optional_fields":["color","size","material","fit","brand"],"color_resolution":"Human scuro/nero/navy → agent resolves to color dark bucket before resolve — never location_hint or raw adjective.","not_a_bucket_for":["pesante","premium","elegante","comodo","tecnico","sportivo","estivo"],"or_alternative":"Include routable product terms in utterance spine (e.g. \"winter insulated jacket\") when no single attribute fits."},"destination":{"when_user_stated_you_must_set":["delivery/shipping intent to a place → destination.location_hint (mirror constraints_global.location_hint)","country → destination.country (default IT when unspecified)"],"when_omit":["Product name, model, fragrance, or collection contains a place name (Ferrari Roma, Paris Hilton, Laura Biagiotti Roma)","User did not mention delivery or shipping","Ambiguous — prefer omit over false shipping truth"],"optional_fields":["country","location_hint","postcode"]},"location_hint":{"means":"Operational delivery destination only — GEOGRAPHIC city/region. Not a generic context field.","geographic_only":true,"right":["campobasso","roma","milano"],"wrong":["dark color","premium quality","fast delivery","size L","under 80 euros"],"set_when":["Explicit delivery frame: consegna a, spedizione a/in, deliver to, shipping to","Strong implicit delivery: \"in [city]\" with budget/party/event context (e.g. dinner in Campobasso)"],"do_not_set_when":["Place name is part of product identity (Paris perfume, Ferrari Roma/Portofino, Roma EDT)","No delivery intent in the user message"],"when_unsure":"Omit location_hint. Kalicart returns product recall without shipping gate — do not guess."},"session_key":"Required on every MCP commerce call for multi-turn loops (D2 agent memory)."},"field_schema":{"design_principle":"LLMs infer values into optional string fields. Each field declares scope + WRONG examples so unprepared agents do not use location_hint as a generic context bucket.","responsibility":{"agent":"Decompose the human task into the correct field before calling MCP — wrong slot is agent error (~80%).","schema":"Must be unambiguous with explicit WRONG lists on ambiguous fields — schema gap (~20%).","kalicart":"Computes catalog truth from structured input; malformed slots are not silently reinterpreted (0% blame on compute)."},"location_hint":{"geographic_only":true,"means":"Real city/region/postal area for merchant shipping — not product vocabulary.","right":["campobasso","roma","milano","berlin"],"wrong":["dark color","premium quality","fast delivery","size L","under 80 euros","free shipping","nike","bikini bottom"],"wrong_reason":"Color, quality, speed, budget, brand, and product names are not geographic destinations."},"constraints_global":{"scope":"Operational envelope only: budget_max/min, currency, delivery_max_days, delivery_postcode, merchant_mode, location_hint (geographic).","wrong_in_location_hint":["dark color","premium quality","fast delivery"],"never":["product color","size","material","style","brand preference","quality adjectives"]},"product_attributes":{"scope":"Product traits from the human task — not budget, not shipping.","right":[{"color":"dark"},{"size":"L"},{"material":"cotton"}],"wrong_field":"constraints_global or location_hint — never overload delivery/budget slots"},"utterance":{"scope":"Short product spine for catalog recall — not the full human paragraph.","right":["bikini bottom dark","prosecco","running shoes"],"wrong":"Embedding budget, delivery city, or full narrative without decomposing into struct fields"}},"output":{"read_before_reply":["agent_guidance.shipping.eligibility_state","agent_guidance.say","commerce_outcome","commerce_state.lifecycle_state","commerce_state.offers","next_actions"],"reply_composition":["SHOW-BEFORE-CLARIFY: if commerce_state.offers contains items, you MUST list product names (and prices when present) BEFORE asking any clarifying question. Never ask \"what size/color?\" without first showing what was found.","USE-SAY-AS-BASE: when agent_guidance.say is present, it is the ground-truth reply skeleton produced by the catalog pipeline — already includes products, prices, follow-up. Use it as-is or translate to the user language. Do not paraphrase away product names or prices.","NEVER-INVENT-PRICES: prices, product names, and currencies are facts from the tool response — report them verbatim. Never substitute with vague terms like \"several options\" or \"a few items\".","NO-CLARIFY-WITHOUT-SHOW: when offers exist but variant details are missing, the correct flow is SHOW the offers, THEN ask the follow-up. Asking-first is always wrong.","ZERO-OFFERS-EXPLICIT: if commerce_state.offers is empty but candidates exist with different attributes, say explicitly what is NOT available (e.g. \"no white slips in catalog\") and list what IS available (colors, sizes from pool_summary)."],"shipping":{"not_serviced":"Destination outside merchant served regions (catalog policy). Say so first; do not present recalled offers as deliverable to that address.","quotable":"Catalog shipping economics may appear in agent_guidance when zone is served.","partial":"Some offers servicable, some not — follow agent_guidance prompts.","destination_required":"No destination signal received — do not invent delivery; agent may clarify delivery intent or omit shipping claims.","no_destination_passed":"Agent omitted location_hint — Kalicart does not assert shipping to product-name geographies; browse/recall only."}},"golden_example":{"label":"delivery_intent","human_task":"I need prosecco for a dinner party in Campobasso, budget around 95 euros free shipping","resolve_commerce_intent_args":{"utterance":"prosecco","country":"IT","constraints_global":{"budget_max":95,"currency":"EUR","location_hint":"campobasso"},"destination":{"country":"IT","location_hint":"campobasso"}},"expected_signals":["agent_guidance.shipping.eligibility_state may be not_serviced when merchant ships region-limited zones only","agent_guidance.say cites served_region_labels from catalog — not a hardcoded city list"]},"negative_example":{"label":"product_geo_not_destination","human_task":"eau de parfum spray Paris under 60 euros","resolve_commerce_intent_args":{"utterance":"eau de parfum paris","country":"IT","constraints_global":{"budget_max":60,"currency":"EUR"}},"do_not":["Do not set location_hint: paris — Paris is the product line, not delivery","Do not tell the user delivery to Paris is unavailable"]},"negative_example_product_attrs":{"label":"product_attrs_not_in_constraints_global","human_task":"women swimwear two piece dark color under 80 euros","wrong":{"utterance":"swimwear","constraints_global":{"budget_max":80,"currency":"EUR","location_hint":"dark color"}},"resolve_commerce_intent_args":{"utterance":"swimwear two piece","country":"IT","constraints_global":{"budget_max":80,"currency":"EUR"},"product_attributes":{"color":"dark"}},"do_not":["Do not set location_hint: dark color — color is a product attribute, not a delivery destination","Do not put color/size/material in constraints_global","Do not pass scuro/dark as unresolved adjective — resolve to product_attributes.color dark"]},"negative_example_ambiguous_adjective":{"label":"heavy_leaf_scoped_not_pass_through","human_task":"maglietta pesante taglia L","wrong":{"utterance":"maglietta pesante","product_attributes":{"fit":"heavy"}},"resolve_commerce_intent_args":{"utterance":"t-shirt heavyweight cotton","country":"IT","product_attributes":{"size":"L"},"semantic_resolution_trace":[{"user_term":"pesante","leaf":"apparel.tops.tshirt","semantic_axis":"thermal_weight","resolution_type":"evidence","resolution_status":"resolved_evidence","resolved_as":{"utterance":"heavyweight cotton"},"confidence":0.74,"reason":"No gsm_min substrate field — evidence not constraint"}]},"do_not":["Do not pass pesante/heavy as a catalog facet","Do not set resolution_type constraint without verifiable field","Do not invent fit: heavy or heavy: true"]},"negative_example_semantic_leakage":{"label":"semantic_leakage_stacked_adjectives","human_task":"premium elegant dark luxury heavy t-shirt","wrong":{"utterance":"premium elegant dark luxury heavy t-shirt"},"do_not":["Semantic leakage — each adjective must be resolved, clarified, or dropped","Resolve dark → product_attributes.color; premium → material or clarify; pesante → evidence per leaf","Utterance spine should be t-shirt after decomposition"]},"negative_example_premium":{"label":"premium_no_hallucinated_facet","human_task":"voglio una maglia premium","wrong":{"utterance":"maglia premium","product_attributes":{"premium":true}},"resolve_commerce_intent_args":{"utterance":"maglia","country":"IT","product_attributes":{"material":"cashmere"}},"acceptable_alternative":{"strategy":"needs_clarification","reason":"premium undefined without observable material or tier"},"do_not":["Do not send premium: true or quality: premium","Resolve to material/brand tier or ask what premium means for this product type"]},"legacy_human_first":{"when":"Human-facing intent UI or agents without struct extraction capability","how":"POST /intent/resolve with full raw utterance; Kalicart concierge + parsers extract fields server-side.","not_default_for":["MCP agents","autonomous orchestrators","production agent loops"]}},"total":18,"limit":50,"offset":0,"next_offset":null,"merchants":[{"merchant_id":"duinshop-it","name":"duinshop-it","storefront_host":"duinshop.it","product_count":1145,"categorized_product_count":1159,"federation_eligible_pct":98.8,"category_count":61,"sku_count":1652,"last_sync_at":"2026-06-10T02:13:14.683Z","catalog_sync":{"status":"complete","indexed_product_count":1145,"federated_eligible_count":1145,"categorized_product_count":1159,"merchant_sku_count":1652,"source_catalog_count":1124,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:54.389Z","last_error":"Found a kalicart-catalog or kalicart-agent link, but href does not match your current snippet (paste the dashboard block exactly, or rotate / clear cache)."}},{"merchant_id":"playhousefamily-shop","name":"playhousefamily-shop","storefront_host":"playhousefamily.shop","product_count":726,"categorized_product_count":791,"federation_eligible_pct":91.8,"category_count":86,"sku_count":791,"last_sync_at":"2026-06-10T01:33:16.782Z","catalog_sync":{"status":"plan_capped","indexed_product_count":726,"federated_eligible_count":726,"categorized_product_count":791,"merchant_sku_count":791,"source_catalog_count":791,"source_catalog_capped":true},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.925Z","last_error":"No kalicart-catalog or kalicart-agent &lt;link&gt; was found in the HTML we received. Paste the full static block from the dashboard into your theme &lt;head&gt; (it must appear in the page source, not only after JavaScript runs), then clear CDN / theme cache."}},{"merchant_id":"possedoni-it","name":"possedoni-it","storefront_host":"possedoni.it","product_count":636,"categorized_product_count":637,"federation_eligible_pct":99.8,"category_count":26,"sku_count":640,"last_sync_at":"2026-06-09T07:09:59.851Z","catalog_sync":{"status":"complete","indexed_product_count":636,"federated_eligible_count":636,"categorized_product_count":637,"merchant_sku_count":640,"source_catalog_count":635,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:53.395Z","last_error":"Found a kalicart-catalog or kalicart-agent link, but href does not match your current snippet (paste the dashboard block exactly, or rotate / clear cache)."}},{"merchant_id":"turoloacquemineraliroma-com","name":"turoloacquemineraliroma-com","storefront_host":"turoloacquemineraliroma.com","product_count":477,"categorized_product_count":512,"federation_eligible_pct":93.2,"category_count":35,"sku_count":520,"last_sync_at":"2026-06-09T13:31:14.294Z","catalog_sync":{"status":"complete","indexed_product_count":477,"federated_eligible_count":477,"categorized_product_count":512,"merchant_sku_count":520,"source_catalog_count":520,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:51.362Z","last_error":"No kalicart-catalog or kalicart-agent &lt;link&gt; was found in the HTML we received. Paste the full static block from the dashboard into your theme &lt;head&gt; (it must appear in the page source, not only after JavaScript runs), then clear CDN / theme cache."}},{"merchant_id":"climacasalottisrl-it","name":"climacasalottisrl-it","storefront_host":"climacasalottisrl.it","product_count":299,"categorized_product_count":316,"federation_eligible_pct":94.6,"category_count":10,"sku_count":316,"last_sync_at":"2026-06-09T07:04:55.132Z","catalog_sync":{"status":"complete","indexed_product_count":299,"federated_eligible_count":299,"categorized_product_count":316,"merchant_sku_count":316,"source_catalog_count":316,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"verified","verified_at":"2026-06-09T20:55:55.104Z","last_check_at":"2026-06-09T20:55:55.104Z","last_error":null}},{"merchant_id":"prestashop-orchestrapop-com","name":"prestashop-orchestrapop-com","storefront_host":"prestashop.orchestrapop.com","product_count":110,"categorized_product_count":110,"federation_eligible_pct":100,"category_count":48,"sku_count":120,"last_sync_at":"2026-06-09T13:42:09.997Z","catalog_sync":{"status":"complete","indexed_product_count":110,"federated_eligible_count":110,"categorized_product_count":110,"merchant_sku_count":120,"source_catalog_count":19,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:54.860Z","last_error":"No kalicart-catalog or kalicart-agent &lt;link&gt; was found in the HTML we received. Paste the full static block from the dashboard into your theme &lt;head&gt; (it must appear in the page source, not only after JavaScript runs), then clear CDN / theme cache."}},{"merchant_id":"project2209-com","name":"project2209-com","storefront_host":"project2209.com","product_count":109,"categorized_product_count":109,"federation_eligible_pct":100,"category_count":89,"sku_count":170,"last_sync_at":"2026-06-10T02:08:12.999Z","catalog_sync":{"status":"complete","indexed_product_count":109,"federated_eligible_count":109,"categorized_product_count":109,"merchant_sku_count":170,"source_catalog_count":107,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:53.647Z","last_error":"Found a kalicart-catalog or kalicart-agent link, but href does not match your current snippet (paste the dashboard block exactly, or rotate / clear cache)."}},{"merchant_id":"5xczb1-ci","name":"5xczb1-ci.myshopify.com","storefront_host":"5xczb1-ci.myshopify.com","product_count":94,"categorized_product_count":105,"federation_eligible_pct":89.5,"category_count":87,"sku_count":105,"last_sync_at":"2026-06-09T10:40:49.789Z","catalog_sync":{"status":"complete","indexed_product_count":94,"federated_eligible_count":94,"categorized_product_count":105,"merchant_sku_count":105,"source_catalog_count":0,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:54.146Z","last_error":"No kalicart-catalog or kalicart-agent &lt;link&gt; was found in the HTML we received. Paste the full static block from the dashboard into your theme &lt;head&gt; (it must appear in the page source, not only after JavaScript runs), then clear CDN / theme cache."}},{"merchant_id":"magento-orchestrapop-com","name":"magento-orchestrapop-com","storefront_host":"magento.orchestrapop.com","product_count":30,"categorized_product_count":30,"federation_eligible_pct":100,"category_count":15,"sku_count":30,"last_sync_at":"2026-06-09T20:10:12.054Z","catalog_sync":{"status":"complete","indexed_product_count":30,"federated_eligible_count":30,"categorized_product_count":30,"merchant_sku_count":30,"source_catalog_count":30,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:55.344Z","last_error":"No kalicart-catalog or kalicart-agent &lt;link&gt; was found in the HTML we received. Paste the full static block from the dashboard into your theme &lt;head&gt; (it must appear in the page source, not only after JavaScript runs), then clear CDN / theme cache."}},{"merchant_id":"sandbox-bedroom-lab","name":"Sandbox Bedroom Lab","storefront_host":"sandbox-bedroom-lab.example.test","product_count":0,"categorized_product_count":16,"federation_eligible_pct":0,"category_count":0,"sku_count":0,"last_sync_at":null,"catalog_sync":{"status":"complete","indexed_product_count":0,"federated_eligible_count":0,"categorized_product_count":16,"merchant_sku_count":0,"source_catalog_count":null,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.941Z","last_error":"getaddrinfo ENOTFOUND sandbox-bedroom-lab.example.test"}},{"merchant_id":"sandbox-bedroom-lab-b","name":"Sandbox Bedroom Lab (alt)","storefront_host":"sandbox-bedroom-lab.example.test","product_count":0,"categorized_product_count":3,"federation_eligible_pct":0,"category_count":0,"sku_count":0,"last_sync_at":null,"catalog_sync":{"status":"complete","indexed_product_count":0,"federated_eligible_count":0,"categorized_product_count":3,"merchant_sku_count":0,"source_catalog_count":null,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.946Z","last_error":"getaddrinfo ENOTFOUND sandbox-bedroom-lab.example.test"}},{"merchant_id":"sandbox-bedroom-trap-lab","name":"Sandbox Bedroom Lab (alt)","storefront_host":"sandbox-bedroom-lab.example.test","product_count":0,"categorized_product_count":3,"federation_eligible_pct":0,"category_count":0,"sku_count":0,"last_sync_at":null,"catalog_sync":{"status":"complete","indexed_product_count":0,"federated_eligible_count":0,"categorized_product_count":3,"merchant_sku_count":0,"source_catalog_count":null,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.951Z","last_error":"getaddrinfo ENOTFOUND sandbox-bedroom-lab.example.test"}},{"merchant_id":"sandbox-home-office-lab","name":"Sandbox Home Office Lab","storefront_host":"sandbox-home-office-lab.example.test","product_count":0,"categorized_product_count":13,"federation_eligible_pct":0,"category_count":0,"sku_count":0,"last_sync_at":null,"catalog_sync":{"status":"complete","indexed_product_count":0,"federated_eligible_count":0,"categorized_product_count":13,"merchant_sku_count":0,"source_catalog_count":null,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.955Z","last_error":"getaddrinfo ENOTFOUND sandbox-home-office-lab.example.test"}},{"merchant_id":"sandbox-home-office-lab-b","name":"Sandbox Home Office Lab (alt)","storefront_host":"sandbox-home-office-lab.example.test","product_count":0,"categorized_product_count":3,"federation_eligible_pct":0,"category_count":0,"sku_count":0,"last_sync_at":null,"catalog_sync":{"status":"complete","indexed_product_count":0,"federated_eligible_count":0,"categorized_product_count":3,"merchant_sku_count":0,"source_catalog_count":null,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.960Z","last_error":"getaddrinfo ENOTFOUND sandbox-home-office-lab.example.test"}},{"merchant_id":"sandbox-hvac-lab","name":"Sandbox HVAC Lab","storefront_host":"sandbox-hvac-lab.example.test","product_count":0,"categorized_product_count":12,"federation_eligible_pct":0,"category_count":0,"sku_count":0,"last_sync_at":null,"catalog_sync":{"status":"complete","indexed_product_count":0,"federated_eligible_count":0,"categorized_product_count":12,"merchant_sku_count":0,"source_catalog_count":null,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.965Z","last_error":"getaddrinfo ENOTFOUND sandbox-hvac-lab.example.test"}},{"merchant_id":"sandbox-hvac-lab-b","name":"Sandbox HVAC Lab (alt)","storefront_host":"sandbox-hvac-lab.example.test","product_count":0,"categorized_product_count":1,"federation_eligible_pct":0,"category_count":0,"sku_count":0,"last_sync_at":null,"catalog_sync":{"status":"complete","indexed_product_count":0,"federated_eligible_count":0,"categorized_product_count":1,"merchant_sku_count":0,"source_catalog_count":null,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.969Z","last_error":"getaddrinfo ENOTFOUND sandbox-hvac-lab.example.test"}},{"merchant_id":"sandbox-running-lab","name":"Sandbox Running Lab","storefront_host":"sandbox-running-lab.example.test","product_count":0,"categorized_product_count":18,"federation_eligible_pct":0,"category_count":0,"sku_count":0,"last_sync_at":null,"catalog_sync":{"status":"complete","indexed_product_count":0,"federated_eligible_count":0,"categorized_product_count":18,"merchant_sku_count":0,"source_catalog_count":null,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.931Z","last_error":"getaddrinfo ENOTFOUND sandbox-running-lab.example.test"}},{"merchant_id":"sandbox-running-lab-b","name":"Sandbox Running Lab (alt)","storefront_host":"sandbox-running-lab.example.test","product_count":0,"categorized_product_count":1,"federation_eligible_pct":0,"category_count":0,"sku_count":0,"last_sync_at":null,"catalog_sync":{"status":"complete","indexed_product_count":0,"federated_eligible_count":0,"categorized_product_count":1,"merchant_sku_count":0,"source_catalog_count":null,"source_catalog_capped":false},"global_visibility":{"status":"included","basis":"synchronized_catalog","can_opt_out":true},"storefront_discovery":{"status":"not_verified","verified_at":null,"last_check_at":"2026-06-09T20:55:57.935Z","last_error":"getaddrinfo ENOTFOUND sandbox-running-lab.example.test"}}]}