Unique identifier for this evaluation. Echo it back as a line item property (e.g. __as_offer_id) when a shopper adds a recommended product, so the resulting order attributes back to this specific evaluation in AfterSell reporting. Present on successful evaluations; absent on error responses that short-circuit before evaluation.
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Aftersell \u0026 Upcart Docs","colors":{"primary":"#C20075","light":"#C20075","dark":"#C20075"},"logo":{"light":"https://mintcdn.com/aftersell/SnQwk0JGiG2BpIZt/images/logos/aftersell-logo-black.svg?fit=max\u0026auto=format\u0026n=SnQwk0JGiG2BpIZt\u0026q=85\u0026s=3a4b16f98056fa407d2af5a4f86b7fd8","dark":"https://mintcdn.com/aftersell/SnQwk0JGiG2BpIZt/images/logos/aftersell-logo-white.svg?fit=max\u0026auto=format\u0026n=SnQwk0JGiG2BpIZt\u0026q=85\u0026s=d21a9be0c73e17a2155dd3eb12722d76","href":"https://docs.aftersell.com"},"favicon":{"light":"https://mintcdn.com/aftersell/SnQwk0JGiG2BpIZt/images/logos/aftersell-favicon.svg?fit=max\u0026auto=format\u0026n=SnQwk0JGiG2BpIZt\u0026q=85\u0026s=af8a1fbfca7c9ced3fdae00424ba2dd0","dark":"https://mintcdn.com/aftersell/SnQwk0JGiG2BpIZt/images/logos/aftersell-favicon.svg?fit=max\u0026auto=format\u0026n=SnQwk0JGiG2BpIZt\u0026q=85\u0026s=af8a1fbfca7c9ced3fdae00424ba2dd0"},"navbar":{"links":[{"icon":"home","href":"https://www.aftersell.com","label":"Aftersell Website"},{"icon":"home","href":"https://www.aftersell.com/cart","label":"Upcart Website"}]},"seo":{"metatags":{"canonical":"https://docs.aftersell.com"}},"fonts":{"heading":{"family":"Archivo","weight":600},"body":{"family":"Archivo","weight":400}},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":{"light":"snazzy-light","dark":"github-dark"}},"latex":true},"contextual":{"options":["assistant","chatgpt","claude","view"],"display":"header"},"navigation":{"languages":[{"language":"en","href":"aftersell/welcome_to_aftersell"},{"language":"fr","href":"fr/aftersell/welcome_to_aftersell"},{"language":"es","href":"es/aftersell/welcome_to_aftersell"},{"language":"zh","href":"zh/aftersell/welcome_to_aftersell"},{"language":"ja","href":"ja/aftersell/welcome_to_aftersell"},{"language":"de","href":"de/aftersell/welcome_to_aftersell"},{"language":"ru","href":"ru/aftersell/welcome_to_aftersell"},{"language":"it","href":"it/aftersell/welcome_to_aftersell"},{"language":"nl","href":"nl/aftersell/welcome_to_aftersell"},{"language":"pt","href":"pt/aftersell/welcome_to_aftersell"},{"language":"pl","href":"pl/aftersell/welcome_to_aftersell"},{"language":"ko","href":"ko/aftersell/welcome_to_aftersell"},{"language":"da","href":"da/aftersell/welcome_to_aftersell"},{"language":"ar","href":"ar/aftersell/welcome_to_aftersell"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"aftersell","hasAudioNarration":false,"actualSubdomain":"aftersell","customDomains":["docs.aftersell.com"],"gitSource":{"type":"github","owner":"rokt","repo":"aftersell-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae95e0a27cd724990da17c3","collectionId":"2c65c0ff-ed92-4317-a115-1f0054596553","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae95e0a27cd724990da17c3"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae95e0a27cd724990da17c3","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"en","tag":"Guides","count":267},{"language":"ar","tag":"الأدلة","count":267},{"language":"da","tag":"Vejledninger","count":267},{"language":"de","tag":"Anleitungen","count":267},{"language":"es","tag":"Guías","count":267},{"language":"fr","tag":"Guides","count":267},{"language":"it","tag":"Guide","count":267},{"language":"ja","tag":"ガイド","count":267},{"language":"ko","tag":"가이드","count":267},{"language":"nl","tag":"Handleidingen","count":267},{"language":"pl","tag":"Przewodniki","count":267},{"language":"pt","tag":"Guias","count":267},{"language":"ru","tag":"Руководства","count":267},{"language":"zh","tag":"指南","count":267},{"language":"en","tag":"Aftersell","count":202},{"language":"ar","tag":"Aftersell","count":202},{"language":"da","tag":"Aftersell","count":202},{"language":"de","tag":"Aftersell","count":202},{"language":"es","tag":"Aftersell","count":202},{"language":"fr","tag":"Aftersell","count":202},{"language":"it","tag":"Aftersell","count":202},{"language":"ja","tag":"Aftersell","count":202},{"language":"ko","tag":"Aftersell","count":202},{"language":"nl","tag":"Aftersell","count":202},{"language":"pl","tag":"Aftersell","count":202},{"language":"pt","tag":"Aftersell","count":202},{"language":"ru","tag":"Aftersell","count":202},{"language":"zh","tag":"Aftersell","count":202},{"language":"en","tag":"Upcart","count":133},{"language":"ar","tag":"Upcart","count":133},{"language":"da","tag":"Upcart","count":133},{"language":"de","tag":"Upcart","count":133},{"language":"es","tag":"Upcart","count":133},{"language":"fr","tag":"Upcart","count":133},{"language":"it","tag":"Upcart","count":133},{"language":"ja","tag":"Upcart","count":133},{"language":"ko","tag":"Upcart","count":133},{"language":"nl","tag":"Upcart","count":133},{"language":"pl","tag":"Upcart","count":133},{"language":"pt","tag":"Upcart","count":133},{"language":"ru","tag":"Upcart","count":133},{"language":"zh","tag":"Upcart","count":133},{"language":"en","tag":"Reference","count":68},{"language":"ar","tag":"المرجع","count":68},{"language":"da","tag":"Reference","count":68},{"language":"de","tag":"Referenz","count":68},{"language":"es","tag":"Referencia","count":68},{"language":"fr","tag":"Référence","count":68},{"language":"it","tag":"Riferimento","count":68},{"language":"ja","tag":"リファレンス","count":68},{"language":"ko","tag":"참조","count":68},{"language":"nl","tag":"Referentie","count":68},{"language":"pl","tag":"Dokumentacja","count":68},{"language":"pt","tag":"Referência","count":68},{"language":"ru","tag":"Справочник","count":68},{"language":"zh","tag":"参考","count":68},{"language":"en","tag":"Aftersell Cart","count":48},{"language":"ar","tag":"سلة Aftersell","count":48},{"language":"da","tag":"Aftersell-kurv","count":48},{"language":"de","tag":"Aftersell-Warenkorb","count":48},{"language":"es","tag":"Carrito de Aftersell","count":48},{"language":"fr","tag":"Panier Aftersell","count":48},{"language":"it","tag":"Carrello Aftersell","count":48},{"language":"ja","tag":"Aftersell カート","count":48},{"language":"ko","tag":"Aftersell 장바구니","count":48},{"language":"nl","tag":"Aftersell-winkelwagen","count":48},{"language":"pl","tag":"Koszyk Aftersell","count":48},{"language":"pt","tag":"Carrinho Aftersell","count":48},{"language":"ru","tag":"Корзина Aftersell","count":48},{"language":"zh","tag":"Aftersell 购物车","count":48},{"language":"en","tag":"Post-Purchase Upsells","count":45},{"language":"ar","tag":"عروض البيع الإضافي بعد الشراء","count":45},{"language":"da","tag":"Mersalg efter køb","count":45},{"language":"de","tag":"Post-Purchase-Upsells","count":45},{"language":"es","tag":"Ventas adicionales poscompra","count":45},{"language":"fr","tag":"Ventes incitatives post-achat","count":45},{"language":"it","tag":"Upsell post-acquisto","count":45},{"language":"ja","tag":"購入後アップセル","count":45},{"language":"ko","tag":"구매 후 업셀","count":45},{"language":"nl","tag":"Post-purchase upsells","count":45},{"language":"pl","tag":"Upselle po zakupie","count":45},{"language":"pt","tag":"Upsells pós-compra","count":45},{"language":"ru","tag":"Апселлы после покупки","count":45},{"language":"zh","tag":"购后追加销售","count":45},{"language":"en","tag":"Troubleshooting","count":33},{"language":"ar","tag":"استكشاف الأخطاء وإصلاحها","count":33},{"language":"da","tag":"Fejlfinding","count":33},{"language":"de","tag":"Fehlerbehebung","count":33},{"language":"es","tag":"Solución de problemas","count":33},{"language":"fr","tag":"Dépannage","count":33},{"language":"it","tag":"Risoluzione dei problemi","count":33},{"language":"ja","tag":"トラブルシューティング","count":33},{"language":"ko","tag":"문제 해결","count":33},{"language":"nl","tag":"Probleemoplossing","count":33},{"language":"pl","tag":"Rozwiązywanie problemów","count":33},{"language":"pt","tag":"Solução de problemas","count":33},{"language":"ru","tag":"Устранение неполадок","count":33},{"language":"zh","tag":"故障排除","count":33},{"language":"en","tag":"Cart Modules","count":22},{"language":"ar","tag":"وحدات السلة","count":22},{"language":"da","tag":"Kurvmoduler","count":22},{"language":"de","tag":"Warenkorb-Module","count":22},{"language":"es","tag":"Módulos del carrito","count":22},{"language":"fr","tag":"Modules de panier","count":22},{"language":"it","tag":"Moduli del carrello","count":22},{"language":"ja","tag":"カートモジュール","count":22},{"language":"ko","tag":"장바구니 모듈","count":22},{"language":"nl","tag":"Winkelwagenmodules","count":22},{"language":"pl","tag":"Moduły koszyka","count":22},{"language":"pt","tag":"Módulos do carrinho","count":22},{"language":"ru","tag":"Модули корзины","count":22},{"language":"zh","tag":"购物车模块","count":22},{"language":"en","tag":"Setup \u0026 Configuration","count":21},{"language":"ar","tag":"الإعداد والتهيئة","count":21},{"language":"da","tag":"Opsætning og konfiguration","count":21},{"language":"de","tag":"Einrichtung \u0026 Konfiguration","count":21},{"language":"es","tag":"Instalación y configuración","count":21},{"language":"fr","tag":"Installation et configuration","count":21},{"language":"it","tag":"Installazione e configurazione","count":21},{"language":"ja","tag":"セットアップと設定","count":21},{"language":"ko","tag":"설정 및 구성","count":21},{"language":"nl","tag":"Installatie en configuratie","count":21},{"language":"pl","tag":"Instalacja i konfiguracja","count":21},{"language":"pt","tag":"Instalação e configuração","count":21},{"language":"ru","tag":"Установка и настройка","count":21},{"language":"zh","tag":"设置与配置","count":21},{"language":"en","tag":"Cart blocks","count":18},{"language":"ar","tag":"كتل السلة","count":18},{"language":"da","tag":"Kurvblokke","count":18},{"language":"de","tag":"Warenkorb-Blöcke","count":18},{"language":"es","tag":"Bloques del carrito","count":18},{"language":"fr","tag":"Blocs de panier","count":18},{"language":"it","tag":"Blocchi del carrello","count":18},{"language":"ja","tag":"カートブロック","count":18},{"language":"ko","tag":"장바구니 블록","count":18},{"language":"nl","tag":"Winkelwagenblokken","count":18},{"language":"pl","tag":"Bloki koszyka","count":18},{"language":"pt","tag":"Blocos do carrinho","count":18},{"language":"ru","tag":"Блоки корзины","count":18},{"language":"zh","tag":"购物车区块","count":18}],"searchSettings":{"maxResults":10,"isFiltersEnabled":true}},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"email":"support@aftersell.app"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"aftersell/strategies_api_reference_evaluate_strategy","slug":"/aftersell/strategies_api_reference_evaluate_strategy","pageMetadata":{"title":"Evaluate strategy","keywords":["evaluate strategy","strategy API","product recommendations API","evaluate endpoint","API reference","X-Strategy-Api-Key","product targeting","recommendation engine"],"openapi":"api/strategies.json POST /api/public/strategy/evaluate","description":"Evaluate a strategy against provided context to return the desired experience.","href":"/aftersell/strategies_api_reference_evaluate_strategy"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Evaluate a strategy against provided context to return the desired experience.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"snazzy-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Evaluate strategy","keywords":["evaluate strategy","strategy API","product recommendations API","evaluate endpoint","API reference","X-Strategy-Api-Key","product targeting","recommendation engine"],"openapi":"api/strategies.json POST /api/public/strategy/evaluate","description":"Evaluate a strategy against provided context to return the desired experience.","href":"/aftersell/strategies_api_reference_evaluate_strategy"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"evaluateStrategy","summary":"Evaluate Strategy","description":"Evaluate a strategy against provided context to return the desired experience.","requestBody":"5458009f-6cc3-45b9-b09a-1ec8c58b7278","responses":{"200":"5fef4c10-c06f-43f6-a921-7ccef8670c03","400":"d45f6ff8-e104-4b47-b628-60bbdc700397","401":"7d1c7d05-fc7a-4b1e-a735-3b6b0b99043c","403":"6575e198-4891-4be3-84ad-f7d8b1c39404","500":"79f72ae5-5a6d-4d86-a26a-7a3310280b67"},"method":"post","type":"path","servers":["506d1b41-1bb2-4e9a-bd72-80f5a3848ba8"],"security":["d46a218a-89ed-4008-ab54-b94b5a7b5a91"],"path":"/api/public/strategy/evaluate","baseUrlOptions":["https://start.aftersell.app"],"title":"Evaluate Strategy","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["shopDomain","strategyId","context"],"properties":{"shopDomain":{"type":"string","description":"Your store's permanent domain","isRequired":true,"uniqueKey":"shopDomain","typeLabel":"string"},"strategyId":{"type":"string","description":"The strategy ID to evaluate (a single 24-char hex MongoDB ObjectId)","isRequired":true,"uniqueKey":"strategyId","typeLabel":"string"},"context":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","required":["productId"],"properties":{"productId":{"type":"string","description":"Shopify GID format: `gid://shopify/Product/{id}`","isRequired":true,"uniqueKey":"context.products.items.[INDEX].productId","typeLabel":"string"},"variantId":{"type":"string","description":"Shopify GID format: `gid://shopify/ProductVariant/{id}`","uniqueKey":"context.products.items.[INDEX].variantId","typeLabel":"string"},"quantity":{"type":"number","description":"Item quantity (non-negative integer)","minimum":0,"uniqueKey":"context.products.items.[INDEX].quantity","typeLabel":"number"},"price":{"type":"number","description":"Unit price in dollars (non-negative)","minimum":0,"uniqueKey":"context.products.items.[INDEX].price","typeLabel":"number"},"handle":{"type":"string","description":"Product handle/slug","uniqueKey":"context.products.items.[INDEX].handle","typeLabel":"string"},"title":{"type":"string","description":"Product title","uniqueKey":"context.products.items.[INDEX].title","typeLabel":"string"},"vendor":{"type":"string","description":"Product vendor name","uniqueKey":"context.products.items.[INDEX].vendor","typeLabel":"string"},"productType":{"type":"string","description":"Product type","uniqueKey":"context.products.items.[INDEX].productType","typeLabel":"string"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"context.products.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"description":"Product tags","uniqueKey":"context.products.items.[INDEX].tags","typeLabel":"string[]"},"collections":{"type":"array","items":{"type":"string","uniqueKey":"context.products.items.[INDEX].collections.items.[INDEX]","typeLabel":"string"},"description":"Collection GIDs the product belongs to","uniqueKey":"context.products.items.[INDEX].collections","typeLabel":"string[]"},"sellingPlan":{"type":"string","enum":["subscription","one-time"],"description":"Selling plan type","uniqueKey":"context.products.items.[INDEX].sellingPlan","typeLabel":"enum\u003cstring>"},"metafields":{"type":"array","items":{"type":"object","required":["namespace","key","value"],"properties":{"namespace":{"type":"string","description":"Metafield namespace","isRequired":true,"uniqueKey":"context.products.items.[INDEX].metafields.items.[INDEX].namespace","typeLabel":"string"},"key":{"type":"string","description":"Metafield key","isRequired":true,"uniqueKey":"context.products.items.[INDEX].metafields.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","description":"Metafield value","isRequired":true,"uniqueKey":"context.products.items.[INDEX].metafields.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"context.products.items.[INDEX].metafields.items.[INDEX]","typeLabel":"object"},"description":"Product metafields for predicate matching. Used for evaluation only — never returned in the response.","uniqueKey":"context.products.items.[INDEX].metafields","typeLabel":"object[]"}},"uniqueKey":"context.products.items.[INDEX]","typeLabel":"object"},"description":"Products to evaluate the strategy against. Optional — omit or pass `[]` to evaluate context-only rules (e.g. cart, customer, session, datetime predicates) such as a curated collection for an empty cart. Product-scoped predicates fall through to `false` when no products are supplied.","uniqueKey":"context.products","typeLabel":"object[]"},"cartToken":{"type":"string","description":"Shopify cart token. Either `cartToken` or `checkoutToken` must be provided.","uniqueKey":"context.cartToken","typeLabel":"string"},"checkoutToken":{"type":"string","description":"Shopify checkout token. Either `cartToken` or `checkoutToken` must be provided.","uniqueKey":"context.checkoutToken","typeLabel":"string"},"sessionId":{"type":"string","description":"Optional session identifier for tracking and tracing","uniqueKey":"context.sessionId","typeLabel":"string"},"cart":{"type":"object","properties":{"subtotal":{"type":"number","description":"Cart subtotal in store-currency major units (e.g. dollars), consistent with product `price`. The value is compared verbatim against `cart_subtotal` rule thresholds — no unit conversion is applied — so send the same units you author your rules in.","minimum":0,"uniqueKey":"context.cart.subtotal","typeLabel":"number"},"itemCount":{"type":"number","description":"Total item quantity across all lines","minimum":0,"uniqueKey":"context.cart.itemCount","typeLabel":"number"},"lineCount":{"type":"number","description":"Number of distinct line items","minimum":0,"uniqueKey":"context.cart.lineCount","typeLabel":"number"},"attributes":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"context.cart.attributes.additionalProperties","typeLabel":"string"},"description":"Cart attributes as a key-value map","uniqueKey":"context.cart.attributes","typeLabel":"object"},"notes":{"type":"string","description":"Cart note","uniqueKey":"context.cart.notes","typeLabel":"string"}},"uniqueKey":"context.cart","typeLabel":"object"},"customer":{"type":"object","properties":{"customerId":{"type":"string","description":"Shopify Customer GID","uniqueKey":"context.customer.customerId","typeLabel":"string"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"context.customer.tags.items.[INDEX]","typeLabel":"string"},"description":"Customer tags","uniqueKey":"context.customer.tags","typeLabel":"string[]"},"countryCode":{"type":"string","description":"Customer billing country code","uniqueKey":"context.customer.countryCode","typeLabel":"string"},"provinceCode":{"type":"string","description":"Customer billing province code","uniqueKey":"context.customer.provinceCode","typeLabel":"string"},"locale":{"type":"string","description":"Customer locale","uniqueKey":"context.customer.locale","typeLabel":"string"},"orderCount":{"type":"number","description":"Number of orders placed","minimum":0,"uniqueKey":"context.customer.orderCount","typeLabel":"number"},"totalSpent":{"type":"number","description":"Lifetime spend in store currency","minimum":0,"uniqueKey":"context.customer.totalSpent","typeLabel":"number"},"acceptsMarketing":{"type":"boolean","description":"Whether the customer accepts marketing","uniqueKey":"context.customer.acceptsMarketing","typeLabel":"boolean"}},"uniqueKey":"context.customer","typeLabel":"object"},"session":{"type":"object","properties":{"landingUrl":{"type":"string","description":"Raw landing URL (e.g. window.location.href). Matched by the `landing_url` predicate via case-insensitive substring/equality - use this to target a specific campaign or channel by matching a parameter embedded in the URL.","uniqueKey":"context.session.landingUrl","typeLabel":"string"},"currencyCode":{"type":"string","description":"Store currency code","uniqueKey":"context.session.currencyCode","typeLabel":"string"},"shippingCountryCode":{"type":"string","description":"Shipping destination country code","uniqueKey":"context.session.shippingCountryCode","typeLabel":"string"},"shippingProvinceCode":{"type":"string","description":"Shipping destination province code","uniqueKey":"context.session.shippingProvinceCode","typeLabel":"string"},"shippingMethod":{"type":"string","description":"Selected shipping method name","uniqueKey":"context.session.shippingMethod","typeLabel":"string"}},"uniqueKey":"context.session","typeLabel":"object"},"visitorId":{"type":"string","maxLength":64,"description":"Optional viewer key used to resolve the shopper's recently-viewed history. This is not a Hermes session id, and it does not satisfy the `cartToken` / `checkoutToken` requirement. Fails open — an invalid value is ignored rather than rejected.","uniqueKey":"context.visitorId","typeLabel":"string"},"localization":{"type":"object","description":"Buyer localization, used to select Shopify-computed contextual prices on multi-currency stores. Every field is optional and fails open: a malformed value is ignored rather than rejected, and pricing falls back to the shop currency.","properties":{"country":{"type":"string","description":"Buyer's country as an ISO 3166-1 alpha-2 code. Validated against Shopify's CountryCode enum and used for Admin API contextual pricing. Case-insensitive.","example":"AU","uniqueKey":"context.localization.country","typeLabel":"string"},"currency":{"type":"string","description":"Buyer's presentment currency as an ISO 4217 three-letter code. Case-insensitive. Used as a targeting input only: it fills `context.session.currencyCode`, the value the `store_currency_code` rule predicate matches against, and only when the caller has not already supplied one. It does not set the `currencyCode` returned on recommended products — that follows Shopify contextual pricing, which is selected by `localization.country`, and otherwise falls back to the shop's own currency. Unlike `country`, this value is only checked for being three letters; an unrecognised code is accepted and simply matches no rule.","example":"AUD","uniqueKey":"context.localization.currency","typeLabel":"string"},"language":{"type":"string","maxLength":35,"description":"Buyer's language tag, e.g. `en` or `en-AU`. Reserved for future translation support.","example":"en-AU","uniqueKey":"context.localization.language","typeLabel":"string"}},"uniqueKey":"context.localization","typeLabel":"object"}},"isRequired":true,"uniqueKey":"context","typeLabel":"object"},"surface":{"type":"string","enum":["checkout","post_purchase","thank_you","custom","cart","pdp"],"description":"Optional surface the evaluation is running on. Recorded for tracing and reporting.","uniqueKey":"surface","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"shopDomain":"\u003cstring>","strategyId":"\u003cstring>","context":{"products":[{"productId":"\u003cstring>","variantId":"\u003cstring>","quantity":1,"price":1,"handle":"\u003cstring>","title":"\u003cstring>","vendor":"\u003cstring>","productType":"\u003cstring>","tags":["\u003cstring>"],"collections":["\u003cstring>"],"metafields":[{"namespace":"\u003cstring>","key":"\u003cstring>","value":"\u003cstring>"}]}],"cartToken":"\u003cstring>","checkoutToken":"\u003cstring>","sessionId":"\u003cstring>","cart":{"subtotal":1,"itemCount":1,"lineCount":1,"attributes":{},"notes":"\u003cstring>"},"customer":{"customerId":"\u003cstring>","tags":["\u003cstring>"],"countryCode":"\u003cstring>","provinceCode":"\u003cstring>","locale":"\u003cstring>","orderCount":1,"totalSpent":1,"acceptsMarketing":true},"session":{"landingUrl":"\u003cstring>","currencyCode":"\u003cstring>","shippingCountryCode":"\u003cstring>","shippingProvinceCode":"\u003cstring>","shippingMethod":"\u003cstring>"},"visitorId":"\u003cstring>","localization":{"country":"AU","currency":"AUD","language":"en-AU"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"5fef4c10-c06f-43f6-a921-7ccef8670c03":{"description":"Evaluation successful","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the evaluation succeeded","uniqueKey":"success","typeLabel":"boolean"},"products":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","description":"Shopify Product GID","uniqueKey":"products.items.[INDEX].productId","typeLabel":"string"},"handle":{"type":"string","description":"Product handle/slug","uniqueKey":"products.items.[INDEX].handle","typeLabel":"string"},"title":{"type":"string","description":"Product title","uniqueKey":"products.items.[INDEX].title","typeLabel":"string"},"vendor":{"type":"string","description":"Vendor name","uniqueKey":"products.items.[INDEX].vendor","typeLabel":"string"},"productType":{"type":"string","description":"Product type","uniqueKey":"products.items.[INDEX].productType","typeLabel":"string"},"price":{"type":"string","description":"Lowest variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of the product-level `price` and `compareAtPrice` rollup: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether the product is available for purchase","uniqueKey":"products.items.[INDEX].availableForSale","typeLabel":"boolean"},"description":{"type":"string","description":"Product description","uniqueKey":"products.items.[INDEX].description","typeLabel":"string"},"url":{"type":"string","description":"Relative product URL","uniqueKey":"products.items.[INDEX].url","typeLabel":"string"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].tags","typeLabel":"string[]"},"collectionIds":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].collectionIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].collectionIds","typeLabel":"string[]"},"images":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","description":"Image URL","uniqueKey":"products.items.[INDEX].images.items.[INDEX].src","typeLabel":"string"},"altText":{"type":"string","description":"Image alt text (may be absent)","uniqueKey":"products.items.[INDEX].images.items.[INDEX].altText","typeLabel":"string"},"position":{"type":"number","description":"Image sort position","uniqueKey":"products.items.[INDEX].images.items.[INDEX].position","typeLabel":"number"}},"uniqueKey":"products.items.[INDEX].images.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].images","typeLabel":"object[]"},"variants":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","description":"Shopify ProductVariant GID","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].variantId","typeLabel":"string"},"title":{"type":"string","description":"Variant title","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].title","typeLabel":"string"},"price":{"type":"string","description":"Variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of `price` and `compareAtPrice`: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether this variant is available","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].availableForSale","typeLabel":"boolean"},"sku":{"type":"string","description":"Variant SKU (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].sku","typeLabel":"string"},"image":{"type":"object","properties":{"src":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image.src","typeLabel":"string"}},"description":"Variant-specific image, used to swap the card image on variant select. Absent when the variant has no distinct image — fall back to the product image.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image","typeLabel":"object"},"selectedOptions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX]","typeLabel":"object"},"description":"Array of option name/value pairs (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].variants","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX]","typeLabel":"object"},"description":"Fully enriched recommended products","uniqueKey":"products","typeLabel":"object[]"},"evaluationId":{"type":"string","description":"Unique identifier for this evaluation. Echo it back as a line item property (e.g. `__as_offer_id`) when a shopper adds a recommended product, so the resulting order attributes back to this specific evaluation in AfterSell reporting. Present on successful evaluations; absent on error responses that short-circuit before evaluation.","uniqueKey":"evaluationId","typeLabel":"string"},"resolution":{"type":"object","properties":{"strategyId":{"oneOf":[{"type":"string","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.1","typeLabel":"null"}],"uniqueKey":"resolution.strategyId","typeLabel":"string | null"},"matchedRuleIds":{"type":"array","items":{"type":"string","uniqueKey":"resolution.matchedRuleIds.items.[INDEX]","typeLabel":"string"},"description":"IDs of rules that matched","uniqueKey":"resolution.matchedRuleIds","typeLabel":"string[]"},"selectionMethod":{"type":"string","description":"Always `rules_engine`","uniqueKey":"resolution.selectionMethod","typeLabel":"string"},"fallbackUsed":{"type":"boolean","description":"Whether fallback logic was used","uniqueKey":"resolution.fallbackUsed","typeLabel":"boolean"}},"uniqueKey":"resolution","typeLabel":"object"},"meta":{"type":"object","properties":{"servedFromCache":{"type":"boolean","description":"Whether product data was served from cache","uniqueKey":"meta.servedFromCache","typeLabel":"boolean"},"processingTimeMs":{"type":"number","description":"Server-side processing time in milliseconds","uniqueKey":"meta.processingTimeMs","typeLabel":"number"},"data":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"meta.data.additionalProperties","typeLabel":"string"},"description":"Key-value pairs emitted by matched rules with `key_value` outputs. Values are always strings. Always present; may be an empty object. Keys from the first matching rule win.","uniqueKey":"meta.data","typeLabel":"object"},"explanation":{"type":"string","description":"Optional debug explanation (may be absent)","uniqueKey":"meta.explanation","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Present only when errors occur","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"products":[{"productId":"\u003cstring>","handle":"\u003cstring>","title":"\u003cstring>","vendor":"\u003cstring>","productType":"\u003cstring>","price":"\u003cstring>","compareAtPrice":"\u003cstring>","currencyCode":"\u003cstring>","availableForSale":true,"description":"\u003cstring>","url":"\u003cstring>","tags":["\u003cstring>"],"collectionIds":["\u003cstring>"],"images":[{"src":"\u003cstring>","altText":"\u003cstring>","position":123}],"variants":[{"variantId":"\u003cstring>","title":"\u003cstring>","price":"\u003cstring>","compareAtPrice":"\u003cstring>","currencyCode":"\u003cstring>","availableForSale":true,"sku":"\u003cstring>","image":{"src":"\u003cstring>"},"selectedOptions":[{"name":"\u003cstring>","value":"\u003cstring>"}]}]}],"evaluationId":"\u003cstring>","resolution":{"strategyId":"\u003cstring>","matchedRuleIds":["\u003cstring>"],"selectionMethod":"\u003cstring>","fallbackUsed":true},"meta":{"servedFromCache":true,"processingTimeMs":123,"data":{},"explanation":"\u003cstring>"},"errors":[{"code":"\u003cstring>","message":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"d45f6ff8-e104-4b47-b628-60bbdc700397":{"description":"Validation error — missing required fields, invalid ObjectId format, or neither `cartToken` nor `checkoutToken` provided","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the evaluation succeeded","uniqueKey":"success","typeLabel":"boolean"},"products":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","description":"Shopify Product GID","uniqueKey":"products.items.[INDEX].productId","typeLabel":"string"},"handle":{"type":"string","description":"Product handle/slug","uniqueKey":"products.items.[INDEX].handle","typeLabel":"string"},"title":{"type":"string","description":"Product title","uniqueKey":"products.items.[INDEX].title","typeLabel":"string"},"vendor":{"type":"string","description":"Vendor name","uniqueKey":"products.items.[INDEX].vendor","typeLabel":"string"},"productType":{"type":"string","description":"Product type","uniqueKey":"products.items.[INDEX].productType","typeLabel":"string"},"price":{"type":"string","description":"Lowest variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of the product-level `price` and `compareAtPrice` rollup: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether the product is available for purchase","uniqueKey":"products.items.[INDEX].availableForSale","typeLabel":"boolean"},"description":{"type":"string","description":"Product description","uniqueKey":"products.items.[INDEX].description","typeLabel":"string"},"url":{"type":"string","description":"Relative product URL","uniqueKey":"products.items.[INDEX].url","typeLabel":"string"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].tags","typeLabel":"string[]"},"collectionIds":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].collectionIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].collectionIds","typeLabel":"string[]"},"images":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","description":"Image URL","uniqueKey":"products.items.[INDEX].images.items.[INDEX].src","typeLabel":"string"},"altText":{"type":"string","description":"Image alt text (may be absent)","uniqueKey":"products.items.[INDEX].images.items.[INDEX].altText","typeLabel":"string"},"position":{"type":"number","description":"Image sort position","uniqueKey":"products.items.[INDEX].images.items.[INDEX].position","typeLabel":"number"}},"uniqueKey":"products.items.[INDEX].images.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].images","typeLabel":"object[]"},"variants":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","description":"Shopify ProductVariant GID","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].variantId","typeLabel":"string"},"title":{"type":"string","description":"Variant title","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].title","typeLabel":"string"},"price":{"type":"string","description":"Variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of `price` and `compareAtPrice`: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether this variant is available","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].availableForSale","typeLabel":"boolean"},"sku":{"type":"string","description":"Variant SKU (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].sku","typeLabel":"string"},"image":{"type":"object","properties":{"src":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image.src","typeLabel":"string"}},"description":"Variant-specific image, used to swap the card image on variant select. Absent when the variant has no distinct image — fall back to the product image.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image","typeLabel":"object"},"selectedOptions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX]","typeLabel":"object"},"description":"Array of option name/value pairs (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].variants","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX]","typeLabel":"object"},"description":"Fully enriched recommended products","uniqueKey":"products","typeLabel":"object[]"},"evaluationId":{"type":"string","description":"Unique identifier for this evaluation. Echo it back as a line item property (e.g. `__as_offer_id`) when a shopper adds a recommended product, so the resulting order attributes back to this specific evaluation in AfterSell reporting. Present on successful evaluations; absent on error responses that short-circuit before evaluation.","uniqueKey":"evaluationId","typeLabel":"string"},"resolution":{"type":"object","properties":{"strategyId":{"oneOf":[{"type":"string","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.1","typeLabel":"null"}],"uniqueKey":"resolution.strategyId","typeLabel":"string | null"},"matchedRuleIds":{"type":"array","items":{"type":"string","uniqueKey":"resolution.matchedRuleIds.items.[INDEX]","typeLabel":"string"},"description":"IDs of rules that matched","uniqueKey":"resolution.matchedRuleIds","typeLabel":"string[]"},"selectionMethod":{"type":"string","description":"Always `rules_engine`","uniqueKey":"resolution.selectionMethod","typeLabel":"string"},"fallbackUsed":{"type":"boolean","description":"Whether fallback logic was used","uniqueKey":"resolution.fallbackUsed","typeLabel":"boolean"}},"uniqueKey":"resolution","typeLabel":"object"},"meta":{"type":"object","properties":{"servedFromCache":{"type":"boolean","description":"Whether product data was served from cache","uniqueKey":"meta.servedFromCache","typeLabel":"boolean"},"processingTimeMs":{"type":"number","description":"Server-side processing time in milliseconds","uniqueKey":"meta.processingTimeMs","typeLabel":"number"},"data":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"meta.data.additionalProperties","typeLabel":"string"},"description":"Key-value pairs emitted by matched rules with `key_value` outputs. Values are always strings. Always present; may be an empty object. Keys from the first matching rule win.","uniqueKey":"meta.data","typeLabel":"object"},"explanation":{"type":"string","description":"Optional debug explanation (may be absent)","uniqueKey":"meta.explanation","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Present only when errors occur","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"VALIDATION_ERROR":{"title":"VALIDATION_ERROR","value":{"success":false,"products":[],"resolution":{"strategyId":null,"matchedRuleIds":[],"selectionMethod":"rules_engine","fallbackUsed":false},"meta":{"servedFromCache":false,"processingTimeMs":0,"data":{}},"errors":[{"code":"VALIDATION_ERROR","message":"Validation failed"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"7d1c7d05-fc7a-4b1e-a735-3b6b0b99043c":{"description":"Authentication error — missing or invalid API key, key not configured for shop, or unrecognized shop domain. No further detail is returned in the response body.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the evaluation succeeded","uniqueKey":"success","typeLabel":"boolean"},"products":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","description":"Shopify Product GID","uniqueKey":"products.items.[INDEX].productId","typeLabel":"string"},"handle":{"type":"string","description":"Product handle/slug","uniqueKey":"products.items.[INDEX].handle","typeLabel":"string"},"title":{"type":"string","description":"Product title","uniqueKey":"products.items.[INDEX].title","typeLabel":"string"},"vendor":{"type":"string","description":"Vendor name","uniqueKey":"products.items.[INDEX].vendor","typeLabel":"string"},"productType":{"type":"string","description":"Product type","uniqueKey":"products.items.[INDEX].productType","typeLabel":"string"},"price":{"type":"string","description":"Lowest variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of the product-level `price` and `compareAtPrice` rollup: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether the product is available for purchase","uniqueKey":"products.items.[INDEX].availableForSale","typeLabel":"boolean"},"description":{"type":"string","description":"Product description","uniqueKey":"products.items.[INDEX].description","typeLabel":"string"},"url":{"type":"string","description":"Relative product URL","uniqueKey":"products.items.[INDEX].url","typeLabel":"string"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].tags","typeLabel":"string[]"},"collectionIds":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].collectionIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].collectionIds","typeLabel":"string[]"},"images":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","description":"Image URL","uniqueKey":"products.items.[INDEX].images.items.[INDEX].src","typeLabel":"string"},"altText":{"type":"string","description":"Image alt text (may be absent)","uniqueKey":"products.items.[INDEX].images.items.[INDEX].altText","typeLabel":"string"},"position":{"type":"number","description":"Image sort position","uniqueKey":"products.items.[INDEX].images.items.[INDEX].position","typeLabel":"number"}},"uniqueKey":"products.items.[INDEX].images.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].images","typeLabel":"object[]"},"variants":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","description":"Shopify ProductVariant GID","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].variantId","typeLabel":"string"},"title":{"type":"string","description":"Variant title","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].title","typeLabel":"string"},"price":{"type":"string","description":"Variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of `price` and `compareAtPrice`: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether this variant is available","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].availableForSale","typeLabel":"boolean"},"sku":{"type":"string","description":"Variant SKU (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].sku","typeLabel":"string"},"image":{"type":"object","properties":{"src":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image.src","typeLabel":"string"}},"description":"Variant-specific image, used to swap the card image on variant select. Absent when the variant has no distinct image — fall back to the product image.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image","typeLabel":"object"},"selectedOptions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX]","typeLabel":"object"},"description":"Array of option name/value pairs (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].variants","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX]","typeLabel":"object"},"description":"Fully enriched recommended products","uniqueKey":"products","typeLabel":"object[]"},"evaluationId":{"type":"string","description":"Unique identifier for this evaluation. Echo it back as a line item property (e.g. `__as_offer_id`) when a shopper adds a recommended product, so the resulting order attributes back to this specific evaluation in AfterSell reporting. Present on successful evaluations; absent on error responses that short-circuit before evaluation.","uniqueKey":"evaluationId","typeLabel":"string"},"resolution":{"type":"object","properties":{"strategyId":{"oneOf":[{"type":"string","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.1","typeLabel":"null"}],"uniqueKey":"resolution.strategyId","typeLabel":"string | null"},"matchedRuleIds":{"type":"array","items":{"type":"string","uniqueKey":"resolution.matchedRuleIds.items.[INDEX]","typeLabel":"string"},"description":"IDs of rules that matched","uniqueKey":"resolution.matchedRuleIds","typeLabel":"string[]"},"selectionMethod":{"type":"string","description":"Always `rules_engine`","uniqueKey":"resolution.selectionMethod","typeLabel":"string"},"fallbackUsed":{"type":"boolean","description":"Whether fallback logic was used","uniqueKey":"resolution.fallbackUsed","typeLabel":"boolean"}},"uniqueKey":"resolution","typeLabel":"object"},"meta":{"type":"object","properties":{"servedFromCache":{"type":"boolean","description":"Whether product data was served from cache","uniqueKey":"meta.servedFromCache","typeLabel":"boolean"},"processingTimeMs":{"type":"number","description":"Server-side processing time in milliseconds","uniqueKey":"meta.processingTimeMs","typeLabel":"number"},"data":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"meta.data.additionalProperties","typeLabel":"string"},"description":"Key-value pairs emitted by matched rules with `key_value` outputs. Values are always strings. Always present; may be an empty object. Keys from the first matching rule win.","uniqueKey":"meta.data","typeLabel":"object"},"explanation":{"type":"string","description":"Optional debug explanation (may be absent)","uniqueKey":"meta.explanation","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Present only when errors occur","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"AUTH_ERROR":{"title":"AUTH_ERROR","value":{"success":false,"products":[],"resolution":{"strategyId":null,"matchedRuleIds":[],"selectionMethod":"rules_engine","fallbackUsed":false},"meta":{"servedFromCache":false,"processingTimeMs":0,"data":{}},"errors":[{"code":"AUTH_ERROR","message":"Unauthorized"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"6575e198-4891-4be3-84ad-f7d8b1c39404":{"description":"Authorization error — Strategy is not enabled for this shop.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the evaluation succeeded","uniqueKey":"success","typeLabel":"boolean"},"products":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","description":"Shopify Product GID","uniqueKey":"products.items.[INDEX].productId","typeLabel":"string"},"handle":{"type":"string","description":"Product handle/slug","uniqueKey":"products.items.[INDEX].handle","typeLabel":"string"},"title":{"type":"string","description":"Product title","uniqueKey":"products.items.[INDEX].title","typeLabel":"string"},"vendor":{"type":"string","description":"Vendor name","uniqueKey":"products.items.[INDEX].vendor","typeLabel":"string"},"productType":{"type":"string","description":"Product type","uniqueKey":"products.items.[INDEX].productType","typeLabel":"string"},"price":{"type":"string","description":"Lowest variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of the product-level `price` and `compareAtPrice` rollup: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether the product is available for purchase","uniqueKey":"products.items.[INDEX].availableForSale","typeLabel":"boolean"},"description":{"type":"string","description":"Product description","uniqueKey":"products.items.[INDEX].description","typeLabel":"string"},"url":{"type":"string","description":"Relative product URL","uniqueKey":"products.items.[INDEX].url","typeLabel":"string"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].tags","typeLabel":"string[]"},"collectionIds":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].collectionIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].collectionIds","typeLabel":"string[]"},"images":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","description":"Image URL","uniqueKey":"products.items.[INDEX].images.items.[INDEX].src","typeLabel":"string"},"altText":{"type":"string","description":"Image alt text (may be absent)","uniqueKey":"products.items.[INDEX].images.items.[INDEX].altText","typeLabel":"string"},"position":{"type":"number","description":"Image sort position","uniqueKey":"products.items.[INDEX].images.items.[INDEX].position","typeLabel":"number"}},"uniqueKey":"products.items.[INDEX].images.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].images","typeLabel":"object[]"},"variants":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","description":"Shopify ProductVariant GID","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].variantId","typeLabel":"string"},"title":{"type":"string","description":"Variant title","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].title","typeLabel":"string"},"price":{"type":"string","description":"Variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of `price` and `compareAtPrice`: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether this variant is available","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].availableForSale","typeLabel":"boolean"},"sku":{"type":"string","description":"Variant SKU (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].sku","typeLabel":"string"},"image":{"type":"object","properties":{"src":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image.src","typeLabel":"string"}},"description":"Variant-specific image, used to swap the card image on variant select. Absent when the variant has no distinct image — fall back to the product image.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image","typeLabel":"object"},"selectedOptions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX]","typeLabel":"object"},"description":"Array of option name/value pairs (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].variants","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX]","typeLabel":"object"},"description":"Fully enriched recommended products","uniqueKey":"products","typeLabel":"object[]"},"evaluationId":{"type":"string","description":"Unique identifier for this evaluation. Echo it back as a line item property (e.g. `__as_offer_id`) when a shopper adds a recommended product, so the resulting order attributes back to this specific evaluation in AfterSell reporting. Present on successful evaluations; absent on error responses that short-circuit before evaluation.","uniqueKey":"evaluationId","typeLabel":"string"},"resolution":{"type":"object","properties":{"strategyId":{"oneOf":[{"type":"string","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.1","typeLabel":"null"}],"uniqueKey":"resolution.strategyId","typeLabel":"string | null"},"matchedRuleIds":{"type":"array","items":{"type":"string","uniqueKey":"resolution.matchedRuleIds.items.[INDEX]","typeLabel":"string"},"description":"IDs of rules that matched","uniqueKey":"resolution.matchedRuleIds","typeLabel":"string[]"},"selectionMethod":{"type":"string","description":"Always `rules_engine`","uniqueKey":"resolution.selectionMethod","typeLabel":"string"},"fallbackUsed":{"type":"boolean","description":"Whether fallback logic was used","uniqueKey":"resolution.fallbackUsed","typeLabel":"boolean"}},"uniqueKey":"resolution","typeLabel":"object"},"meta":{"type":"object","properties":{"servedFromCache":{"type":"boolean","description":"Whether product data was served from cache","uniqueKey":"meta.servedFromCache","typeLabel":"boolean"},"processingTimeMs":{"type":"number","description":"Server-side processing time in milliseconds","uniqueKey":"meta.processingTimeMs","typeLabel":"number"},"data":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"meta.data.additionalProperties","typeLabel":"string"},"description":"Key-value pairs emitted by matched rules with `key_value` outputs. Values are always strings. Always present; may be an empty object. Keys from the first matching rule win.","uniqueKey":"meta.data","typeLabel":"object"},"explanation":{"type":"string","description":"Optional debug explanation (may be absent)","uniqueKey":"meta.explanation","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Present only when errors occur","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"FORBIDDEN":{"title":"FORBIDDEN","value":{"success":false,"products":[],"resolution":{"strategyId":null,"matchedRuleIds":[],"selectionMethod":"rules_engine","fallbackUsed":false},"meta":{"servedFromCache":false,"processingTimeMs":0,"data":{}},"errors":[{"code":"FORBIDDEN","message":"Strategy is not enabled for this shop"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"79f72ae5-5a6d-4d86-a26a-7a3310280b67":{"description":"Server error — shop configuration issue or unexpected internal error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the evaluation succeeded","uniqueKey":"success","typeLabel":"boolean"},"products":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","description":"Shopify Product GID","uniqueKey":"products.items.[INDEX].productId","typeLabel":"string"},"handle":{"type":"string","description":"Product handle/slug","uniqueKey":"products.items.[INDEX].handle","typeLabel":"string"},"title":{"type":"string","description":"Product title","uniqueKey":"products.items.[INDEX].title","typeLabel":"string"},"vendor":{"type":"string","description":"Vendor name","uniqueKey":"products.items.[INDEX].vendor","typeLabel":"string"},"productType":{"type":"string","description":"Product type","uniqueKey":"products.items.[INDEX].productType","typeLabel":"string"},"price":{"type":"string","description":"Lowest variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Compare-at price, or null if not set","uniqueKey":"products.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of the product-level `price` and `compareAtPrice` rollup: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether the product is available for purchase","uniqueKey":"products.items.[INDEX].availableForSale","typeLabel":"boolean"},"description":{"type":"string","description":"Product description","uniqueKey":"products.items.[INDEX].description","typeLabel":"string"},"url":{"type":"string","description":"Relative product URL","uniqueKey":"products.items.[INDEX].url","typeLabel":"string"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].tags","typeLabel":"string[]"},"collectionIds":{"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].collectionIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].collectionIds","typeLabel":"string[]"},"images":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","description":"Image URL","uniqueKey":"products.items.[INDEX].images.items.[INDEX].src","typeLabel":"string"},"altText":{"type":"string","description":"Image alt text (may be absent)","uniqueKey":"products.items.[INDEX].images.items.[INDEX].altText","typeLabel":"string"},"position":{"type":"number","description":"Image sort position","uniqueKey":"products.items.[INDEX].images.items.[INDEX].position","typeLabel":"number"}},"uniqueKey":"products.items.[INDEX].images.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].images","typeLabel":"object[]"},"variants":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","description":"Shopify ProductVariant GID","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].variantId","typeLabel":"string"},"title":{"type":"string","description":"Variant title","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].title","typeLabel":"string"},"price":{"type":"string","description":"Variant price as a dollar-amount string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].price","typeLabel":"string"},"compareAtPrice":{"oneOf":[{"type":"string","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.0","typeLabel":"string"},{"type":"null","description":"Variant compare-at price, or null","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice.oneOf.1","typeLabel":"null"}],"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].compareAtPrice","typeLabel":"string | null"},"currencyCode":{"type":"string","description":"ISO 4217 currency of `price` and `compareAtPrice`: the buyer's market currency when contextual pricing was resolved (see `context.localization`), otherwise the shop currency. May be absent, in which case fall back to your own presentment currency.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].currencyCode","typeLabel":"string"},"availableForSale":{"type":"boolean","description":"Whether this variant is available","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].availableForSale","typeLabel":"boolean"},"sku":{"type":"string","description":"Variant SKU (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].sku","typeLabel":"string"},"image":{"type":"object","properties":{"src":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image.src","typeLabel":"string"}},"description":"Variant-specific image, used to swap the card image on variant select. Absent when the variant has no distinct image — fall back to the product image.","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].image","typeLabel":"object"},"selectedOptions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions.items.[INDEX]","typeLabel":"object"},"description":"Array of option name/value pairs (may be absent)","uniqueKey":"products.items.[INDEX].variants.items.[INDEX].selectedOptions","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX].variants.items.[INDEX]","typeLabel":"object"},"uniqueKey":"products.items.[INDEX].variants","typeLabel":"object[]"}},"uniqueKey":"products.items.[INDEX]","typeLabel":"object"},"description":"Fully enriched recommended products","uniqueKey":"products","typeLabel":"object[]"},"evaluationId":{"type":"string","description":"Unique identifier for this evaluation. Echo it back as a line item property (e.g. `__as_offer_id`) when a shopper adds a recommended product, so the resulting order attributes back to this specific evaluation in AfterSell reporting. Present on successful evaluations; absent on error responses that short-circuit before evaluation.","uniqueKey":"evaluationId","typeLabel":"string"},"resolution":{"type":"object","properties":{"strategyId":{"oneOf":[{"type":"string","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The strategy that produced the result. `null` on any error response, and on a successful evaluation where no strategy matched the requested ID for this shop; otherwise echoes the requested `strategyId`.","uniqueKey":"resolution.strategyId.oneOf.1","typeLabel":"null"}],"uniqueKey":"resolution.strategyId","typeLabel":"string | null"},"matchedRuleIds":{"type":"array","items":{"type":"string","uniqueKey":"resolution.matchedRuleIds.items.[INDEX]","typeLabel":"string"},"description":"IDs of rules that matched","uniqueKey":"resolution.matchedRuleIds","typeLabel":"string[]"},"selectionMethod":{"type":"string","description":"Always `rules_engine`","uniqueKey":"resolution.selectionMethod","typeLabel":"string"},"fallbackUsed":{"type":"boolean","description":"Whether fallback logic was used","uniqueKey":"resolution.fallbackUsed","typeLabel":"boolean"}},"uniqueKey":"resolution","typeLabel":"object"},"meta":{"type":"object","properties":{"servedFromCache":{"type":"boolean","description":"Whether product data was served from cache","uniqueKey":"meta.servedFromCache","typeLabel":"boolean"},"processingTimeMs":{"type":"number","description":"Server-side processing time in milliseconds","uniqueKey":"meta.processingTimeMs","typeLabel":"number"},"data":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"meta.data.additionalProperties","typeLabel":"string"},"description":"Key-value pairs emitted by matched rules with `key_value` outputs. Values are always strings. Always present; may be an empty object. Keys from the first matching rule win.","uniqueKey":"meta.data","typeLabel":"object"},"explanation":{"type":"string","description":"Optional debug explanation (may be absent)","uniqueKey":"meta.explanation","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Present only when errors occur","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"CONFIG_ERROR":{"title":"CONFIG_ERROR","value":{"success":false,"products":[],"resolution":{"strategyId":null,"matchedRuleIds":[],"selectionMethod":"rules_engine","fallbackUsed":false},"meta":{"servedFromCache":false,"processingTimeMs":0,"data":{}},"errors":[{"code":"CONFIG_ERROR","message":"Shop configuration error"}]}},"INTERNAL_ERROR":{"title":"INTERNAL_ERROR","value":{"success":false,"products":[],"resolution":{"strategyId":null,"matchedRuleIds":[],"selectionMethod":"rules_engine","fallbackUsed":false},"meta":{"servedFromCache":false,"processingTimeMs":0,"data":{}},"errors":[{"code":"INTERNAL_ERROR","message":"Failed to evaluate strategy rules"}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"d46a218a-89ed-4008-ab54-b94b5a7b5a91":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Strategy-Api-Key","scopes":[]}}},"servers":{"506d1b41-1bb2-4e9a-bd72-80f5a3848ba8":{"url":"https://start.aftersell.app"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Strategy-Api-Key","scopes":[]},"schema":{"title":"X-Strategy-Api-Key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-Strategy-Api-Key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api/strategies.json"},"subdomain":"aftersell","siteName":"Aftersell \u0026 Upcart Docs","title":"Evaluate strategy - Aftersell \u0026 Upcart Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":0},"fr":{"href":"/fr/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"es":{"href":"/es/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"zh":{"href":"/zh/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"ja":{"href":"/ja/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"de":{"href":"/de/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"ru":{"href":"/ru/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"it":{"href":"/it/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"nl":{"href":"/nl/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"pt":{"href":"/pt/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"pl":{"href":"/pl/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"ko":{"href":"/ko/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"da":{"href":"/da/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1},"ar":{"href":"/ar/aftersell/strategies_api_reference_evaluate_strategy","matchLevel":1}}},"lastModified":"2026-06-25T20:07:16.916Z","originalFileLocation":"aftersell/strategies_api_reference_evaluate_strategy.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Evaluate a strategy against provided context to return the desired experience.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Aftersell \u0026amp; Upcart Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Evaluate strategy - Aftersell \u0026amp; Upcart Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Evaluate a strategy against provided context to return the desired experience.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Aftersell \u0026amp; Upcart Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://aftersell.mintlify.app/_mintlify/api/og/v2?division=Strategies\u0026amp;title=Evaluate+strategy\u0026amp;description=Evaluate+a+strategy+against+provided+context+to+return+the+desired+experience.\u0026amp;theme=4eda7b6db4afb63ff7f9239d\u0026amp;signature=939ad489c82e36826d413dc79b4a9444e895bb62e29e569dc913d9b7eddd57c6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Evaluate strategy - Aftersell \u0026amp; Upcart Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Evaluate a strategy against provided context to return the desired experience.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://aftersell.mintlify.app/_mintlify/api/og/v2?division=Strategies\u0026amp;title=Evaluate+strategy\u0026amp;description=Evaluate+a+strategy+against+provided+context+to+return+the+desired+experience.\u0026amp;theme=4eda7b6db4afb63ff7f9239d\u0026amp;signature=939ad489c82e36826d413dc79b4a9444e895bb62e29e569dc913d9b7eddd57c6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/aftersell/rvHYnLcZxWDiuuKI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Aftersell \u0026amp; Upcart Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#C20075\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/aftersell/strategies_api_reference_evaluate_strategy.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.aftersell.com/fr/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.aftersell.com/es/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.aftersell.com/zh/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.aftersell.com/ja/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.aftersell.com/de/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://docs.aftersell.com/ru/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://docs.aftersell.com/it/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"nl\" href=\"https://docs.aftersell.com/nl/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt\" href=\"https://docs.aftersell.com/pt/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pl\" href=\"https://docs.aftersell.com/pl/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.aftersell.com/ko/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"da\" href=\"https://docs.aftersell.com/da/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.aftersell.com/ar/aftersell/strategies_api_reference_evaluate_strategy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.aftersell.com/#organization\",\"name\":\"Aftersell \u0026 Upcart Docs\",\"url\":\"https://docs.aftersell.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/aftersell/SnQwk0JGiG2BpIZt/images/logos/aftersell-logo-black.svg?fit=max\u0026auto=format\u0026n=SnQwk0JGiG2BpIZt\u0026q=85\u0026s=3a4b16f98056fa407d2af5a4f86b7fd8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.aftersell.com#website\",\"name\":\"Aftersell \u0026 Upcart Docs\",\"url\":\"https://docs.aftersell.com\",\"publisher\":{\"@id\":\"https://docs.aftersell.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy#webpage\",\"url\":\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy\",\"name\":\"Evaluate strategy\",\"description\":\"Evaluate a strategy against provided context to return the desired experience.\",\"dateModified\":\"2026-06-25T20:07:16.916Z\",\"isPartOf\":{\"@id\":\"https://docs.aftersell.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strategies\",\"item\":\"https://docs.aftersell.com/aftersell/strategies_rules_reference\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Evaluate strategy\",\"item\":\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy#apireference\",\"headline\":\"Evaluate strategy\",\"name\":\"Evaluate strategy\",\"description\":\"Evaluate a strategy against provided context to return the desired experience.\",\"url\":\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy\",\"mainEntityOfPage\":{\"@id\":\"https://docs.aftersell.com/aftersell/strategies_api_reference_evaluate_strategy#webpage\"},\"dateModified\":\"2026-06-25T20:07:16.916Z\",\"keywords\":\"evaluate strategy, strategy API, product recommendations API, evaluate endpoint, API reference, X-Strategy-Api-Key, product targeting, recommendation engine\",\"publisher\":{\"@id\":\"https://docs.aftersell.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.aftersell.com#website\"}}]}\u003c/script>","siteName":"Aftersell \u0026 Upcart Docs","nav":{"global":null,"languages":[{"language":"en","products":[{"product":"Aftersell","icon":"bolt","dropdowns":[{"dropdown":"Guides","icon":"book","groups":[{"group":"Getting Started","expanded":false,"pages":[{"title":"Welcome to Aftersell","href":"/aftersell/welcome_to_aftersell"},{"title":"Installing Aftersell","href":"/aftersell/installing_aftersell"},{"title":"Quickstart guide to Aftersell","href":"/aftersell/quickstart_guide_to_aftersell"},{"title":"Post-purchase upsells vs. thank you page upsells","sidebarTitle":"Post-Purchase vs. Thank You Page","href":"/aftersell/one_click_upsells_vs_thank_you_page_upsells"},{"title":"What is Upcart?","href":"/aftersell/what_is_upcart"}]},{"group":"Home Page","expanded":false,"pages":[{"title":"Home page overview","href":"/aftersell/home/overview"},{"title":"Analytics bar","href":"/aftersell/home/analytics-bar"},{"title":"Setup guide","href":"/aftersell/home/setup-guide"},{"title":"Quick actions","href":"/aftersell/home/quick-actions"},{"title":"Peer benchmarks (PPU)","href":"/aftersell/home/peer-benchmarks"},{"title":"App block status","href":"/aftersell/home/app-block-status"},{"title":"Needs attention","href":"/aftersell/home/needs-attention"},{"title":"Help and announcements","href":"/aftersell/home/help-and-announcements"}]},{"group":"Best Practices","expanded":false,"pages":[{"title":"Post-purchase best practices","href":"/aftersell/best_practices"},{"title":"Post-purchase strategies by industry","href":"/aftersell/post_purchase_strategies_by_industry"},{"title":"Checkout best practices","href":"/aftersell/checkout_best_practices"}]},{"group":"Post-Purchase Upsells","expanded":false,"pages":[{"group":"Overview","expanded":false,"pages":[{"title":"Post-purchase overview","href":"/aftersell/post_purchase_overview"},{"title":"Post-purchase offer types","sidebarTitle":"Offer types","href":"/aftersell/post-purchase-offer-types"},{"title":"Smart funnel","href":"/aftersell/smart_funnel"}]},{"group":"Setup \u0026 Configuration","expanded":false,"pages":[{"title":"How to configure post-purchase triggers","href":"/aftersell/how_to_configure_post_purchase_triggers"},{"title":"Configuring post-purchase offer settings","href":"/aftersell/configuring_post_purchase_offer_settings"},{"title":"How to create a multi-step post-purchase upsell","href":"/aftersell/how_to_create_a_multi_step_post_purchase_upsell"},{"title":"Replacement upsells","href":"/aftersell/replacement_upsells"},{"group":"Subscription Upgrades","expanded":false,"pages":[{"title":"Subscription upgrades","sidebarTitle":"Overview","href":"/aftersell/subscription-upgrades"},{"title":"Setting up subscription upgrades","sidebarTitle":"Setup \u0026 configuration","href":"/aftersell/subscription-upgrades-setup"},{"title":"Adding an item to an existing subscription","sidebarTitle":"Add an item to a subscription","href":"/aftersell/subscription-upgrades-add-item"},{"title":"Testing subscription upgrades","sidebarTitle":"Testing","href":"/aftersell/subscription-upgrades-testing"}]},{"title":"Subscriptions in post-purchase offers","href":"/aftersell/subscriptions_in_post_purchase_offers"},{"title":"Subscription upsells on orders that already have a subscription","sidebarTitle":"Upselling existing subscribers","href":"/aftersell/subscription-upsell-existing-subscribers"},{"title":"How to use direct-to-checkout UTM links","href":"/aftersell/how_to_use_direct_to_checkout_utm_links"},{"title":"Translating post-purchase funnels","href":"/aftersell/translating_post_purchase_funnels"},{"title":"Understanding out of stock variants","href":"/aftersell/understanding_out_of_stock_variants"},{"title":"Quantity upsells","href":"/aftersell/quantity-upsells"},{"title":"Build a Box","href":"/aftersell/build-a-box"}]},{"group":"Branding \u0026 Design","expanded":false,"pages":[{"title":"Post-purchase branding settings","href":"/aftersell/post_purchase_branding_settings"},{"title":"Changing post-purchase button colours (CTA)","href":"/aftersell/changing_post_purchase_button_colours_cta"},{"title":"Progress bars \u0026 product badges","href":"/aftersell/progress_bars_product_badges"},{"title":"Customizing discount displays in Aftersell","href":"/aftersell/customizing_discount_displays"}]},{"group":"Testing \u0026 Optimization","expanded":false,"pages":[{"title":"Testing / previewing your post-purchase offer","href":"/aftersell/testing_post_purchase_offers"},{"title":"Post-purchase A/B testing","href":"/aftersell/post_purchase_a_b_testing"},{"title":"Post-purchase multivariate testing","href":"/aftersell/multivariate_testing"}]},{"group":"Payments \u0026 Fulfillment","expanded":false,"pages":[{"title":"Payment methods","href":"/aftersell/payment_methods"},{"title":"Manual payment capture","href":"/aftersell/manual-payment-capture"},{"title":"Fraud detection payment capture","href":"/aftersell/fraud-detection-payment-capture"},{"title":"PayPal automatic payments","href":"/aftersell/paypal_automatic_payments"},{"title":"Partially paid orders","href":"/aftersell/partially_paid_orders"},{"title":"Taxes","href":"/aftersell/taxes"},{"title":"Fulfillment","href":"/aftersell/fulfillment"},{"title":"How to configure fulfillment locations for post-purchase upsells","href":"/aftersell/how_to_configure_fulfillment_locations_for_1_click_upsells"},{"title":"Potential workarounds for fulfillment flow issues","href":"/aftersell/potential_workarounds_for_fulfillment_flow_issues"},{"title":"Why are post-purchase items being shipped separately?","href":"/aftersell/why_are_post_purchase_items_being_shipped_separately"},{"title":"How do post-purchase upsells affect my fulfillment?","href":"/aftersell/how_do_post_purchase_upsells_affect_my_fulfillment"}]}]},{"group":"Aftersell Cart","pages":[{"title":"Aftersell Cart Overview","href":"/aftersell/cart/overview"},{"group":"Managing carts","pages":[{"title":"How do carts work?","href":"/aftersell/cart/how-carts-work"},{"title":"Carts are files","href":"/aftersell/cart/carts-as-files"},{"title":"Creating carts","href":"/aftersell/cart/creating-carts"},{"title":"Previewing carts","href":"/aftersell/cart/previewing-carts"},{"title":"Managing multiple carts","href":"/aftersell/cart/having-multiple-carts"},{"title":"Importing and exporting carts","href":"/aftersell/cart/import-export"}]},{"group":"Customizing your cart","pages":[{"title":"Design settings","href":"/aftersell/cart/design-settings"},{"title":"Cart settings","href":"/aftersell/cart/cart-settings"},{"title":"Custom CSS","href":"/aftersell/cart/custom-css"},{"title":"Custom scripts","href":"/aftersell/cart/custom-scripts"}]},{"group":"Cart blocks","pages":[{"title":"How do blocks work?","href":"/aftersell/cart/blocks-overview"},{"title":"Header block","href":"/aftersell/cart/header-block"},{"title":"Banner block","href":"/aftersell/cart/banner-block"},{"title":"Image block","href":"/aftersell/cart/image-block"},{"title":"Cart items block","href":"/aftersell/cart/cart-items-block"},{"title":"Subscription upgrade block","href":"/aftersell/cart/subscription-upgrade-block"},{"title":"Product add-on block","href":"/aftersell/cart/product-add-on-block"},{"title":"Upsells block","href":"/aftersell/cart/upsells-block"},{"title":"Rewards block","href":"/aftersell/cart/rewards-block"},{"title":"Discount code block","href":"/aftersell/cart/discount-code-block"},{"title":"Notes block","href":"/aftersell/cart/notes-block"},{"title":"Shipping protection block","href":"/aftersell/cart/shipping-protection-block"},{"title":"Express payments block","href":"/aftersell/cart/express-payments-block"},{"title":"Summary block","href":"/aftersell/cart/summary-block"},{"title":"Checkout button block","href":"/aftersell/cart/checkout-button-block"},{"title":"Empty cart block","href":"/aftersell/cart/empty-cart-block"},{"title":"Custom templates","href":"/aftersell/cart/custom-templates"},{"title":"Custom code blocks","href":"/aftersell/cart/custom-code-blocks"}]},{"group":"Cart tests","pages":[{"title":"How do tests work?","href":"/aftersell/cart/tests-overview"},{"title":"Test analytics","href":"/aftersell/cart/test-analytics"},{"title":"A/B test Aftersell Cart against another cart app","href":"/aftersell/cart/ab-test-against-another-cart"}]},{"group":"Analytics","pages":[{"title":"Cart analytics","href":"/aftersell/cart/analytics"}]},{"group":"Cart SDK","pages":[{"title":"Overview","href":"/aftersell/cart/sdk-overview"},{"title":"Add-to-cart interception","href":"/aftersell/cart/add-to-cart-interception"},{"title":"Configure","href":"/aftersell/cart/sdk-configure"},{"title":"Events","href":"/aftersell/cart/sdk-events"},{"title":"Actions","href":"/aftersell/cart/sdk-actions"},{"title":"Hooks","href":"/aftersell/cart/sdk-hooks"},{"title":"Cart object","href":"/aftersell/cart/sdk-cart-object"},{"group":"Use cases","pages":[{"title":"Common use cases","href":"/aftersell/cart/sdk-use-cases"},{"title":"Track add-to-cart in a third-party tool","href":"/aftersell/cart/sdk-use-case-analytics"},{"title":"Auto-add a free gift at a threshold","href":"/aftersell/cart/sdk-use-case-free-gift"},{"title":"Hide and relabel cart lines","href":"/aftersell/cart/sdk-use-case-hide-lines"},{"title":"Show metafield data on cart lines","href":"/aftersell/cart/sdk-use-case-metafields"},{"title":"Open the drawer from a page builder","href":"/aftersell/cart/sdk-use-case-page-builder"},{"title":"Require terms before checkout","href":"/aftersell/cart/sdk-use-case-terms-checkbox"},{"title":"Group bundle lines from another app","href":"/aftersell/cart/sdk-use-case-bundles"}]}]}]},{"group":"Checkout Upsells (Shopify Plus)","expanded":false,"pages":[{"group":"Overview","expanded":false,"pages":[{"title":"Checkout dashboard overview","href":"/aftersell/checkout-dashboard-overview"},{"title":"Pages vs standalone widgets","href":"/aftersell/pages-vs-standalone-widgets"}]},{"group":"Setup \u0026 Widgets","expanded":false,"pages":[{"title":"Adding a checkout widget to your Shopify checkout","href":"/aftersell/adding_a_checkout_widget_to_your_shopify_checkout"},{"title":"Creating your first checkout widget","href":"/aftersell/creating_your_first_checkout_widget"},{"title":"How to configure checkout widgets","href":"/aftersell/how_to_configure_checkout_widgets"},{"title":"Spend threshold upsells","href":"/aftersell/spend_threshold_upsells"},{"title":"Show checkout widgets in Shop Pay","href":"/aftersell/show_checkout_widgets_in_shop_pay"},{"title":"Managing checkout discounts","href":"/aftersell/managing_checkout_discounts"}]},{"group":"Branding \u0026 Triggers","expanded":false,"pages":[{"title":"Checkout customizations","href":"/aftersell/checkout_customizations"},{"title":"Checkout translations","href":"/aftersell/checkout_translations"}]},{"group":"Testing","expanded":false,"pages":[{"title":"Checkout A/B testing","href":"/aftersell/checkout_a_b_testing"}]}]},{"group":"Thank You Page","expanded":false,"pages":[{"title":"How to configure thank-you page widgets","href":"/aftersell/how_can_i_set_up_and_customize_thank_you_page_upsells_in_aftersell"},{"title":"FAQ widget (Thank You Page)","sidebarTitle":"FAQ Widget","href":"/aftersell/faq-widget-thank-you-page"},{"title":"Image widget (Thank You Page)","sidebarTitle":"Image Widget","href":"/aftersell/image-widget-thank-you-page"},{"title":"Product Recommendation widget","sidebarTitle":"Product Recommendation","href":"/aftersell/product-recommendation-widget-thank-you-page"},{"title":"Testimonials widget ","sidebarTitle":"Testimonials Widget","href":"/aftersell/testimonials-widget-thank-you-page"},{"title":"Text widget (Thank You Page)","sidebarTitle":"Text Widget","href":"/aftersell/text-widget-thank-you-page"}]},{"group":"Product Page Upsells","expanded":false,"pages":[{"title":"Product page upsells","href":"/aftersell/product_page_upsells"}]},{"group":"Rokt Thanks","expanded":false,"pages":[{"group":"Overview","expanded":false,"pages":[{"title":"What is Rokt Thanks?","href":"/aftersell/what_is_rokt_thanks"},{"title":"Earn \u0026 Save program","href":"/aftersell/earn-save"}]},{"group":"Setup \u0026 Configuration","expanded":false,"pages":[{"title":"Activating and configuring Rokt Thanks","href":"/aftersell/activating_and_configuring_rokt_thanks"},{"title":"Rokt Thanks settings","href":"/aftersell/rokt_thanks_settings"},{"title":"Rokt Thanks payouts","href":"/aftersell/rokt_thanks_payouts"},{"title":"Rokt Thanks loyalty loop","href":"/aftersell/rokt_thanks_loyalty_loop"},{"title":"Custom web SDK integration for Rokt Thanks","href":"/aftersell/custom_web_sdk_integration_for_rokt_thanks"},{"title":"How to install Rokt Thanks on Tapcart","href":"/aftersell/how_to_install_rokt_thanks_on_tapcart"}]},{"group":"Performance \u0026 FAQ","expanded":false,"pages":[{"title":"Tracking Rokt Thanks performance","href":"/aftersell/tracking_rokt_thanks_performance"},{"title":"Can I advertise with Rokt Thanks and promote my business on other sites?","href":"/aftersell/can_i_advertise_with_rokt_thanks_and_promote_my_business_on_other_sites"},{"title":"Why is Rokt Thanks not showing on my confirmation page?","href":"/aftersell/why_is_rokt_thanks_not_showing_on_my_confirmation_page"}]}]},{"group":"Strategies","expanded":false,"pages":[{"title":"Strategies overview","sidebarTitle":"Overview","href":"/aftersell/strategies_overview"},{"title":"Building Strategies","href":"/aftersell/strategies_building_in_app"},{"group":"Implementing Strategies","expanded":false,"pages":[{"title":"Post-purchase upsells","href":"/aftersell/implementing_strategies_post_purchase_upsells"},{"title":"Thank you page upsells","href":"/aftersell/implementing_strategies_thank_you_page_upsells"},{"title":"Checkout upsells","href":"/aftersell/implementing_strategies_checkout_upsells"},{"title":"Upcart upsells","href":"/aftersell/implementing_strategies_upcart_upsells"}]}]},{"group":"Analytics \u0026 Tracking","expanded":false,"pages":[{"title":"Post-purchase analytics","href":"/aftersell/analytics_in_aftersell"},{"title":"Post-purchase insights","href":"/aftersell/ppu_insights"},{"title":"Checkout analytics","href":"/aftersell/checkout_analytics"},{"title":"Conversion tracking (web pixels)","href":"/aftersell/conversion_tracking_web_pixels"},{"title":"Configuring Shopify web pixels","href":"/aftersell/configuring_shopify_web_pixels"},{"title":"DTC ads onboarding guide | web pixel activation","href":"/aftersell/dtc_ads_onboarding_guide_web_pixel_activation"},{"group":"Reports","expanded":false,"pages":[{"title":"Reports overview","sidebarTitle":"Overview","href":"/aftersell/reports_overview"},{"title":"Manage reports","sidebarTitle":"Dashboards","href":"/aftersell/reports_dashboards"},{"title":"Manage widgets","sidebarTitle":"Widgets","href":"/aftersell/reports_widgets"},{"title":"Explorer","href":"/aftersell/reports_explorer"}]}]},{"group":"Integrations","expanded":false,"pages":[{"group":"Product Recommendations","pages":[{"title":"Aftersell \u0026 Constructor integration","sidebarTitle":"Constructor","href":"/aftersell/aftersell_constructor_integration"},{"title":"Aftersell \u0026 Nosto integration","sidebarTitle":"Nosto","href":"/aftersell/aftersell_nosto_integration"}]},{"group":"Subscriptions","pages":[{"title":"Aftersell \u0026 Skio integration","sidebarTitle":"Skio","href":"/aftersell/aftersell_skio_integration"},{"title":"Aftersell \u0026 Stay AI integration","sidebarTitle":"Stay AI","href":"/aftersell/aftersell_stayai_integration"}]},{"group":"Reviews","pages":[{"title":"Aftersell \u0026 Judge.me reviews integration","sidebarTitle":"Judge.me Reviews","href":"/aftersell/judgeme_reviews_integration"},{"title":"Aftersell \u0026 Klaviyo reviews integration","sidebarTitle":"Klaviyo Reviews","href":"/aftersell/klaviyo_reviews_integration"},{"title":"Aftersell \u0026 Okendo reviews integration","sidebarTitle":"Okendo Reviews","href":"/aftersell/okendo_reviews_integration"},{"title":"Aftersell \u0026 Yotpo reviews integration","sidebarTitle":"Yotpo Reviews","href":"/aftersell/aftersell_yotpo_reviews_integration"}]},{"group":"Loyalty \u0026 Rewards","pages":[{"title":"Aftersell \u0026 Inveterate integration","sidebarTitle":"Inveterate","href":"/aftersell/aftersell_inveterate_integration"},{"title":"Aftersell \u0026 Rivo integration","sidebarTitle":"Rivo Loyalty \u0026 Rewards","href":"/aftersell/aftersell_rivo_integration"}]}]},{"group":"Aftersell MCP","pages":[{"title":"Connect your AI client with Aftersell MCP","sidebarTitle":"Connecting your AI client","href":"/aftersell/mcp-connect-self"}]},{"group":"Billing \u0026 Account","expanded":false,"pages":[{"title":"Aftersell billing \u0026 pricing","href":"/aftersell/aftersell_billing_pricing"},{"title":"How do I cancel my Aftersell subscription?","href":"/aftersell/how_do_i_cancel_my_aftersell_subscription"},{"title":"Data and privacy","href":"/aftersell/customer_data_and_privacy"},{"title":"Affiliate program","href":"/aftersell/affiliate_program"},{"title":"Does Aftersell have a developer API?","href":"/aftersell/does_aftersell_have_a_developer_api"}]},{"group":"Troubleshooting","expanded":false,"pages":[{"group":"Post-Purchase","expanded":false,"pages":[{"title":"Why isn't my post-purchase offer displaying?","href":"/aftersell/why_isnt_my_1_click_offer_displaying"},{"title":"Automatic upsells not working","href":"/aftersell/automatic_upsells_not_working"},{"title":"Does multi-currency checkout impact Aftersell?","href":"/aftersell/does_multi_currency_checkout_impact_aftersell"}]},{"group":"Checkout","expanded":false,"pages":[{"title":"Why can't I see the checkout tab?","href":"/aftersell/why_cant_i_see_the_checkout_tab"},{"title":"Why isn't my checkout upsell displaying?","href":"/aftersell/why_isnt_my_checkout_upsell_displaying"},{"title":"Compare at price not reflecting for checkout upsells (Shopify Plus)","href":"/aftersell/compare_at_price_not_reflecting_for_checkout_upsells_shopify_plus"}]},{"group":"Thank You Page","expanded":false,"pages":[{"title":"Thank you page troubleshooting","href":"/aftersell/widget_not_displaying_on_the_thank_you_page"}]},{"group":"General","expanded":false,"pages":[{"title":"Order browser overview","href":"/aftersell/order_browser_overview"},{"title":"Order browser troubleshooting","href":"/aftersell/order-browser-troubleshooting"},{"title":"Creating an unpublished automated collection","href":"/aftersell/creating_an_unpublished_automated_collection"}]}]},{"group":"Aftersell Staging","icon":"plane-landing-gear","hidden":true,"pages":[{"title":"Staging Home","href":"/aftersell/staging-home"},{"title":"First-party Rokt Thanks offer","href":"/aftersell/rokt-thanks-first-party-offer"},{"title":"Email notification settings","href":"/aftersell/email-notification-settings"},{"title":"Product Page Upsells V2","href":"/aftersell/pdp-upsells-v2"},{"group":"Aftersell MCP","pages":[{"title":"Managing collaborator access","href":"/aftersell/mcp-collaborator-access"}]},{"title":"Post-purchase sweepstakes","href":"/aftersell/post_purchase_sweepstakes"}]}]},{"dropdown":"Reference","icon":"code","groups":[{"group":"Strategies","pages":[{"title":"Strategy rules reference","sidebarTitle":"Rules reference","href":"/aftersell/strategies_rules_reference"},{"title":"Custom integration","description":"Call the Strategies API directly to power custom storefront experiences - PDP carousels, custom cart upsells, and anywhere else Aftersell's native surfaces don't reach.","href":"/aftersell/implementing_strategies_custom_integration"},{"title":"Evaluate strategy","openapi":"api/strategies.json POST /api/public/strategy/evaluate","href":"/aftersell/strategies_api_reference_evaluate_strategy"},{"title":"Product targeting API security tokens","description":"Generate and manage security tokens to authenticate API requests for product targeting strategies","href":"/aftersell/strategies_api_tokens"}]},{"group":"Post-Purchase Upsells","pages":[{"title":"Shopify post-purchase API limitations","href":"/aftersell/shopify_post_purchase_api_limitations"},{"title":"Post-purchase triggers","href":"/aftersell/post_purchase_triggers"},{"title":"Understanding conditional logic for post-purchase triggers","href":"/aftersell/understanding_conditional_logic_for_post_purchase_triggers"},{"title":"Post-purchase widgets","href":"/aftersell/post_purchase_widgets"},{"title":"Post-purchase offer settings reference","href":"/aftersell/post_purchase_offer_settings_reference"},{"title":"Subscription upsell reference","href":"/aftersell/subscriptions_in_post_purchase_offers_reference"},{"title":"Smart funnel reference","href":"/aftersell/smart_funnel_reference"},{"title":"Replacement upsells reference","tag":"BETA","href":"/aftersell/replacement_upsells_reference"},{"title":"Fulfillments and payments setting","href":"/aftersell/fulfillments-and-payments-setting"}]},{"group":"Subscription Upgrades","pages":[{"title":"Subscription upgrade configuration reference","sidebarTitle":"Configuration reference","href":"/aftersell/subscription-upgrades-configuration-reference"},{"title":"Subscription upgrades limitations \u0026 important notes","sidebarTitle":"Limitations \u0026 important notes","href":"/aftersell/subscription-upgrades-limitations"},{"title":"Subscription upgrades fulfillment \u0026 3PL mapping","sidebarTitle":"Fulfillment \u0026 3PL mapping","href":"/aftersell/subscription-upgrades-fulfillment"},{"title":"Subscription upgrades integrations","sidebarTitle":"What are integrations?","href":"/aftersell/subscription-upgrades-integrations"},{"title":"Subscription upgrades with Recharge","sidebarTitle":"Recharge","href":"/aftersell/subscription-upgrades-recharge"},{"title":"Subscription upgrades with Skio","sidebarTitle":"Skio","href":"/aftersell/subscription-upgrades-skio"},{"title":"Subscription upgrades with Loop","sidebarTitle":"Loop","href":"/aftersell/subscription-upgrades-loop"},{"title":"Subscription upgrades with Stay AI","sidebarTitle":"Stay AI","href":"/aftersell/subscription-upgrades-stay"},{"title":"Subscription upgrades troubleshooting","sidebarTitle":"Troubleshooting","href":"/aftersell/subscription-upgrades-troubleshooting"}]},{"group":"Checkout Upsells","pages":[{"title":"Checkout widget types","href":"/aftersell/checkout_widget_types"},{"title":"Checkout triggers","href":"/aftersell/checkout_triggers"},{"title":"Checkout branding settings","href":"/aftersell/checkout_branding_settings"},{"title":"Checkout customization limitations","href":"/aftersell/checkout_customization_limitations"}]},{"group":"Thank You Page","pages":[{"title":"Overview","href":"/aftersell/thank_you_page_extensions_overview"}]},{"group":"Analytics","pages":[{"title":"Post-purchase analytics metrics reference","href":"/aftersell/analytics_metrics_reference"},{"title":"AftersellQL (AQL) reference","href":"/aftersell/aql_reference"},{"title":"Checkout analytics metrics reference","href":"/aftersell/checkout_analytics_metrics_reference"},{"title":"Order browser reference","href":"/aftersell/order_browser_reference"}]}]}]},{"product":"Upcart","icon":"shopping-cart","pages":[{"title":"Upcart","href":"/upcart/welcome_to_upcart"}]}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"es","pages":[{"title":"es","href":"/es/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"de","pages":[{"title":"de","href":"/de/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"ru","pages":[{"title":"ru","href":"/ru/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"it","pages":[{"title":"it","href":"/it/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"nl","pages":[{"title":"nl","href":"/nl/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"pt","pages":[{"title":"pt","href":"/pt/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"pl","pages":[{"title":"pl","href":"/pl/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"da","pages":[{"title":"da","href":"/da/aftersell/strategies_api_reference_evaluate_strategy"}]},{"language":"ar","pages":[{"title":"ar","href":"/ar/aftersell/strategies_api_reference_evaluate_strategy"}]}]},"basePath":"","title":"Evaluate strategy - Aftersell \u0026 Upcart Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-Buji1S4J.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}