[{"data":1,"prerenderedAt":1088},["ShallowReactive",2],{"navigation":3,"/integrations/models/product":310,"/integrations/models/product-surround":959,"/types/product/product.type":967,"nrGVIeIET3":992,"D3iocm6vgu":1002,"5UNhdguWtp":1024,"gW2Dal8lYd":1034,"AOCBz18o79":1044,"b56ylgAy7P":1054,"OYW7KG6O2h":1064},[4,13,161,197,211,236,290,300],{"title":5,"_path":6,"children":7,"_id":12,"description":11},"Getting Started","/getting-started",[8],{"title":9,"_path":6,"_id":10,"description":11},"Overview","content:1.getting-started:1.index.md","Everything you need to know about integrating Churnkey with your product and billing stack.","content:1.getting-started:_dir.yml",{"title":14,"_path":15,"children":16,"_id":160},"Cancel Flows","/cancel-flows",[17,22,27,32,37,42,47,52,57,62,67,72,116,130],{"title":18,"_path":19,"_id":20,"description":21},"Quick Start Guide","/cancel-flows/quick-start-guide","content:2.cancel-flows:1.quick-start-guide.md","A 3-step guide on how to implement Cancel Flows in your website",{"title":23,"_path":24,"_id":25,"description":26},"Cancel Flow Structure","/cancel-flows/flow-configuration","content:2.cancel-flows:2.flow configuration.md","Learn about the available components that make up a Cancel Flow, from initial offers to cancellation confirmation, and how each step contributes to the overall flow.",{"title":28,"_path":29,"_id":30,"description":31},"Configuration Options","/cancel-flows/further-configuration","content:2.cancel-flows:3.further-configuration.md","Additional details for all of the following options are included below.",{"title":33,"_path":34,"_id":35,"description":36},"Custom Styling","/cancel-flows/custom-styling","content:2.cancel-flows:4.custom-styling.md","Brand your Churnkey Cancel Flow with your own CSS",{"title":38,"_path":39,"_id":40,"description":41},"Managed Email Flow","/cancel-flows/email-verified-cancel-flow","content:2.cancel-flows:6.email-verified-cancel-flow.md","Our managed email based setup takes care of customer verification for you with an email verification code.",{"title":43,"_path":44,"_id":45,"description":46},"A/B Testing","/cancel-flows/a-b-testing","content:2.cancel-flows:7.a-b-testing.md","Run controlled experiments to optimize your Cancel Flows and maximize customer retention.",{"title":48,"_path":49,"_id":50,"description":51},"Testing","/cancel-flows/cancel-flow-testing","content:2.cancel-flows:8.cancel-flow-testing.md","Ensure that your Cancel Flow is working as intended before going live.",{"title":53,"_path":54,"_id":55,"description":56},"Pause Wall","/cancel-flows/pause-wall","content:2.cancel-flows:9.pause-wall.md","Block access to your application during subscription pauses",{"title":58,"_path":59,"_id":60,"description":61},"Click-to-Cancel Compliance","/cancel-flows/click-to-cancel","content:2.cancel-flows:10.click-to-cancel.md","Implement automatic compliance with global subscription cancellation requirements",{"title":63,"_path":64,"_id":65,"description":66},"Structured Follow-Up Questions","/cancel-flows/structured-follow-up-questions","content:2.cancel-flows:11.structured-follow-up-questions.md","Collect deeper cancellation insights and deliver targeted retention offers with a second layer of predefined follow-up options in your cancel flow survey.",{"title":68,"_path":69,"_id":70,"description":71},"Adaptive Offers","/cancel-flows/adaptive-offers","content:2.cancel-flows:adaptive-offers.md","AI-powered discount optimization that automatically finds the perfect offer for each customer",{"title":73,"_path":74,"children":75},"Analytics","/cancel-flows/analytics",[76,81,86,91,96,101,106,111],{"title":77,"_path":78,"_id":79,"description":80},"Boosted Revenue","/cancel-flows/analytics/average-boosted-revenue","content:2.cancel-flows:analytics:1.average-boosted-revenue.md","Measure the long-term value of retained subscribers",{"title":82,"_path":83,"_id":84,"description":85},"Save Rate","/cancel-flows/analytics/save-rate","content:2.cancel-flows:analytics:2.save-rate.md","The percentage of customers that your Cancel Flows saved from cancellation",{"title":87,"_path":88,"_id":89,"description":90},"Reactivation Rate","/cancel-flows/analytics/reactivation-rate","content:2.cancel-flows:analytics:3.reactivation-rate.md","The percentage of customers who pay at least one invoice after being saved",{"title":92,"_path":93,"_id":94,"description":95},"Sessions","/cancel-flows/analytics/session-outcomes","content:2.cancel-flows:analytics:4.session-outcomes.md","Track each interaction that a customer has with your Cancel Flows",{"title":97,"_path":98,"_id":99,"description":100},"Cancellation Trends","/cancel-flows/analytics/cancellation-trends","content:2.cancel-flows:analytics:5.cancellation-trends.md","Analyze and interpret the selection rates and trends for cancellation reasons in your Cancel Flows.",{"title":102,"_path":103,"_id":104,"description":105},"Feedback AI","/cancel-flows/analytics/feedback-ai","content:2.cancel-flows:analytics:6.feedback-ai.md","Transform customer feedback into actionable insights with AI-powered categorization and analysis",{"title":107,"_path":108,"_id":109,"description":110},"Response Flow","/cancel-flows/analytics/response-flow","content:2.cancel-flows:analytics:7.response-flow.md","Visualize how customers move from primary cancellation reasons to specific follow-up selections with the Sankey diagram",{"title":112,"_path":113,"_id":114,"description":115},"Response Explorer","/cancel-flows/analytics/response-explorer","content:2.cancel-flows:analytics:8.response-explorer.md","Drill into individual follow-up responses with the Treemap visualization, search, trend analysis, and MRR impact sorting",{"title":117,"_path":118,"children":119},"Multi Language Support","/cancel-flows/multi-language-support",[120,125],{"title":121,"_path":122,"_id":123,"description":124},"Manual Translations","/cancel-flows/multi-language-support/multi-language-support","content:2.cancel-flows:multi-language-support:5.multi-language-support.md","Support multiple languages.",{"title":126,"_path":127,"_id":128,"description":129},"Automatic Translations","/cancel-flows/multi-language-support/automatic-translation","content:2.cancel-flows:multi-language-support:automatic-translation.md","Enable AI-powered multilingual support for your Cancel Flows with a single toggle.",{"title":131,"_path":132,"children":133,"_id":159},"Offers","/cancel-flows/offers",[134,139,144,149,154],{"title":135,"_path":136,"_id":137,"description":138},"Discount","/cancel-flows/offers/discounts","content:2.cancel-flows:offers:discounts.md","Offer targeted subscription discounts to reduce churn and increase customer retention",{"title":140,"_path":141,"_id":142,"description":143},"Hidden Plans","/cancel-flows/offers/hidden-plans","content:2.cancel-flows:offers:hidden-plans.md","Use the Switch Subscription Plan offer to present exclusive, non-public plans to customers during cancellation",{"title":145,"_path":146,"_id":147,"description":148},"Pause Subscription","/cancel-flows/offers/pause-subscription","content:2.cancel-flows:offers:pause-subscription.md","Temporarily suspend subscription payments without canceling the service",{"title":150,"_path":151,"_id":152,"description":153},"Switch Subscription Plan","/cancel-flows/offers/switch-subscription","content:2.cancel-flows:offers:switch-subscription.md","Allow customers to change to a different subscription plan during the cancellation flow to retain them with a more suitable option",{"title":155,"_path":156,"_id":157,"description":158},"Trial Extension","/cancel-flows/offers/trial-extension","content:2.cancel-flows:offers:trial-extension.md","Extend customer trial periods to reduce churn and increase conversion rates during the critical trial-to-paid transition","content:2.cancel-flows:offers:_dir.yml","content:2.cancel-flows:_dir.yml",{"title":162,"_path":163,"children":164,"_id":196},"Payment Recovery","/failed-payment-recovery",[165,169,174,179,184,188],{"title":5,"_path":166,"_id":167,"description":168},"/failed-payment-recovery/payment-recovery","content:3.failed-payment-recovery:1.payment-recovery.md","Recover failed payment revenue, automatically.",{"title":170,"_path":171,"_id":172,"description":173},"Customize your Campaigns","/failed-payment-recovery/campaign-customization","content:3.failed-payment-recovery:2.campaign-customization.md","Customize your Payment Recovery Campaigns to match the unique needs of your individual customers.",{"title":175,"_path":176,"_id":177,"description":178},"Failed Payment Wall","/failed-payment-recovery/failed-payment-wall","content:3.failed-payment-recovery:3.failed-payment-wall.md","Block access to your application when payments fail",{"title":180,"_path":181,"_id":182,"description":183},"Billing Contact API","/failed-payment-recovery/billing-contact-api","content:3.failed-payment-recovery:4.billing-contact-api.md","Send Payment Recovery emails to multiple billing contacts",{"title":43,"_path":185,"_id":186,"description":187},"/failed-payment-recovery/ab-testing","content:3.failed-payment-recovery:5.ab-testing.md","Optimize your payment recovery campaigns through controlled experiments that maximize revenue recovery.",{"title":73,"_path":189,"children":190},"/failed-payment-recovery/analytics",[191],{"title":192,"_path":193,"_id":194,"description":195},"Overall Performance","/failed-payment-recovery/analytics/overview","content:3.failed-payment-recovery:analytics:1.overview.md","Key performance metrics for your Payment Recovery campaigns","content:3.failed-payment-recovery:_dir.yml",{"title":198,"_path":199,"children":200,"_id":210},"Reactivations","/reactivations",[201,205],{"title":5,"_path":202,"_id":203,"description":204},"/reactivations/reactivations","content:4.reactivations:1.reactivations.md","Churnkey helps you to recover unsubscribed customers with easy, customizable Reactivation Email Campaigns.",{"title":206,"_path":207,"_id":208,"description":209},"Customization","/reactivations/campaign-customization-guide","content:4.reactivations:2.campaign-customization-guide.md","Customize your Reactivation Campaigns to match the individual needs of your customers.","content:4.reactivations:_dir.yml",{"title":212,"_path":213,"children":214,"_id":235},"Data Integrations","/data-integrations",[215,220,225,230],{"title":216,"_path":217,"_id":218,"description":219},"Data API","/data-integrations/data-api","content:6.data-integrations:1.data-api.md","Access your data through our API.",{"title":221,"_path":222,"_id":223,"description":224},"Slack notifications","/data-integrations/slack","content:6.data-integrations:2.slack.md","Connect Churnkey with your organization's Slack and to send session notifications to a specific channel.",{"title":226,"_path":227,"_id":228,"description":229},"Webhooks","/data-integrations/webhooks","content:6.data-integrations:2.webhooks.md","Churnkey can send webhooks to automatically notify your application whenever a customer completes a session.",{"title":231,"_path":232,"_id":233,"description":234},"Event Tracking","/data-integrations/event-tracking","content:6.data-integrations:3.event-tracking.md","Track your customers' key-value metrics on a per customer basis.","content:6.data-integrations:_dir.yml",{"title":237,"_path":238,"children":239,"_id":289},"Billing Providers","/billing-providers",[240,245,250,255,260,265,270,275],{"title":241,"_path":242,"_id":243,"description":244},"Payment Providers","/billing-providers/payment-provider-overview","content:7.billing-providers:1.payment-provider-overview.md","Feature support for Stripe, Chargebee, Paddle, and Braintree",{"title":246,"_path":247,"_id":248,"description":249},"Stripe","/billing-providers/stripe","content:7.billing-providers:3.stripe.md","Integrate Churnkey with your Stripe account",{"title":251,"_path":252,"_id":253,"description":254},"Chargebee","/billing-providers/chargebee","content:7.billing-providers:4.chargebee.md","Integrate Churnkey with your Chargebee account",{"title":256,"_path":257,"_id":258,"description":259},"Paddle Classic","/billing-providers/paddle-classic","content:7.billing-providers:5.paddle-classic.md","Integrate Churnkey with your Paddle Classic account",{"title":261,"_path":262,"_id":263,"description":264},"Paddle Billing","/billing-providers/paddle-billing","content:7.billing-providers:6.paddle-billing.md","Integrate Churnkey with your Paddle Billing account",{"title":266,"_path":267,"_id":268,"description":269},"Braintree","/billing-providers/braintree","content:7.billing-providers:7.braintree.md","Integrate Churnkey with your Braintree account",{"title":271,"_path":272,"_id":273,"description":274},"Maxio","/billing-providers/maxio","content:7.billing-providers:8.maxio.md","Integrate Churnkey with your Maxio (formerly Chargify) account",{"title":276,"_path":277,"children":278},"Direct Connect","/billing-providers/direct-connect",[279,284],{"title":280,"_path":281,"_id":282,"description":283},"Churnkey Direct","/billing-providers/direct-connect/direct","content:7.billing-providers:9.direct-connect:1.direct.md","Integrate Churnkey with any billing system using Direct mode",{"title":285,"_path":286,"_id":287,"description":288},"Direct Mode Examples","/billing-providers/direct-connect/direct-examples","content:7.billing-providers:9.direct-connect:2.direct-examples.md","Real-world examples for common subscription scenarios","content:7.billing-providers:_dir.yml",{"title":291,"_path":292,"children":293,"_id":299},"Account","/account",[294],{"title":295,"_path":296,"_id":297,"description":298},"Multi-Workspace Support","/account/multi-workspace-support","content:8.account:1.multi-workspace-support.md","Use one email address to access multiple Churnkey workspaces and switch between them instantly.","content:8.account:_dir.yml",{"title":301,"_path":302,"children":303,"_id":309},"Support","/support",[304],{"title":305,"_path":306,"_id":307,"description":308},"Frequently Asked Questions","/support/faqs","content:9.support:1.faqs.md","We want setting up Churnkey to be a breeze.","content:9.support:_dir.yml",{"_path":311,"_dir":312,"_draft":313,"_partial":313,"_locale":314,"title":315,"description":316,"body":317,"_type":952,"_id":953,"_source":954,"_file":955,"_stem":956,"_extension":957,"sitemap":958},"/integrations/models/product","models",false,"","Product Model","Product represents a good or service that can be sold.",{"type":318,"children":319,"toc":947},"root",[320,353,360,374,395,401,406,412,941],{"type":321,"tag":322,"props":323,"children":324},"element","p",{},[325,328,335,337,343,345,351],{"type":326,"value":327},"text","If you are implementing a ",{"type":321,"tag":329,"props":330,"children":332},"code",{"className":331},[],[333],{"type":326,"value":334},"Product",{"type":326,"value":336}," model, make sure you pass ",{"type":321,"tag":329,"props":338,"children":340},{"className":339},[],[341],{"type":326,"value":342},"productId",{"type":326,"value":344}," to the ",{"type":321,"tag":329,"props":346,"children":348},{"className":347},[],[349],{"type":326,"value":350},"Price",{"type":326,"value":352}," model. This way, you can associate a price with a product.",{"type":321,"tag":354,"props":355,"children":357},"h2",{"id":356},"type",[358],{"type":326,"value":359},"Type",{"type":321,"tag":322,"props":361,"children":362},{},[363,365,372],{"type":326,"value":364},"Depending on your app's architecture, products can belong to a ",{"type":321,"tag":366,"props":367,"children":369},"a",{"href":368},"/integrations/models/family",[370],{"type":326,"value":371},"Family",{"type":326,"value":373}," or be standalone entities.\nIn both cases, you can start by implementing a standalone Product model, and later refactor it to add families support.",{"type":321,"tag":322,"props":375,"children":376},{},[377,379,385,387,393],{"type":326,"value":378},"If you implement a family-based product, you will need to create ",{"type":321,"tag":366,"props":380,"children":382},{"href":381},"/integrations/controllers/families",[383],{"type":326,"value":384},"a Families controller",{"type":326,"value":386}," and set the ",{"type":321,"tag":329,"props":388,"children":390},{"className":389},[],[391],{"type":326,"value":392},"familyId",{"type":326,"value":394}," property on the product.",{"type":321,"tag":354,"props":396,"children":398},{"id":397},"properties",[399],{"type":326,"value":400},"Properties",{"type":321,"tag":402,"props":403,"children":405},"field-schema",{"schema":404},"/types/product/product.type",[],{"type":321,"tag":354,"props":407,"children":409},{"id":408},"code-example",[410],{"type":326,"value":411},"Code Example",{"type":321,"tag":413,"props":414,"children":415},"code-group",{},[416,628],{"type":321,"tag":417,"props":418,"children":423},"pre",{"className":419,"code":420,"filename":421,"language":422,"meta":314,"style":314},"language-typescript shiki shiki-themes github-light-default github-light-default github-dark-default","import { Integrator } from '@churnkey/sdk'\n\n// export class Product extends Integrator.Product.Family {\nexport class Product extends Integrator.Product.Standalone {\n    constructor(product: YourProduct) {\n        super({\n            id: product.id,\n            ... // map other properties\n        })\n    }\n}\n","Typescript (SDK)","typescript",[424],{"type":321,"tag":329,"props":425,"children":426},{"__ignoreMap":314},[427,456,466,476,530,564,578,587,601,610,619],{"type":321,"tag":428,"props":429,"children":432},"span",{"class":430,"line":431},"line",1,[433,439,445,450],{"type":321,"tag":428,"props":434,"children":436},{"style":435},"--shiki-light:#CF222E;--shiki-default:#CF222E;--shiki-dark:#FF7B72",[437],{"type":326,"value":438},"import",{"type":321,"tag":428,"props":440,"children":442},{"style":441},"--shiki-light:#1F2328;--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[443],{"type":326,"value":444}," { Integrator } ",{"type":321,"tag":428,"props":446,"children":447},{"style":435},[448],{"type":326,"value":449},"from",{"type":321,"tag":428,"props":451,"children":453},{"style":452},"--shiki-light:#0A3069;--shiki-default:#0A3069;--shiki-dark:#A5D6FF",[454],{"type":326,"value":455}," '@churnkey/sdk'\n",{"type":321,"tag":428,"props":457,"children":459},{"class":430,"line":458},2,[460],{"type":321,"tag":428,"props":461,"children":463},{"emptyLinePlaceholder":462},true,[464],{"type":326,"value":465},"\n",{"type":321,"tag":428,"props":467,"children":469},{"class":430,"line":468},3,[470],{"type":321,"tag":428,"props":471,"children":473},{"style":472},"--shiki-light:#6E7781;--shiki-default:#6E7781;--shiki-dark:#8B949E",[474],{"type":326,"value":475},"// export class Product extends Integrator.Product.Family {\n",{"type":321,"tag":428,"props":477,"children":479},{"class":430,"line":478},4,[480,485,490,496,501,506,511,515,519,525],{"type":321,"tag":428,"props":481,"children":482},{"style":435},[483],{"type":326,"value":484},"export",{"type":321,"tag":428,"props":486,"children":487},{"style":435},[488],{"type":326,"value":489}," class",{"type":321,"tag":428,"props":491,"children":493},{"style":492},"--shiki-light:#953800;--shiki-default:#953800;--shiki-dark:#FFA657",[494],{"type":326,"value":495}," Product",{"type":321,"tag":428,"props":497,"children":498},{"style":435},[499],{"type":326,"value":500}," extends",{"type":321,"tag":428,"props":502,"children":503},{"style":492},[504],{"type":326,"value":505}," Integrator",{"type":321,"tag":428,"props":507,"children":508},{"style":441},[509],{"type":326,"value":510},".",{"type":321,"tag":428,"props":512,"children":513},{"style":492},[514],{"type":326,"value":334},{"type":321,"tag":428,"props":516,"children":517},{"style":441},[518],{"type":326,"value":510},{"type":321,"tag":428,"props":520,"children":522},{"style":521},"--shiki-light:#0550AE;--shiki-default:#0550AE;--shiki-dark:#79C0FF",[523],{"type":326,"value":524},"Standalone",{"type":321,"tag":428,"props":526,"children":527},{"style":441},[528],{"type":326,"value":529}," {\n",{"type":321,"tag":428,"props":531,"children":533},{"class":430,"line":532},5,[534,539,544,549,554,559],{"type":321,"tag":428,"props":535,"children":536},{"style":435},[537],{"type":326,"value":538},"    constructor",{"type":321,"tag":428,"props":540,"children":541},{"style":441},[542],{"type":326,"value":543},"(",{"type":321,"tag":428,"props":545,"children":546},{"style":492},[547],{"type":326,"value":548},"product",{"type":321,"tag":428,"props":550,"children":551},{"style":435},[552],{"type":326,"value":553},":",{"type":321,"tag":428,"props":555,"children":556},{"style":492},[557],{"type":326,"value":558}," YourProduct",{"type":321,"tag":428,"props":560,"children":561},{"style":441},[562],{"type":326,"value":563},") {\n",{"type":321,"tag":428,"props":565,"children":567},{"class":430,"line":566},6,[568,573],{"type":321,"tag":428,"props":569,"children":570},{"style":521},[571],{"type":326,"value":572},"        super",{"type":321,"tag":428,"props":574,"children":575},{"style":441},[576],{"type":326,"value":577},"({\n",{"type":321,"tag":428,"props":579,"children":581},{"class":430,"line":580},7,[582],{"type":321,"tag":428,"props":583,"children":584},{"style":441},[585],{"type":326,"value":586},"            id: product.id,\n",{"type":321,"tag":428,"props":588,"children":590},{"class":430,"line":589},8,[591,596],{"type":321,"tag":428,"props":592,"children":593},{"style":435},[594],{"type":326,"value":595},"            ...",{"type":321,"tag":428,"props":597,"children":598},{"style":472},[599],{"type":326,"value":600}," // map other properties\n",{"type":321,"tag":428,"props":602,"children":604},{"class":430,"line":603},9,[605],{"type":321,"tag":428,"props":606,"children":607},{"style":441},[608],{"type":326,"value":609},"        })\n",{"type":321,"tag":428,"props":611,"children":613},{"class":430,"line":612},10,[614],{"type":321,"tag":428,"props":615,"children":616},{"style":441},[617],{"type":326,"value":618},"    }\n",{"type":321,"tag":428,"props":620,"children":622},{"class":430,"line":621},11,[623],{"type":321,"tag":428,"props":624,"children":625},{"style":441},[626],{"type":326,"value":627},"}\n",{"type":321,"tag":417,"props":629,"children":632},{"className":419,"code":630,"filename":631,"language":422,"meta":314,"style":314},"interface Product {\n    id: string\n    type: Type\n    name: string\n    description?: string\n    unitLabel?: string\n    familyId?: string\n}\n\nexport function Product(product: YourProduct): Product {\n    return {\n        id: product.id,\n        ... // map other properties\n    }\n}\n\nenum Type {\n    Standalone = \"standalone\",\n    Family = \"family\"\n}\n","Typescript",[633],{"type":321,"tag":329,"props":634,"children":635},{"__ignoreMap":314},[636,652,669,686,702,719,735,751,758,765,815,827,836,849,857,865,873,891,915,933],{"type":321,"tag":428,"props":637,"children":638},{"class":430,"line":431},[639,644,648],{"type":321,"tag":428,"props":640,"children":641},{"style":435},[642],{"type":326,"value":643},"interface",{"type":321,"tag":428,"props":645,"children":646},{"style":492},[647],{"type":326,"value":495},{"type":321,"tag":428,"props":649,"children":650},{"style":441},[651],{"type":326,"value":529},{"type":321,"tag":428,"props":653,"children":654},{"class":430,"line":458},[655,660,664],{"type":321,"tag":428,"props":656,"children":657},{"style":492},[658],{"type":326,"value":659},"    id",{"type":321,"tag":428,"props":661,"children":662},{"style":435},[663],{"type":326,"value":553},{"type":321,"tag":428,"props":665,"children":666},{"style":521},[667],{"type":326,"value":668}," string\n",{"type":321,"tag":428,"props":670,"children":671},{"class":430,"line":468},[672,677,681],{"type":321,"tag":428,"props":673,"children":674},{"style":492},[675],{"type":326,"value":676},"    type",{"type":321,"tag":428,"props":678,"children":679},{"style":435},[680],{"type":326,"value":553},{"type":321,"tag":428,"props":682,"children":683},{"style":492},[684],{"type":326,"value":685}," Type\n",{"type":321,"tag":428,"props":687,"children":688},{"class":430,"line":478},[689,694,698],{"type":321,"tag":428,"props":690,"children":691},{"style":492},[692],{"type":326,"value":693},"    name",{"type":321,"tag":428,"props":695,"children":696},{"style":435},[697],{"type":326,"value":553},{"type":321,"tag":428,"props":699,"children":700},{"style":521},[701],{"type":326,"value":668},{"type":321,"tag":428,"props":703,"children":704},{"class":430,"line":532},[705,710,715],{"type":321,"tag":428,"props":706,"children":707},{"style":492},[708],{"type":326,"value":709},"    description",{"type":321,"tag":428,"props":711,"children":712},{"style":435},[713],{"type":326,"value":714},"?:",{"type":321,"tag":428,"props":716,"children":717},{"style":521},[718],{"type":326,"value":668},{"type":321,"tag":428,"props":720,"children":721},{"class":430,"line":566},[722,727,731],{"type":321,"tag":428,"props":723,"children":724},{"style":492},[725],{"type":326,"value":726},"    unitLabel",{"type":321,"tag":428,"props":728,"children":729},{"style":435},[730],{"type":326,"value":714},{"type":321,"tag":428,"props":732,"children":733},{"style":521},[734],{"type":326,"value":668},{"type":321,"tag":428,"props":736,"children":737},{"class":430,"line":580},[738,743,747],{"type":321,"tag":428,"props":739,"children":740},{"style":492},[741],{"type":326,"value":742},"    familyId",{"type":321,"tag":428,"props":744,"children":745},{"style":435},[746],{"type":326,"value":714},{"type":321,"tag":428,"props":748,"children":749},{"style":521},[750],{"type":326,"value":668},{"type":321,"tag":428,"props":752,"children":753},{"class":430,"line":589},[754],{"type":321,"tag":428,"props":755,"children":756},{"style":441},[757],{"type":326,"value":627},{"type":321,"tag":428,"props":759,"children":760},{"class":430,"line":603},[761],{"type":321,"tag":428,"props":762,"children":763},{"emptyLinePlaceholder":462},[764],{"type":326,"value":465},{"type":321,"tag":428,"props":766,"children":767},{"class":430,"line":612},[768,772,777,782,786,790,794,798,803,807,811],{"type":321,"tag":428,"props":769,"children":770},{"style":435},[771],{"type":326,"value":484},{"type":321,"tag":428,"props":773,"children":774},{"style":435},[775],{"type":326,"value":776}," function",{"type":321,"tag":428,"props":778,"children":780},{"style":779},"--shiki-light:#8250DF;--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[781],{"type":326,"value":495},{"type":321,"tag":428,"props":783,"children":784},{"style":441},[785],{"type":326,"value":543},{"type":321,"tag":428,"props":787,"children":788},{"style":492},[789],{"type":326,"value":548},{"type":321,"tag":428,"props":791,"children":792},{"style":435},[793],{"type":326,"value":553},{"type":321,"tag":428,"props":795,"children":796},{"style":492},[797],{"type":326,"value":558},{"type":321,"tag":428,"props":799,"children":800},{"style":441},[801],{"type":326,"value":802},")",{"type":321,"tag":428,"props":804,"children":805},{"style":435},[806],{"type":326,"value":553},{"type":321,"tag":428,"props":808,"children":809},{"style":492},[810],{"type":326,"value":495},{"type":321,"tag":428,"props":812,"children":813},{"style":441},[814],{"type":326,"value":529},{"type":321,"tag":428,"props":816,"children":817},{"class":430,"line":621},[818,823],{"type":321,"tag":428,"props":819,"children":820},{"style":435},[821],{"type":326,"value":822},"    return",{"type":321,"tag":428,"props":824,"children":825},{"style":441},[826],{"type":326,"value":529},{"type":321,"tag":428,"props":828,"children":830},{"class":430,"line":829},12,[831],{"type":321,"tag":428,"props":832,"children":833},{"style":441},[834],{"type":326,"value":835},"        id: product.id,\n",{"type":321,"tag":428,"props":837,"children":839},{"class":430,"line":838},13,[840,845],{"type":321,"tag":428,"props":841,"children":842},{"style":435},[843],{"type":326,"value":844},"        ...",{"type":321,"tag":428,"props":846,"children":847},{"style":472},[848],{"type":326,"value":600},{"type":321,"tag":428,"props":850,"children":852},{"class":430,"line":851},14,[853],{"type":321,"tag":428,"props":854,"children":855},{"style":441},[856],{"type":326,"value":618},{"type":321,"tag":428,"props":858,"children":860},{"class":430,"line":859},15,[861],{"type":321,"tag":428,"props":862,"children":863},{"style":441},[864],{"type":326,"value":627},{"type":321,"tag":428,"props":866,"children":868},{"class":430,"line":867},16,[869],{"type":321,"tag":428,"props":870,"children":871},{"emptyLinePlaceholder":462},[872],{"type":326,"value":465},{"type":321,"tag":428,"props":874,"children":876},{"class":430,"line":875},17,[877,882,887],{"type":321,"tag":428,"props":878,"children":879},{"style":435},[880],{"type":326,"value":881},"enum",{"type":321,"tag":428,"props":883,"children":884},{"style":492},[885],{"type":326,"value":886}," Type",{"type":321,"tag":428,"props":888,"children":889},{"style":441},[890],{"type":326,"value":529},{"type":321,"tag":428,"props":892,"children":894},{"class":430,"line":893},18,[895,900,905,910],{"type":321,"tag":428,"props":896,"children":897},{"style":521},[898],{"type":326,"value":899},"    Standalone",{"type":321,"tag":428,"props":901,"children":902},{"style":435},[903],{"type":326,"value":904}," =",{"type":321,"tag":428,"props":906,"children":907},{"style":452},[908],{"type":326,"value":909}," \"standalone\"",{"type":321,"tag":428,"props":911,"children":912},{"style":441},[913],{"type":326,"value":914},",\n",{"type":321,"tag":428,"props":916,"children":918},{"class":430,"line":917},19,[919,924,928],{"type":321,"tag":428,"props":920,"children":921},{"style":521},[922],{"type":326,"value":923},"    Family",{"type":321,"tag":428,"props":925,"children":926},{"style":435},[927],{"type":326,"value":904},{"type":321,"tag":428,"props":929,"children":930},{"style":452},[931],{"type":326,"value":932}," \"family\"\n",{"type":321,"tag":428,"props":934,"children":936},{"class":430,"line":935},20,[937],{"type":321,"tag":428,"props":938,"children":939},{"style":441},[940],{"type":326,"value":627},{"type":321,"tag":942,"props":943,"children":944},"style",{},[945],{"type":326,"value":946},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":314,"searchDepth":468,"depth":468,"links":948},[949,950,951],{"id":356,"depth":458,"text":359},{"id":397,"depth":458,"text":400},{"id":408,"depth":458,"text":411},"markdown","content:99.integrations:2.models:5.product.md","content","99.integrations/2.models/5.product.md","99.integrations/2.models/5.product","md",{"loc":311},[960,964],{"_path":961,"title":962,"description":963},"/integrations/models/coupon","Coupon Model","Coupon represents a code that can be redeemed for a discount.",{"_path":368,"title":965,"description":966},"Family Model","A group of products or services.",{"_path":404,"_dir":548,"_draft":313,"_partial":313,"_locale":314,"type":968,"title":334,"properties":969,"_id":988,"_type":989,"_source":954,"_file":990,"_stem":991,"_extension":989},"object",{"id":970,"type":974,"name":979,"description":981,"unitLabel":984,"familyId":986},{"type":971,"severity":972,"description":973},"string","required","Unique identifier of the product",{"type":881,"severity":972,"description":975,"values":976},"Type of the product. All products should have a same type.",[977,978],"'standalone'","'family'",{"type":971,"severity":972,"description":980},"Customer-facing name.",{"type":971,"severity":982,"description":983},"optional","Customer-facing  description.",{"type":971,"severity":982,"description":985},"Label for the unit of the product. For example, 'GB' for data plans.",{"type":971,"severity":982,"description":987},"ID of the family this product belongs to. `type` should be set to `'family'`","content:types:product:product.type.json","json","types/product/product.type.json","types/product/product.type",{"data":993,"body":994,"excerpt":-1,"toc":1000},{"title":314,"description":973},{"type":318,"children":995},[996],{"type":321,"tag":322,"props":997,"children":998},{},[999],{"type":326,"value":973},{"title":314,"searchDepth":458,"depth":458,"links":1001},[],{"data":1003,"body":1005,"excerpt":-1,"toc":1022},{"title":314,"description":1004},"'standalone' 'family'",{"type":318,"children":1006},[1007],{"type":321,"tag":322,"props":1008,"children":1009},{},[1010,1015,1017],{"type":321,"tag":329,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":326,"value":977},{"type":326,"value":1016}," ",{"type":321,"tag":329,"props":1018,"children":1020},{"className":1019},[],[1021],{"type":326,"value":978},{"title":314,"searchDepth":458,"depth":458,"links":1023},[],{"data":1025,"body":1026,"excerpt":-1,"toc":1032},{"title":314,"description":975},{"type":318,"children":1027},[1028],{"type":321,"tag":322,"props":1029,"children":1030},{},[1031],{"type":326,"value":975},{"title":314,"searchDepth":458,"depth":458,"links":1033},[],{"data":1035,"body":1036,"excerpt":-1,"toc":1042},{"title":314,"description":980},{"type":318,"children":1037},[1038],{"type":321,"tag":322,"props":1039,"children":1040},{},[1041],{"type":326,"value":980},{"title":314,"searchDepth":458,"depth":458,"links":1043},[],{"data":1045,"body":1046,"excerpt":-1,"toc":1052},{"title":314,"description":983},{"type":318,"children":1047},[1048],{"type":321,"tag":322,"props":1049,"children":1050},{},[1051],{"type":326,"value":983},{"title":314,"searchDepth":458,"depth":458,"links":1053},[],{"data":1055,"body":1056,"excerpt":-1,"toc":1062},{"title":314,"description":985},{"type":318,"children":1057},[1058],{"type":321,"tag":322,"props":1059,"children":1060},{},[1061],{"type":326,"value":985},{"title":314,"searchDepth":458,"depth":458,"links":1063},[],{"data":1065,"body":1067,"excerpt":-1,"toc":1086},{"title":314,"description":1066},"ID of the family this product belongs to. type should be set to 'family'",{"type":318,"children":1068},[1069],{"type":321,"tag":322,"props":1070,"children":1071},{},[1072,1074,1079,1081],{"type":326,"value":1073},"ID of the family this product belongs to. ",{"type":321,"tag":329,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":326,"value":356},{"type":326,"value":1080}," should be set to ",{"type":321,"tag":329,"props":1082,"children":1084},{"className":1083},[],[1085],{"type":326,"value":978},{"title":314,"searchDepth":458,"depth":458,"links":1087},[],1775515592233]