Offer products like drinks or equipment as well as additional and recommended resources directly in the booking process.
With additional options you extend the booking of a service with three things: Products (extras like drinks, towels or equipment), Additional Resources (booked along as a sub-booking for the same period) and Recommended Resources (suggested at checkout as a booking of their own). You create products centrally under Products. Which additional options a service offers, you set in the service’s Additional options tab.
The Additional options tab only appears once the feature is active. In the sidebar, open Apps & Integrations, select the anny Apps category and open Additional service options. Turn on Enable for your organization there.
Products are extras that customers add to a service while booking. Availability is unlimited, and billing is based on the selected quantity and the stored price.You find all products of your organization in the sidebar under Products. The table shows each product’s group, price and price type, and whether it is featured or provided by a third party. Use the Group, Featured and Third party filters to narrow down the list.
The process:
You create a product with a name, price and rules.
You assign it to one or more services.
Customers see the product when booking these services and can add it.
Billing happens automatically based on quantity and price.
Price per time unit of the booking. Under Billing per you set the interval, e.g. 1 hour. Every started interval is billed.
Relative Price
Percentage of the booking subtotal. All products without a relative price count toward the subtotal, sub-bookings do not. Example: 20% of a €20 subtotal is €4.
With Add stagger price you set a lower price from a certain quantity. From that quantity, the stagger price applies to the entire quantity. Example: a yoga mat costs €3, from 5 items €2.50 each. Booking 6 mats costs €15.With Hide price customers see no price, for example when the final price is only known after the booking.
You can sort products into groups, e.g. “Drinks” or “Equipment”. Groups are optional. To create a new group, type a new name directly into a product’s Group field. You manage all groups in the Settings under the Groups tab in Product groups.
Additional resources are booked together with the service. Customers pick them after the date. The resource is attached to the main booking as a sub-booking and always shares its period (Same period). If the main booking changes, the sub-booking adjusts. You cannot change the sub-booking’s date on its own.
Recommended resources are offered at checkout as separate bookings. For each recommendation you choose the Preselected service and the Period relative to the booking of the service. Customers add the recommendation to the cart as a booking of its own.
Period
Description
Within the period
The recommended booking falls within the time window of the main booking.
After booking end
The recommended booking starts after the main booking ends.
Before booking start
The recommended booking ends before the main booking starts.
Overnight stays
The recommended booking is booked as an overnight stay.
You offer extras for a booking (e.g. drinks, rental equipment, a catering flat rate): use Products.
You want to firmly couple another resource to the booking (e.g. a second room for the same period): use Additional Resources.
You want to suggest complementary offers that work as a booking of their own (e.g. a parking space or a room after the class): use Recommended Resources.
Not suitable for: dependent resources that should be blocked invisibly in the background (e.g. a room booked along automatically). Use Smart Availability for that.
Smart Availability: Smart Availability blocks resources in the background. Additional options are visible and selectable for customers.
Modifying bookings: if Allow editing of service options after booking is on in the service’s Change & cancellation tab, customers can adjust their products themselves after booking.
Dynamic pricing: product prices are independent of the service’s dynamic price modifiers.
Recurring bookings: products are carried over per appointment in a series and can be adjusted per appointment.
In the sidebar, open Products and click New. A window for creating the product opens.
2
Set name and group
Enter a Name, optionally choose a Group and click Save. The detail page of the new product opens.
3
Complete the general information
Upload a Cover image if needed and add a Subtitle and Description. Customers see these texts when choosing.
4
Set the price
Under Pricing, choose the price type, enter the price and check the Tax rate. Add stagger prices if needed. The price now appears at the top below the product name.
5
Set quantities and rules
Open Quantities & preselection and Booking & billing and adjust the settings. Save your changes with Save at the top right.
6
Assign services
Go to the Services section and select the services that offer the product under All services on the right. The services appear in the list on the left.
In the sidebar, open Services, select the service and switch to the Additional options tab. You see the Products, Additional Resources and Recommended Resources sections.
2
Assign products
In the Products section, click the plus icon next to a product under All products on the right, or drag it to the left. With New you create a new product right here. The product now appears in the service’s list on the left.
3
Set the order
Drag the products on the left by their handle into the order you want. Customers see them in this order while booking.
4
Add resources
In the Additional Resources and Recommended Resources sections, add resources from All resources the same way. For recommended resources, then choose the Preselected service and Period.
5
Save
Click Save at the top right. The additional options now appear when this service is booked.
Assignment works in both directions: on the product you choose the services, on the service you choose the products. You always set the order of the products on the respective service.
Minimum quantity once the product is selected. Default: 0.
Max Quantity
Maximum quantity per booking. Empty means unlimited.
Always apply
Shown once Min Quantity is greater than 0. Default: on. When enabled, the product is preselected at the minimum quantity and cannot be deselected. When disabled, the product stays optional and the minimum applies only after it is selected. Lead time does not apply while Always apply is on.
Fitness studio with rental mats and drinks (products)
A studio wants to offer yoga mats and drinks with class bookings.
1
Create the products
Open Products, click New and create “Yoga mat rental” with the group “Equipment”. Under Pricing, set a Price per unit of €3 and add a stagger price from 5 items. Create “Protein shake” with the group “Drinks” the same way.
2
Assign them to the class
Under Services, open the class, switch to the Additional options tab and add both products from All products. The products now appear in the list on the left.
3
Test
Open the booking page and book the class. The products are shown during booking.
Conference center with an extra room (additional resource)
A conference center offers a meeting room booked for the same period as the main room.
1
Open the service
Under Services, open the service of the main room and switch to the Additional options tab.
2
Add an additional resource
In the Additional Resources section, add the meeting room from All resources and save. The room carries the Same period label.
3
Test
Create a test booking. After the date selection, the meeting room appears as an option. If you select it, a sub-booking is created for the period of the main booking.
Coworking space with a parking recommendation (recommended resource)
A coworking space recommends parking spaces as a separate booking for the same period.
1
Open the service
Under Services, open the service of the desk and switch to the Additional options tab.
2
Add a recommended resource
In the Recommended Resources section, add the parking resource. Choose the Preselected service and set the Period to Within the period. Save your changes.
3
Test
Create a test booking. At checkout, the parking space appears as a recommendation and can be added to the cart as a separate booking.
What is the difference between products, additional and recommended resources?
Products are extras without their own booking (e.g. drinks). Additional resources create a sub-booking that always shares the period of the main booking. Recommended resources are suggested at checkout and added to the cart as a standalone, separate booking.
Are products the same as add-ons?
Yes. In the admin, the former add-ons are now called Products. You find them in the sidebar under Products and in the Products section of a service’s Additional options tab.
What is the difference between additional options and Smart Availability?
Additional options are visible and selectable for customers. Smart Availability blocks resources invisibly in the background (e.g. a dependent room).
Can customers change products after booking?
Yes, if Allow editing of service options after booking is on in the service’s Change & cancellation tab.
Can I hide the price of a product?
Yes. Enable Hide price when the final price is only known later, e.g. for usage-based billing. Customers then see no price.
What does Always apply do?
Always apply appears once Min Quantity is greater than 0 and is on by default. Then the product is preselected at the minimum quantity and cannot be deselected. If you turn it off, the product stays optional: customers select it themselves, and only then does the minimum apply. The same rule applies per appointment in a series.
How does a stagger price work?
From the quantity entered under From quantity, the stagger price applies to all units, not just the additional ones. With several tiers, the highest tier reached applies.
The Additional options tab is missing on the service
The feature is not active. Under Apps & Integrations, in the anny Apps category, enable the Additional service options app.
The product does not appear during booking
Check whether the product is assigned to the correct service. It must be on the left in the service’s Additional options tab or listed in the product’s Services section. Products that only appear under All products are not assigned to any service yet.
Customers cannot select the product
The product’s lead time is probably not met. Check the required lead time under Booking & billing: if the booking is too short notice, the product is not offered.
The recommended resource is not shown at checkout
Check the resource, Preselected service and Period of the recommendation. Make sure the resource is available in the selected period.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"anny","colors":{"primary":"#3c69ef","light":"#6789ef","dark":"#2055f3"},"logo":{"light":"https://mintcdn.com/anny-85c98540/ijC9sfplIYStpnep/images/anny-lockup-hell-inline.svg?fit=max\u0026auto=format\u0026n=ijC9sfplIYStpnep\u0026q=85\u0026s=7d8ad75aba0be5dcd6f5dacf0edc35b1","dark":"https://mintcdn.com/anny-85c98540/ijC9sfplIYStpnep/images/anny-lockup-dunkel-inline.svg?fit=max\u0026auto=format\u0026n=ijC9sfplIYStpnep\u0026q=85\u0026s=29c002d1a13f15f47ef5866bf557bb87","href":"https://anny.co"},"favicon":{"light":"https://mintcdn.com/anny-85c98540/ijC9sfplIYStpnep/images/anny-icon-flach.svg?fit=max\u0026auto=format\u0026n=ijC9sfplIYStpnep\u0026q=85\u0026s=989439e987cd6b526bb0bfe00fb24856","dark":"https://mintlify.s3.us-west-1.amazonaws.com/anny-85c98540/favicon.svg"},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/annyco","instagram":"https://www.instagram.com/anny.company?hl=de","youtube":"https://www.youtube.com/@anny.company"}},"icons":{"library":"fontawesome"},"integrations":{"gtm":{"tagId":"GTM-TTDNBZTD"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"languages":[{"language":"de","default":true,"href":"welcome"},{"language":"en","href":"en/welcome"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"anny-85c98540","hasAudioNarration":false,"actualSubdomain":"anny-85c98540","customDomains":["docs.anny.co"],"gitSource":{"type":"github","owner":"anny-co","repo":"knowledge-base","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"1f41460b-bdb9-4260-ad58-b369ce010cbf","liveDeploymentHistoryId":"6ae35cd20184476a8fdbceef","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae35cd20184476a8fdbceef"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae35cd20184476a8fdbceef","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"de","tag":"Developers","count":617},{"language":"de","tag":"Admin API","count":348},{"language":"de","tag":"Admin","count":167},{"language":"en","tag":"Admin","count":163},{"language":"de","tag":"Customer API","count":122},{"language":"de","tag":"Data models","count":121},{"language":"de","tag":"Scalar reference catalog","count":99},{"language":"en","tag":"Integrations","count":44},{"language":"de","tag":"Integrationen","count":43},{"language":"de","tag":"Orders \u0026 Billing","count":43},{"language":"de","tag":"Service Configuration","count":41},{"language":"de","tag":"Booking Management","count":37},{"language":"en","tag":"Your Organization","count":26},{"language":"en","tag":"Getting Started","count":22},{"language":"en","tag":"Booking Options \u0026 Services","count":17},{"language":"en","tag":"Access \u0026 Smart Locks","count":15},{"language":"en","tag":"Use Cases","count":15},{"language":"en","tag":"anny AI","count":11},{"language":"en","tag":"Security \u0026 Login","count":11},{"language":"en","tag":"End Users","count":10},{"language":"default","tag":"Changelog","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"en/add-ons","slug":"/en/add-ons","pageMetadata":{"title":"Products \u0026 additional options","sidebarTitle":"Products \u0026 additional options","description":"Offer products like drinks or equipment as well as additional and recommended resources directly in the booking process.","public":true,"href":"/en/add-ons"},"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: \"Offer products like drinks or equipment as well as additional and recommended resources directly in the booking process.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Frame,Heading,Info,OptimizedImage,Step,Steps,Table,Tip,Visibility}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Visibility)_missingMdxReference(`Visibility`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`With additional options you extend the booking of a service with three things: `,_jsx(_components.strong,{children:`Products`}),` (extras like drinks, towels or equipment), `,_jsx(_components.strong,{children:`Additional Resources`}),` (booked along as a sub-booking for the same period) and `,_jsx(_components.strong,{children:`Recommended Resources`}),` (suggested at checkout as a booking of their own). You create products centrally under `,_jsx(_components.strong,{children:`Products`}),`. Which additional options a service offers, you set in the service’s `,_jsx(_components.strong,{children:`Additional options`}),` tab.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Additional options`}),` tab only appears once the feature is active. In the sidebar, open `,_jsx(_components.strong,{children:`Apps \u0026 Integrations`}),`, select the `,_jsx(_components.strong,{children:`anny Apps`}),` category and open `,_jsx(_components.strong,{children:`Additional service options`}),`. Turn on `,_jsx(_components.strong,{children:`Enable for your organization`}),` there.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-additional-options-work`,children:`How do additional options work?`}),`\n`,_jsx(Heading,{level:`3`,id:`products`,children:`Products`}),`\n`,_jsx(_components.p,{children:`Products are extras that customers add to a service while booking. Availability is unlimited, and billing is based on the selected quantity and the stored price.`}),`\n`,_jsxs(_components.p,{children:[`You find all products of your organization in the sidebar under `,_jsx(_components.strong,{children:`Products`}),`. The table shows each product’s group, price and price type, and whether it is featured or provided by a third party. Use the `,_jsx(_components.strong,{children:`Group`}),`, `,_jsx(_components.strong,{children:`Featured`}),` and `,_jsx(_components.strong,{children:`Third party`}),` filters to narrow down the list.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-list.png?fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=4639a76bff7f1a946f38627e1909ad58`,alt:`Products page: table with seven products such as Towel rental, Yoga mat rental and Protein shake, each with group, price, price type and the Featured and Third party columns`,\"data-og-width\":`2762`,width:`2762`,\"data-og-height\":`1554`,height:`1554`,\"data-path\":`images/add-ons/products-list.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-list.png?w=280\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=47a9ca34a5b91c0cb2bb90585ab4e200 280w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-list.png?w=560\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=3450abac738099a96007e8351adebc14 560w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-list.png?w=840\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=ecabb0fc1652699f275237a31eee9a64 840w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-list.png?w=1100\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=774645700bd238173a9a3c91d5d01e9a 1100w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-list.png?w=1650\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=10c21650d971b95554234b3a90a72ca9 1650w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-list.png?w=2500\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=f501259ac764830253fb358f257980af 2500w`})}),`\n`,_jsx(_components.p,{children:`The process:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`You create a product with a name, price and rules.`}),`\n`,_jsx(_components.li,{children:`You assign it to one or more services.`}),`\n`,_jsx(_components.li,{children:`Customers see the product when booking these services and can add it.`}),`\n`,_jsx(_components.li,{children:`Billing happens automatically based on quantity and price.`}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`price-types`,children:`Price types`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Price type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Price per unit`}),_jsx(_components.td,{children:`Fixed price per item, e.g. €3 per yoga mat.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Price per Interval`}),_jsxs(_components.td,{children:[`Price per time unit of the booking. Under `,_jsx(_components.strong,{children:`Billing per`}),` you set the interval, e.g. 1 hour. Every started interval is billed.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Relative Price`}),_jsx(_components.td,{children:`Percentage of the booking subtotal. All products without a relative price count toward the subtotal, sub-bookings do not. Example: 20% of a €20 subtotal is €4.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`With `,_jsx(_components.strong,{children:`Add stagger price`}),` you set a lower price from a certain quantity. From that quantity, the stagger price applies to the entire quantity. Example: a yoga mat costs €3, from 5 items €2.50 each. Booking 6 mats costs €15.`]}),`\n`,_jsxs(_components.p,{children:[`With `,_jsx(_components.strong,{children:`Hide price`}),` customers see no price, for example when the final price is only known after the booking.`]}),`\n`,_jsx(Heading,{level:`4`,id:`product-groups`,children:`Product groups`}),`\n`,_jsxs(_components.p,{children:[`You can sort products into groups, e.g. “Drinks” or “Equipment”. Groups are optional. To create a new group, type a new name directly into a product’s `,_jsx(_components.strong,{children:`Group`}),` field. You manage all groups in the `,_jsx(_components.strong,{children:`Settings`}),` under the `,_jsx(_components.strong,{children:`Groups`}),` tab in `,_jsx(_components.strong,{children:`Product groups`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`additional-resources`,children:`Additional Resources`}),`\n`,_jsxs(_components.p,{children:[`Additional resources are booked together with the service. Customers pick them after the date. The resource is attached to the main booking as a sub-booking and always shares its period (`,_jsx(_components.strong,{children:`Same period`}),`). If the main booking changes, the sub-booking adjusts. You cannot change the sub-booking’s date on its own.`]}),`\n`,_jsx(Heading,{level:`3`,id:`recommended-resources`,children:`Recommended Resources`}),`\n`,_jsxs(_components.p,{children:[`Recommended resources are offered at checkout as separate bookings. For each recommendation you choose the `,_jsx(_components.strong,{children:`Preselected service`}),` and the `,_jsx(_components.strong,{children:`Period`}),` relative to the booking of the service. Customers add the recommendation to the cart as a booking of its own.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Period`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Within the period`}),_jsx(_components.td,{children:`The recommended booking falls within the time window of the main booking.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`After booking end`}),_jsx(_components.td,{children:`The recommended booking starts after the main booking ends.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Before booking start`}),_jsx(_components.td,{children:`The recommended booking ends before the main booking starts.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Overnight stays`}),_jsx(_components.td,{children:`The recommended booking is booked as an overnight stay.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`when-do-i-use-this`,children:`When do I use this?`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`You offer extras for a booking`}),` (e.g. drinks, rental equipment, a catering flat rate): use `,_jsx(_components.strong,{children:`Products`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`You want to firmly couple another resource to the booking`}),` (e.g. a second room for the same period): use `,_jsx(_components.strong,{children:`Additional Resources`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`You want to suggest complementary offers that work as a booking of their own`}),` (e.g. a parking space or a room after the class): use `,_jsx(_components.strong,{children:`Recommended Resources`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Not suitable for`}),`: dependent resources that should be blocked invisibly in the background (e.g. a room booked along automatically). Use `,_jsx(_components.a,{href:`/en/smart-availability`,children:`Smart Availability`}),` for that.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`relationship-with-other-features`,children:`Relationship with other features`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/en/smart-availability`,children:_jsx(_components.strong,{children:`Smart Availability`})}),`: Smart Availability blocks resources in the background. Additional options are visible and selectable for customers.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/en/modify-bookings`,children:_jsx(_components.strong,{children:`Modifying bookings`})}),`: if `,_jsx(_components.strong,{children:`Allow editing of service options after booking`}),` is on in the service’s `,_jsx(_components.strong,{children:`Change \u0026 cancellation`}),` tab, customers can adjust their products themselves after booking.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/en/dynamic-pricing`,children:_jsx(_components.strong,{children:`Dynamic pricing`})}),`: product prices are independent of the service’s dynamic price modifiers.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/en/recurring-bookings`,children:_jsx(_components.strong,{children:`Recurring bookings`})}),`: products are carried over per appointment in a series and can be adjusted per appointment.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-product`,children:`Create a product`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Products`,children:_jsxs(_components.p,{children:[`In the sidebar, open `,_jsx(_components.strong,{children:`Products`}),` and click `,_jsx(_components.strong,{children:`New`}),`. A window for creating the product opens.`]})}),_jsx(Step,{title:`Set name and group`,children:_jsxs(_components.p,{children:[`Enter a `,_jsx(_components.strong,{children:`Name`}),`, optionally choose a `,_jsx(_components.strong,{children:`Group`}),` and click `,_jsx(_components.strong,{children:`Save`}),`. The detail page of the new product opens.`]})}),_jsx(Step,{title:`Complete the general information`,children:_jsxs(_components.p,{children:[`Upload a `,_jsx(_components.strong,{children:`Cover image`}),` if needed and add a `,_jsx(_components.strong,{children:`Subtitle`}),` and `,_jsx(_components.strong,{children:`Description`}),`. Customers see these texts when choosing.`]})}),_jsx(Step,{title:`Set the price`,children:_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Pricing`}),`, choose the price type, enter the price and check the `,_jsx(_components.strong,{children:`Tax rate`}),`. Add stagger prices if needed. The price now appears at the top below the product name.`]})}),_jsx(Step,{title:`Set quantities and rules`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Quantities \u0026 preselection`}),` and `,_jsx(_components.strong,{children:`Booking \u0026 billing`}),` and adjust the settings. Save your changes with `,_jsx(_components.strong,{children:`Save`}),` at the top right.`]})}),_jsx(Step,{title:`Assign services`,children:_jsxs(_components.p,{children:[`Go to the `,_jsx(_components.strong,{children:`Services`}),` section and select the services that offer the product under `,_jsx(_components.strong,{children:`All services`}),` on the right. The services appear in the list on the left.`]})})]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-detail.png?fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=5d0a283845f6f4fc85e5ead3180b156d`,alt:`Product detail page, Pricing section: price per unit €3, tax rate 19%, two stagger prices from 5 and from 10 items, below them the Quantities \u0026 preselection and Booking \u0026 billing sections`,\"data-og-width\":`2762`,width:`2762`,\"data-og-height\":`1554`,height:`1554`,\"data-path\":`images/add-ons/products-detail.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-detail.png?w=280\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=1ca9c81e5015fbadbf185d73adc2c6fc 280w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-detail.png?w=560\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=e45c8f671fdc8d068f5c6c4093829d4f 560w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-detail.png?w=840\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=2a3c496fc9a40c2f15940151be4c3a33 840w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-detail.png?w=1100\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=2f1979e63f53423ac32dce926209dbe1 1100w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-detail.png?w=1650\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=735d52955501a3efd7b6e710f0e51a11 1650w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-detail.png?w=2500\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=84c4119c1e64deab44413eee7e5a582e 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`set-up-the-additional-options-of-a-service`,children:`Set up the additional options of a service`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the service`,children:_jsxs(_components.p,{children:[`In the sidebar, open `,_jsx(_components.strong,{children:`Services`}),`, select the service and switch to the `,_jsx(_components.strong,{children:`Additional options`}),` tab. You see the `,_jsx(_components.strong,{children:`Products`}),`, `,_jsx(_components.strong,{children:`Additional Resources`}),` and `,_jsx(_components.strong,{children:`Recommended Resources`}),` sections.`]})}),_jsx(Step,{title:`Assign products`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Products`}),` section, click the plus icon next to a product under `,_jsx(_components.strong,{children:`All products`}),` on the right, or drag it to the left. With `,_jsx(_components.strong,{children:`New`}),` you create a new product right here. The product now appears in the service’s list on the left.`]})}),_jsx(Step,{title:`Set the order`,children:_jsx(_components.p,{children:`Drag the products on the left by their handle into the order you want. Customers see them in this order while booking.`})}),_jsx(Step,{title:`Add resources`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Additional Resources`}),` and `,_jsx(_components.strong,{children:`Recommended Resources`}),` sections, add resources from `,_jsx(_components.strong,{children:`All resources`}),` the same way. For recommended resources, then choose the `,_jsx(_components.strong,{children:`Preselected service`}),` and `,_jsx(_components.strong,{children:`Period`}),`.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Save`}),` at the top right. The additional options now appear when this service is booked.`]})})]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-service.png?fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=19d0136cfdd18e5ade446d7ecf3383c5`,alt:`Service Barre class, Additional options tab: four assigned products with prices on the left, All products with further products and the New button on the right`,\"data-og-width\":`2762`,width:`2762`,\"data-og-height\":`1554`,height:`1554`,\"data-path\":`images/add-ons/products-service.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-service.png?w=280\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=22c5f4e00143606e0c23d7275f71dcf3 280w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-service.png?w=560\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=04d539dcb79080e3b39543f6e3fc6c30 560w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-service.png?w=840\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=7bce70f38e3211ed4d1d12b423b2d0bb 840w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-service.png?w=1100\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=11f635014c831e307c3a93b33aaf687c 1100w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-service.png?w=1650\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=b45943d4324041b8afa4d81295f4c8a4 1650w, https://mintcdn.com/anny-85c98540/F42XR9Qo633KmWK1/images/add-ons/products-service.png?w=2500\u0026fit=max\u0026auto=format\u0026n=F42XR9Qo633KmWK1\u0026q=85\u0026s=2dd5333bcc233c5d97b2ca36f000d336 2500w`})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Assignment works in both directions: on the product you choose the services, on the service you choose the products. You always set the order of the products on the respective service.`})}),`\n`,_jsx(Heading,{level:`2`,id:`settings-\u0026-options`,children:`Settings \u0026 options`}),`\n`,_jsx(Heading,{level:`3`,id:`product-general-information`,children:`Product: General Information`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cover image`}),_jsx(_components.td,{children:`Optional image in 16:9 format (PNG, JPG).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Name`}),_jsx(_components.td,{children:`Name of the product. Required, translatable.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Subtitle`}),_jsx(_components.td,{children:`Short note below the name, e.g. “Cleaned after every class”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Group`}),_jsx(_components.td,{children:`Optional product group. Type a new name to create a group.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Description`}),_jsx(_components.td,{children:`Detailed description with formatting.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`product-pricing`,children:`Product: Pricing`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Price type`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Price per unit`}),`, `,_jsx(_components.strong,{children:`Price per Interval`}),` or `,_jsx(_components.strong,{children:`Relative Price`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Price`}),_jsx(_components.td,{children:`Amount with currency and gross or net. A percentage for the relative price.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tax rate`}),_jsx(_components.td,{children:`VAT rate, 19% by default.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Billing per`}),_jsxs(_components.td,{children:[`Only for `,_jsx(_components.strong,{children:`Price per Interval`}),`: the interval; every started interval is billed.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Hide price`}),_jsx(_components.td,{children:`Customers see no price.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Stagger price`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`From quantity`}),` plus price. From that quantity, the stagger price applies to the entire quantity.`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`product-quantities-\u0026-preselection`,children:`Product: Quantities \u0026 preselection`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Min Quantity`}),_jsx(_components.td,{children:`Minimum quantity once the product is selected. Default: 0.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Max Quantity`}),_jsx(_components.td,{children:`Maximum quantity per booking. Empty means unlimited.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Always apply`}),_jsxs(_components.td,{children:[`Shown once `,_jsx(_components.strong,{children:`Min Quantity`}),` is greater than 0. Default: on. When enabled, the product is preselected at the minimum quantity and cannot be deselected. When disabled, the product stays optional and the minimum applies only after it is selected. Lead time does not apply while `,_jsx(_components.strong,{children:`Always apply`}),` is on.`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`product-booking-\u0026-billing`,children:`Product: Booking \u0026 billing`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Lead time required to provide this product`}),_jsx(_components.td,{children:`Minimum time between booking and start. For shorter-notice bookings the product is not offered.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Highlighted`}),_jsx(_components.td,{children:`The product is shown prominently below the date and time selection.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Full refund in case of cancelation`}),_jsx(_components.td,{children:`On cancelation, the product amount is always fully refunded, regardless of the service’s cancelation policy.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`This product is provided and billed by third parties`}),_jsx(_components.td,{children:`The product is billed by a third party and does not count against the booking’s prepaid allowance.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`additional-resources-2`,children:`Additional Resources`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Resource`}),_jsxs(_components.td,{children:[`The resource booked along for the `,_jsx(_components.strong,{children:`Same period`}),`.`]})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`recommended-resources-2`,children:`Recommended Resources`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Resource`}),_jsx(_components.td,{children:`The recommended resource.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Preselected service`}),_jsx(_components.td,{children:`The service the recommendation is booked with.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Period`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Within the period`}),`, `,_jsx(_components.strong,{children:`After booking end`}),`, `,_jsx(_components.strong,{children:`Before booking start`}),` or `,_jsx(_components.strong,{children:`Overnight stays`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`practical-examples`,children:`Practical examples`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Fitness studio with rental mats and drinks (products)`,id:`fitness-studio-with-rental-mats-and-drinks-products`,children:[_jsx(_components.p,{children:`A studio wants to offer yoga mats and drinks with class bookings.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Create the products`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Products`}),`, click `,_jsx(_components.strong,{children:`New`}),` and create “Yoga mat rental” with the group “Equipment”. Under `,_jsx(_components.strong,{children:`Pricing`}),`, set a `,_jsx(_components.strong,{children:`Price per unit`}),` of €3 and add a stagger price from 5 items. Create “Protein shake” with the group “Drinks” the same way.`]})}),_jsx(Step,{title:`Assign them to the class`,children:_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Services`}),`, open the class, switch to the `,_jsx(_components.strong,{children:`Additional options`}),` tab and add both products from `,_jsx(_components.strong,{children:`All products`}),`. The products now appear in the list on the left.`]})}),_jsx(Step,{title:`Test`,children:_jsx(_components.p,{children:`Open the booking page and book the class. The products are shown during booking.`})})]})]}),_jsxs(Accordion,{title:`Conference center with an extra room (additional resource)`,id:`conference-center-with-an-extra-room-additional-resource`,children:[_jsx(_components.p,{children:`A conference center offers a meeting room booked for the same period as the main room.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Open the service`,children:_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Services`}),`, open the service of the main room and switch to the `,_jsx(_components.strong,{children:`Additional options`}),` tab.`]})}),_jsx(Step,{title:`Add an additional resource`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Additional Resources`}),` section, add the meeting room from `,_jsx(_components.strong,{children:`All resources`}),` and save. The room carries the `,_jsx(_components.strong,{children:`Same period`}),` label.`]})}),_jsx(Step,{title:`Test`,children:_jsx(_components.p,{children:`Create a test booking. After the date selection, the meeting room appears as an option. If you select it, a sub-booking is created for the period of the main booking.`})})]})]}),_jsxs(Accordion,{title:`Coworking space with a parking recommendation (recommended resource)`,id:`coworking-space-with-a-parking-recommendation-recommended-resource`,children:[_jsx(_components.p,{children:`A coworking space recommends parking spaces as a separate booking for the same period.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Open the service`,children:_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Services`}),`, open the service of the desk and switch to the `,_jsx(_components.strong,{children:`Additional options`}),` tab.`]})}),_jsx(Step,{title:`Add a recommended resource`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Recommended Resources`}),` section, add the parking resource. Choose the `,_jsx(_components.strong,{children:`Preselected service`}),` and set the `,_jsx(_components.strong,{children:`Period`}),` to `,_jsx(_components.strong,{children:`Within the period`}),`. Save your changes.`]})}),_jsx(Step,{title:`Test`,children:_jsx(_components.p,{children:`Create a test booking. At checkout, the parking space appears as a recommendation and can be added to the cart as a separate booking.`})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`What is the difference between products, additional and recommended resources?`,id:`what-is-the-difference-between-products-additional-and-recommended-resources`,children:_jsx(_components.p,{children:`Products are extras without their own booking (e.g. drinks). Additional resources create a sub-booking that always shares the period of the main booking. Recommended resources are suggested at checkout and added to the cart as a standalone, separate booking.`})}),_jsx(Accordion,{title:`Are products the same as add-ons?`,id:`are-products-the-same-as-add-ons`,children:_jsxs(_components.p,{children:[`Yes. In the admin, the former add-ons are now called `,_jsx(_components.strong,{children:`Products`}),`. You find them in the sidebar under `,_jsx(_components.strong,{children:`Products`}),` and in the `,_jsx(_components.strong,{children:`Products`}),` section of a service’s `,_jsx(_components.strong,{children:`Additional options`}),` tab.`]})}),_jsx(Accordion,{title:`What is the difference between additional options and Smart Availability?`,id:`what-is-the-difference-between-additional-options-and-smart-availability`,children:_jsx(_components.p,{children:`Additional options are visible and selectable for customers. Smart Availability blocks resources invisibly in the background (e.g. a dependent room).`})}),_jsx(Accordion,{title:`Can customers change products after booking?`,id:`can-customers-change-products-after-booking`,children:_jsxs(_components.p,{children:[`Yes, if `,_jsx(_components.strong,{children:`Allow editing of service options after booking`}),` is on in the service’s `,_jsx(_components.strong,{children:`Change \u0026 cancellation`}),` tab.`]})}),_jsx(Accordion,{title:`Can I hide the price of a product?`,id:`can-i-hide-the-price-of-a-product`,children:_jsxs(_components.p,{children:[`Yes. Enable `,_jsx(_components.strong,{children:`Hide price`}),` when the final price is only known later, e.g. for usage-based billing. Customers then see no price.`]})}),_jsx(Accordion,{title:`What does Always apply do?`,id:`what-does-always-apply-do`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always apply`}),` appears once `,_jsx(_components.strong,{children:`Min Quantity`}),` is greater than 0 and is on by default. Then the product is preselected at the minimum quantity and cannot be deselected. If you turn it off, the product stays optional: customers select it themselves, and only then does the minimum apply. The same rule applies per appointment in a series.`]})}),_jsx(Accordion,{title:`How does a stagger price work?`,id:`how-does-a-stagger-price-work`,children:_jsxs(_components.p,{children:[`From the quantity entered under `,_jsx(_components.strong,{children:`From quantity`}),`, the stagger price applies to all units, not just the additional ones. With several tiers, the highest tier reached applies.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`The Additional options tab is missing on the service`,id:`the-additional-options-tab-is-missing-on-the-service`,children:_jsxs(_components.p,{children:[`The feature is not active. Under `,_jsx(_components.strong,{children:`Apps \u0026 Integrations`}),`, in the `,_jsx(_components.strong,{children:`anny Apps`}),` category, enable the `,_jsx(_components.strong,{children:`Additional service options`}),` app.`]})}),_jsx(Accordion,{title:`The product does not appear during booking`,id:`the-product-does-not-appear-during-booking`,children:_jsxs(_components.p,{children:[`Check whether the product is assigned to the correct service. It must be on the left in the service’s `,_jsx(_components.strong,{children:`Additional options`}),` tab or listed in the product’s `,_jsx(_components.strong,{children:`Services`}),` section. Products that only appear under `,_jsx(_components.strong,{children:`All products`}),` are not assigned to any service yet.`]})}),_jsx(Accordion,{title:`Customers cannot select the product`,id:`customers-cannot-select-the-product`,children:_jsxs(_components.p,{children:[`The product’s lead time is probably not met. Check the required lead time under `,_jsx(_components.strong,{children:`Booking \u0026 billing`}),`: if the booking is too short notice, the product is not offered.`]})}),_jsx(Accordion,{title:`The recommended resource is not shown at checkout`,id:`the-recommended-resource-is-not-shown-at-checkout`,children:_jsxs(_components.p,{children:[`Check the resource, `,_jsx(_components.strong,{children:`Preselected service`}),` and `,_jsx(_components.strong,{children:`Period`}),` of the recommendation. Make sure the resource is available in the selected period.`]})})]}),`\n`,_jsx(Visibility,{for:`agents`,children:_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:`Important information for agents:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Admin UI name: `,_jsx(_components.strong,{children:`Products`}),` (formerly add-ons; API type `,_jsx(_components.code,{children:`add-ons`}),`, permission `,_jsx(_components.code,{children:`add-ons`}),`). Sidebar `,_jsx(_components.strong,{children:`Products`}),` in the catalog group, visible with permission to view products.`]}),`\n`,_jsxs(_components.li,{children:[`Activate feature: `,_jsx(_components.strong,{children:`Apps \u0026 Integrations`}),` → `,_jsx(_components.strong,{children:`anny Apps`}),` category → `,_jsx(_components.strong,{children:`Additional service options`}),` → `,_jsx(_components.strong,{children:`Enable for your organization`}),` (feature key `,_jsx(_components.code,{children:`additional-service-options`}),`). Without the feature the service tab `,_jsx(_components.strong,{children:`Additional options`}),` is hidden.`]}),`\n`,_jsxs(_components.li,{children:[`Service tab `,_jsx(_components.strong,{children:`Additional options`}),` has three sections: `,_jsx(_components.strong,{children:`Products`}),`, `,_jsx(_components.strong,{children:`Additional Resources`}),`, `,_jsx(_components.strong,{children:`Recommended Resources`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Create a product: `,_jsx(_components.strong,{children:`Products`}),` → `,_jsx(_components.strong,{children:`New`}),` (name, group) → detail page with `,_jsx(_components.strong,{children:`General Information`}),` and `,_jsx(_components.strong,{children:`Services`}),`. Detail sections: `,_jsx(_components.strong,{children:`Pricing`}),`, `,_jsx(_components.strong,{children:`Quantities \u0026 preselection`}),`, `,_jsx(_components.strong,{children:`Booking \u0026 billing`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Assignment works both ways: on the product (`,_jsx(_components.strong,{children:`Services`}),` section, `,_jsx(_components.strong,{children:`All services`}),` on the right) or on the service (`,_jsx(_components.strong,{children:`All products`}),` on the right). Order (`,_jsx(_components.code,{children:`order_index`}),` on `,_jsx(_components.code,{children:`service-add-ons`}),`) only on the service via drag and drop.`]}),`\n`,_jsxs(_components.li,{children:[`Price types: `,_jsx(_components.code,{children:`unit`}),` (Price per unit), `,_jsx(_components.code,{children:`interval`}),` (Price per Interval, `,_jsx(_components.strong,{children:`Billing per`}),` = `,_jsx(_components.code,{children:`calculation_interval`}),` + `,_jsx(_components.code,{children:`calculation_unit`}),`, per started interval), `,_jsx(_components.code,{children:`relative`}),` (percentage of the subtotal excluding relative products and sub-bookings).`]}),`\n`,_jsxs(_components.li,{children:[`Stagger prices (`,_jsx(_components.code,{children:`staggered_pricing`}),`, `,_jsx(_components.strong,{children:`From quantity`}),` = `,_jsx(_components.code,{children:`min_quantity`}),`): the highest tier reached replaces the unit price for the entire quantity.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Always apply`}),` (`,_jsx(_components.code,{children:`always_apply`}),`, default `,_jsx(_components.code,{children:`true`}),`): only shown when Min Quantity > 0. On = preselected and not deselectable; off = optional, min applies only after selection. Lead time is set to 0 while always-apply is on.`]}),`\n`,_jsxs(_components.li,{children:[`Other fields: `,_jsx(_components.strong,{children:`Hide price`}),` (`,_jsx(_components.code,{children:`is_price_hidden`}),`), `,_jsx(_components.strong,{children:`Highlighted`}),` (`,_jsx(_components.code,{children:`featured`}),`, table filter `,_jsx(_components.strong,{children:`Featured`}),`), `,_jsx(_components.strong,{children:`Full refund in case of cancelation`}),` (`,_jsx(_components.code,{children:`full_refund`}),`), third party (`,_jsx(_components.code,{children:`is_third_party`}),`, does not count against the prepaid allowance), lead time (`,_jsx(_components.code,{children:`lead_time`}),`, minutes).`]}),`\n`,_jsxs(_components.li,{children:[`Product groups: create by typing in the `,_jsx(_components.strong,{children:`Group`}),` field or manage under `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Groups`}),` tab → `,_jsx(_components.strong,{children:`Product groups`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Additional resources: `,_jsx(_components.code,{children:`booking_type`}),` `,_jsx(_components.code,{children:`sub_booking`}),`, label `,_jsx(_components.strong,{children:`Same period`}),`, sub-booking always shares the main booking’s period, picked after the date.`]}),`\n`,_jsxs(_components.li,{children:[`Recommended resources: separate booking at checkout; `,_jsx(_components.strong,{children:`Preselected service`}),` and `,_jsx(_components.strong,{children:`Period`}),` (within, after booking end, before booking start, overnight stays).`]}),`\n`,_jsxs(_components.li,{children:[`Later changes by customers: service tab `,_jsx(_components.strong,{children:`Change \u0026 cancellation`}),` → `,_jsx(_components.strong,{children:`Allow editing of service options after booking`}),`.`]}),`\n`,_jsx(_components.li,{children:`Additional options ≠ Smart Availability: additional options visible and selectable, Smart Availability blocks invisibly in the background.`}),`\n`,_jsx(_components.li,{children:`Related articles: /en/smart-availability, /en/configure-booking-option, /en/modify-bookings, /en/dynamic-pricing, /en/recurring-bookings`}),`\n`]}),`\n`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Products \u0026 additional options","sidebarTitle":"Products \u0026 additional options","description":"Offer products like drinks or equipment as well as additional and recommended resources directly in the booking process.","public":true,"href":"/en/add-ons"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How do additional options work?","slug":"how-do-additional-options-work","depth":2,"children":[{"title":"Products","slug":"products","depth":3,"children":[]},{"title":"Price types","slug":"price-types","depth":4,"children":[]},{"title":"Product groups","slug":"product-groups","depth":4,"children":[]},{"title":"Additional Resources","slug":"additional-resources","depth":3,"children":[]},{"title":"Recommended Resources","slug":"recommended-resources","depth":3,"children":[]}]},{"title":"When do I use this?","slug":"when-do-i-use-this","depth":2,"children":[]},{"title":"Relationship with other features","slug":"relationship-with-other-features","depth":2,"children":[]},{"title":"Create a product","slug":"create-a-product","depth":2,"children":[]},{"title":"Set up the additional options of a service","slug":"set-up-the-additional-options-of-a-service","depth":2,"children":[]},{"title":"Settings \u0026 options","slug":"settings-\u0026-options","depth":2,"children":[{"title":"Product: General Information","slug":"product-general-information","depth":3,"children":[]},{"title":"Product: Pricing","slug":"product-pricing","depth":3,"children":[]},{"title":"Product: Quantities \u0026 preselection","slug":"product-quantities-\u0026-preselection","depth":3,"children":[]},{"title":"Product: Booking \u0026 billing","slug":"product-booking-\u0026-billing","depth":3,"children":[]},{"title":"Additional Resources","slug":"additional-resources-2","depth":3,"children":[]},{"title":"Recommended Resources","slug":"recommended-resources-2","depth":3,"children":[]}]},{"title":"Practical examples","slug":"practical-examples","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"anny-85c98540","siteName":"anny","title":"Products \u0026 additional options - anny","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"de":{"href":"/add-ons","matchLevel":1},"en":{"href":"/en/add-ons","matchLevel":0}}},"lastModified":"2026-10-21T08:47:17.269Z","originalFileLocation":"en/add-ons.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=\"Offer products like drinks or equipment as well as additional and recommended resources directly in the booking process.\">\u003cmeta data-mint-head name=\"application-name\" content=\"anny\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/anny-85c98540/iaQtrTBWt00eE3Px/_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/anny-85c98540/iaQtrTBWt00eE3Px/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/anny-85c98540/iaQtrTBWt00eE3Px/_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/anny-85c98540/iaQtrTBWt00eE3Px/_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/anny-85c98540/iaQtrTBWt00eE3Px/_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/anny-85c98540/iaQtrTBWt00eE3Px/_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/anny-85c98540/iaQtrTBWt00eE3Px/_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/anny-85c98540/iaQtrTBWt00eE3Px/_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/anny-85c98540/iaQtrTBWt00eE3Px/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Products \u0026amp; additional options - anny\">\u003cmeta data-mint-head property=\"og:description\" content=\"Offer products like drinks or equipment as well as additional and recommended resources directly in the booking process.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"anny\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.anny.co/en/add-ons\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://anny-85c98540.mintlify.app/_mintlify/api/og/v2?division=Extensions\u0026amp;title=Products+%26+additional+options\u0026amp;description=Offer+products+like+drinks+or+equipment+as+well+as+additional+and+recommended+resources+directly+in+the+booking+process.\u0026amp;theme=624ef238bb99e61a4a526947\u0026amp;signature=d1f12dd096989db738159f350cb8fb09611c3dad592b2657aa8ed6b7a9e828d7\">\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=\"Products \u0026amp; additional options - anny\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Offer products like drinks or equipment as well as additional and recommended resources directly in the booking process.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://anny-85c98540.mintlify.app/_mintlify/api/og/v2?division=Extensions\u0026amp;title=Products+%26+additional+options\u0026amp;description=Offer+products+like+drinks+or+equipment+as+well+as+additional+and+recommended+resources+directly+in+the+booking+process.\u0026amp;theme=624ef238bb99e61a4a526947\u0026amp;signature=d1f12dd096989db738159f350cb8fb09611c3dad592b2657aa8ed6b7a9e828d7\">\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/anny-85c98540/iaQtrTBWt00eE3Px/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"anny\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3c69ef\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.anny.co/en/add-ons\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/add-ons.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.anny.co/en/add-ons\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.anny.co/add-ons\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.anny.co/add-ons\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.anny.co/#organization\",\"name\":\"anny\",\"url\":\"https://docs.anny.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/anny-85c98540/ijC9sfplIYStpnep/images/anny-lockup-hell-inline.svg?fit=max\u0026auto=format\u0026n=ijC9sfplIYStpnep\u0026q=85\u0026s=7d8ad75aba0be5dcd6f5dacf0edc35b1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.anny.co#website\",\"name\":\"anny\",\"url\":\"https://docs.anny.co\",\"publisher\":{\"@id\":\"https://docs.anny.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.anny.co/en/add-ons#webpage\",\"url\":\"https://docs.anny.co/en/add-ons\",\"name\":\"Products \u0026 additional options\",\"description\":\"Offer products like drinks or equipment as well as additional and recommended resources directly in the booking process.\",\"dateModified\":\"2026-10-21T08:47:17.269Z\",\"isPartOf\":{\"@id\":\"https://docs.anny.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.anny.co/en/add-ons#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.anny.co/en/add-ons#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Booking Options \u0026 Services\",\"item\":\"https://docs.anny.co/en/configure-booking-option\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extensions\",\"item\":\"https://docs.anny.co/en/smart-availability\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Products \u0026 additional options\",\"item\":\"https://docs.anny.co/en/add-ons\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.anny.co/en/add-ons#article\",\"headline\":\"Products \u0026 additional options\",\"name\":\"Products \u0026 additional options\",\"description\":\"Offer products like drinks or equipment as well as additional and recommended resources directly in the booking process.\",\"url\":\"https://docs.anny.co/en/add-ons\",\"mainEntityOfPage\":{\"@id\":\"https://docs.anny.co/en/add-ons#webpage\"},\"dateModified\":\"2026-10-21T08:47:17.269Z\",\"publisher\":{\"@id\":\"https://docs.anny.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.anny.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"anny\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"anny","nav":{"global":null,"languages":[{"language":"de","default":true,"pages":[{"title":"de","href":"/add-ons"}]},{"language":"en","tabs":[{"tab":"Admin","groups":[{"group":"Getting Started","public":true,"pages":[{"title":"Welcome to anny","sidebarTitle":"Welcome","href":"/en/welcome"},{"title":"Getting Started with anny","sidebarTitle":"Getting Started","href":"/en/getting-started"},{"group":"Use Cases","public":true,"pages":[{"title":"Getting Started – Desk Sharing","sidebarTitle":"Desk Sharing","href":"/en/getting-started-desk-sharing"},{"title":"Getting Started – Universities","sidebarTitle":"Universities","href":"/en/getting-started-universities"},{"title":"Getting Started – Coworking","sidebarTitle":"Coworking","href":"/en/getting-started-coworking"},{"title":"Getting Started – Room Booking","sidebarTitle":"Room Booking","href":"/en/getting-started-room-booking"},{"title":"Getting Started – Courses","sidebarTitle":"Courses","href":"/en/getting-started-courses"},{"title":"Getting Started – Events","sidebarTitle":"Events","href":"/en/getting-started-events"},{"title":"Getting Started – Appointment Scheduling","sidebarTitle":"Appointment Scheduling","href":"/en/getting-started-appointments"},{"title":"Getting Started – Dive Schools","sidebarTitle":"Dive Schools","href":"/en/getting-started-dive-schools"},{"title":"Getting Started – Sailing Schools","sidebarTitle":"Sailing Schools","href":"/en/getting-started-sailing-schools"},{"title":"Getting Started - Visitor Registration","sidebarTitle":"Visitor Registration","href":"/en/visitor-management"},{"title":"Getting Started - Parking Booking","sidebarTitle":"Parking Booking","href":"/en/getting-started-parking"},{"title":"Getting Started - Fleet Management","sidebarTitle":"Fleet Management","href":"/en/getting-started-fleet"},{"title":"Getting Started - Equipment Rental","sidebarTitle":"Equipment Rental","href":"/en/getting-started-equipment-rental"},{"title":"Getting Started - Waiting Area","sidebarTitle":"Waiting Area","href":"/en/getting-started-waiting-area"},{"title":"Getting Started - Memberships","sidebarTitle":"Memberships","href":"/en/getting-started-memberships"}]}]},{"group":"Your Organization","public":true,"pages":[{"group":"Account Settings","public":true,"pages":[{"title":"Account Settings","sidebarTitle":"Account settings","href":"/en/account-settings"},{"title":"Introduction to the Admin Area","sidebarTitle":"Admin Area Introduction","href":"/en/admin-area-intro"},{"title":"Data Privacy \u0026 Deletion Periods","sidebarTitle":"Data Privacy \u0026 Deletion Periods","href":"/en/data-privacy"},{"title":"Master organizations","sidebarTitle":"Master organizations","href":"/en/master-organizations"}]},{"group":"Your anny Contract","public":true,"pages":[{"title":"Manage your anny plan","sidebarTitle":"Manage anny plan","href":"/en/anny-plan"}]},{"group":"Team \u0026 Permissions","public":true,"pages":[{"title":"Manage Admin Users and Roles","sidebarTitle":"Roles \u0026 Permissions","href":"/en/roles-and-permissions"},{"title":"Set admin notifications","sidebarTitle":"Admin notifications","href":"/en/admin-notifications"}]},{"group":"Security \u0026 Login","public":true,"pages":[{"title":"Single Sign-On (SSO) Overview","sidebarTitle":"SSO Overview","href":"/en/sso-overview"},{"title":"Microsoft SAML SSO","sidebarTitle":"Microsoft SAML SSO","href":"/en/microsoft-saml-sso"},{"title":"Google Workspace SSO","sidebarTitle":"Google Workspace SSO","href":"/en/google-workspace-sso"},{"title":"Generic SAML 2.0 SSO","sidebarTitle":"Generic SAML 2.0","href":"/en/generic-saml-sso"},{"title":"OAuth2 SSO","sidebarTitle":"OAuth2 SSO","href":"/en/oauth2-sso"},{"title":"OpenID Connect (OIDC) SSO","sidebarTitle":"OpenID Connect SSO","href":"/en/openid-connect-sso"},{"title":"SCIM (User Provisioning)","sidebarTitle":"SCIM (User Provisioning)","href":"/en/scim-user-provisioning"},{"title":"Federated SAML","sidebarTitle":"Federated SAML","href":"/en/federated-saml"},{"title":"Attribute Mapping","sidebarTitle":"Attribute Mapping","href":"/en/attribute-mapping"},{"title":"Two-Factor Authentication","sidebarTitle":"Two-Factor Authentication","href":"/en/two-factor-authentication"},{"title":"SSO Key Rollover","sidebarTitle":"SSO Key Rollover","href":"/en/sso-key-rollover"}]},{"group":"Booking Page \u0026 Embedding","public":true,"pages":[{"title":"Set Up Your Booking Page Layout","sidebarTitle":"Booking Page Layout","href":"/en/booking-page-layout"},{"title":"Embed the anny Booking Page as a Widget on Your Website","sidebarTitle":"Widget embed","href":"/en/embed-booking-page"},{"title":"Widget Embedding - Advanced","sidebarTitle":"Advanced embedding","href":"/en/widget-embed-advanced"},{"title":"Widget Agent Skill","sidebarTitle":"Widget Agent Skill","href":"/en/widget-agent-skill"},{"title":"Track Bookings with UTM Links","sidebarTitle":"UTM Tracking","href":"/en/utm-tracking"},{"title":"Embed the anny Booking Page in Wix","sidebarTitle":"Wix","href":"/en/embed-wix"},{"title":"Embed the anny Booking Page in Google Sites","sidebarTitle":"Google Sites","href":"/en/embed-google-sites"},{"title":"Embed the anny booking page in WordPress","sidebarTitle":"WordPress","href":"/en/embed-wordpress"}]}]},{"group":"Resources \u0026 Availability","public":true,"pages":[{"group":"General Information","public":true,"pages":[{"title":"Configure a Resource","sidebarTitle":"Configure resources","href":"/en/configure-resources"},{"title":"Groups","sidebarTitle":"Groups","href":"/en/groups-and-categories"},{"title":"Resource status","sidebarTitle":"Resource status","href":"/en/resource-status"}]},{"group":"Schedules","public":true,"pages":[{"title":"Schedules","sidebarTitle":"Schedules","href":"/en/schedules"},{"title":"Available Slots","sidebarTitle":"Available Slots","href":"/en/available-slots"}]},{"group":"Availability Logic","public":true,"pages":[{"title":"Waitlist","sidebarTitle":"Waitlist","href":"/en/waitlist"},{"title":"Exclusive Time Slots","sidebarTitle":"Exclusive Time Slots","href":"/en/exclusive-time-slots"},{"title":"Create and Manage Global Blockers","sidebarTitle":"Global Blockers","href":"/en/global-blockers"},{"title":"Dynamic Capacity Planning with On-Demand Resources","sidebarTitle":"Dynamic Capacity Planning","href":"/en/dynamic-capacity-planning"}]},{"title":"Create Interactive 3D Floor Plans in anny","sidebarTitle":"Maps \u0026 Interactive Floor Plans","href":"/en/maps-and-floor-plans"}]},{"group":"Booking Options \u0026 Services","public":true,"pages":[{"group":"Options \u0026 Services","public":true,"pages":[{"title":"Booking Option","sidebarTitle":"Booking Option","href":"/en/configure-booking-option"},{"title":"Service-First Flow","sidebarTitle":"Service-First Flow","href":"/en/service-first-flow"},{"title":"Combine multiple services","sidebarTitle":"Booking sequences","href":"/en/booking-sequences"},{"title":"Dynamic Pricing","sidebarTitle":"Dynamic Pricing","href":"/en/dynamic-pricing"}]},{"group":"Booking Types","public":true,"pages":[{"title":"About Recurring Bookings","sidebarTitle":"Recurring Bookings","href":"/en/recurring-bookings"},{"title":"Booking Series","sidebarTitle":"Booking Series","href":"/en/booking-series"}]},{"group":"Extensions","public":true,"pages":[{"title":"Smart Availability","sidebarTitle":"Smart Availability","description":"Link resources so that a single booking automatically blocks all dependent resources.","href":"/en/smart-availability"},{"title":"Products \u0026 additional options","sidebarTitle":"Products \u0026 additional options","href":"/en/add-ons"},{"title":"Custom Forms","sidebarTitle":"Custom Forms","description":"Collect individual information during booking with custom form fields per booking option.","href":"/en/custom-forms"},{"title":"Legal Documents","sidebarTitle":"Legal Documents","href":"/en/legal-documents"},{"title":"Participant Management","sidebarTitle":"Participant Management","href":"/en/participant-management"},{"title":"Personalization","sidebarTitle":"Personalization","href":"/en/personalization"},{"title":"Certificates","sidebarTitle":"Certificates","href":"/en/certificates"},{"title":"Minimum and Maximum Selection","sidebarTitle":"Min \u0026 Max Selection","href":"/en/min-max-selection"},{"title":"Service Schedules","sidebarTitle":"Service Schedules","href":"/en/service-schedules"}]},{"group":"Changes \u0026 Cancellation","public":true,"pages":[{"title":"Modify Bookings","sidebarTitle":"Modify Bookings","href":"/en/modify-bookings"},{"title":"Cancellation Policy","sidebarTitle":"Cancellation Policy","href":"/en/cancellation-policy"}]}]},{"group":"Booking Management","public":true,"pages":[{"title":"Plan and manage bookings in the calendar","sidebarTitle":"Calendar","href":"/en/calendar"},{"title":"Booking Rules","sidebarTitle":"Booking Rules","href":"/en/booking-rules"},{"title":"Tags","sidebarTitle":"Tags","href":"/en/tags"},{"title":"Inquiries \u0026 inquiry forms","sidebarTitle":"Inquiries","href":"/en/inquiries"},{"group":"Communication","public":true,"pages":[{"title":"Activity Log","sidebarTitle":"Activity Log","href":"/en/activity-log"},{"title":"Notifications and appointment reminders","sidebarTitle":"Notifications","href":"/en/configure-notifications"},{"title":"Mobile notifications","sidebarTitle":"Mobile notifications","href":"/en/mobile-notifications"},{"title":"Broadcasting","sidebarTitle":"Broadcasting","href":"/en/broadcasting"}]}]},{"group":"CRM","public":true,"pages":[{"title":"Manage Customers","sidebarTitle":"Customers","href":"/en/manage-customers"},{"title":"Manage Companies","sidebarTitle":"Companies","href":"/en/manage-companies"},{"title":"Member Management (Communities)","sidebarTitle":"Member Management (Communities)","href":"/en/communities"}]},{"group":"Payment Processing","public":true,"pages":[{"group":"Online Payment","public":true,"pages":[{"title":"Set Up Stripe Connect","sidebarTitle":"Stripe Connect","href":"/en/stripe-connect-setup"},{"title":"Online Payments \u0026 Fees","sidebarTitle":"Online Payments \u0026 Fees","href":"/en/online-payments"},{"title":"SEPA direct debit for subscriptions","sidebarTitle":"SEPA direct debit","href":"/en/sepa-direct-debit"},{"title":"Manage Your Stripe Connect Profile","sidebarTitle":"Stripe Support","href":"/en/stripe-support"}]},{"group":"POS","public":true,"pages":[{"title":"Set Up Card Readers \u0026 Tap to Pay in the POS App","sidebarTitle":"POS App Setup","href":"/en/pos-app-setup"},{"title":"Manage Bookings and Payments in the POS App","sidebarTitle":"POS App Bookings \u0026 Payments","href":"/en/pos-app-bookings-and-payments"}]}]},{"group":"Invoicing","public":true,"pages":[{"group":"Invoices","public":true,"pages":[{"title":"Invoicing","sidebarTitle":"Invoicing","href":"/en/invoicing"},{"title":"Pay by Invoice (Pay-Later)","sidebarTitle":"Pay by Invoice","href":"/en/pay-later"},{"title":"Edit and Finalize Invoice Drafts","sidebarTitle":"Invoice draft","href":"/en/invoice-drafts"},{"title":"Correct or Cancel an Invoice","sidebarTitle":"Correct invoice","href":"/en/invoice-corrections"},{"title":"Customer Balances \u0026 Collective Invoices","sidebarTitle":"Customer balances","href":"/en/customer-balances-and-collective-invoices"}]},{"group":"Accounting","public":true,"pages":[{"title":"Accounting with anny","sidebarTitle":"Accounting","href":"/en/accounting"},{"title":"Forward invoices to DATEV","sidebarTitle":"Invoice forwarding","href":"/en/datev-import"}]}]},{"group":"Subscriptions, Packages \u0026 Vouchers","public":true,"pages":[{"title":"Booking Quotas","sidebarTitle":"Booking Quotas","href":"/en/booking-quotas"},{"title":"Subscriptions \u0026 Memberships","sidebarTitle":"Subscriptions \u0026 Memberships","href":"/en/subscriptions-and-memberships"},{"group":"Booking Packages","public":true,"pages":[{"title":"Booking Packages \u0026 Codes","sidebarTitle":"Booking Packages","href":"/en/booking-codes"},{"title":"Value Vouchers","sidebarTitle":"Value Vouchers","href":"/en/value-vouchers"},{"title":"Vouchers \u0026 VAT","sidebarTitle":"Vouchers \u0026 VAT","href":"/en/voucher-taxation"}]},{"title":"Discount Codes","sidebarTitle":"Discount Codes","href":"/en/discount-codes"}]},{"group":"Check-In","public":true,"pages":[{"title":"Check-In \u0026 Check-Out","sidebarTitle":"General Information","href":"/en/check-in-overview"},{"title":"Presence in booking details","sidebarTitle":"Booking details","href":"/en/check-in-booking-details"},{"group":"Check-In Terminal","public":true,"pages":[{"title":"Set Up a Check-In Terminal","sidebarTitle":"Setup","href":"/en/check-in-setup"},{"title":"Getting Started – University Library (Check-In)","sidebarTitle":"University Library","href":"/en/check-in-university"},{"title":"Getting Started – Ticketing \u0026 Events (Check-In)","sidebarTitle":"Ticketing \u0026 Events","href":"/en/check-in-ticketing-events"}]},{"group":"Customer display","public":true,"hidden":true,"pages":[{"title":"Customer display","sidebarTitle":"Customer display","href":"/en/customer-display"}]},{"group":"Quick Access","public":true,"pages":[{"title":"Queuing System","sidebarTitle":"Queues","href":"/en/queuing-system"}]}]},{"group":"Analytics \u0026 Data","public":true,"pages":[{"title":"Dashboards","sidebarTitle":"Dashboards","href":"/en/dashboards"},{"title":"(Automatic) Exports","sidebarTitle":"Exports","href":"/en/automatic-exports"}]},{"group":"Displays \u0026 Terminals","public":true,"pages":[{"group":"Display App","public":true,"pages":[{"title":"anny Display App","sidebarTitle":"Display App","href":"/en/display-app"},{"title":"Connect tapirx with anny","sidebarTitle":"tapirx","href":"/en/tapirx-setup"},{"title":"Connect Joan with anny","sidebarTitle":"Joan","href":"/en/joan-setup"},{"title":"Install the anny Display App on the Philips 10BDL4551T","sidebarTitle":"Philips","href":"/en/philips-setup"}]},{"title":"URL Display Boards","sidebarTitle":"URL Display Boards","href":"/en/url-display-boards"}]},{"group":"Integrations","public":true,"pages":[{"group":"Calendar Sync","public":true,"pages":[{"title":"Calendar integrations","sidebarTitle":"Calendar integrations","href":"/en/calendar-integrations"},{"group":"Personal Calendars","public":true,"pages":[{"title":"Connect Outlook Calendar with anny","sidebarTitle":"Outlook","href":"/en/outlook"},{"title":"Connect Google Calendar with anny","sidebarTitle":"Google","href":"/en/google"},{"title":"Connect ICS Calendar with anny","sidebarTitle":"ICS Calendar","href":"/en/ics-calendar"}]},{"group":"Workspace","public":true,"pages":[{"title":"Connect Microsoft 365 with anny","sidebarTitle":"Microsoft 365","href":"/en/m365-workspace"},{"title":"Connect Google Workspace with anny","sidebarTitle":"Google Workspace","href":"/en/google-workspace"}]}]},{"group":"Microsoft Apps","public":true,"pages":[{"title":"Connect the Outlook Add-In with anny","sidebarTitle":"Outlook Add-In","href":"/en/outlook-add-in"},{"title":"anny MS Teams App","sidebarTitle":"MS Teams App","href":"/en/ms-teams-app"}]},{"group":"Video Meetings","public":true,"pages":[{"title":"anny Video Calls","sidebarTitle":"anny Video Calls","href":"/en/anny-video-calls"},{"title":"Connect Zoom with anny","sidebarTitle":"Zoom","href":"/en/zoom"},{"title":"Connect Microsoft Teams with anny","sidebarTitle":"Microsoft Teams","href":"/en/ms-teams"},{"title":"Connect Purpleview with anny","sidebarTitle":"Purpleview","href":"/en/purpleview"}]},{"group":"HR","public":true,"pages":[{"title":"Connect Personio with anny","sidebarTitle":"Personio","href":"/en/personio"},{"title":"Connect HRworks with anny","sidebarTitle":"HRworks","href":"/en/hrworks"}]},{"group":"CRM","public":true,"pages":[{"title":"Connect HubSpot with anny","sidebarTitle":"HubSpot","href":"/en/hubspot"}]},{"group":"Marketing \u0026 Tracking","public":true,"pages":[{"title":"Connect Google Analytics \u0026 Google Ads with anny","sidebarTitle":"Google Analytics \u0026 Google Ads","href":"/en/google-analytics"},{"title":"Connect LinkedIn Ads with anny","sidebarTitle":"LinkedIn Ads","href":"/en/linkedin-ads-tracking"},{"title":"Connect TikTok Ads with anny","sidebarTitle":"TikTok Ads","href":"/en/tiktok-ads-tracking"},{"title":"Connect Meta Ads with anny","sidebarTitle":"Meta Ads","href":"/en/meta-ads-tracking"}]},{"group":"Access \u0026 Smart Locks","public":true,"pages":[{"title":"Smart Lock Integrations","sidebarTitle":"Smart Locks Overview","href":"/en/smart-locks-overview"},{"title":"Connect KleverKey with anny","sidebarTitle":"KleverKey","href":"/en/klever-key"},{"title":"Connect SALTO KS with anny","sidebarTitle":"SALTO KS","href":"/en/salto-ks"},{"title":"Connect Nuki with anny","sidebarTitle":"Nuki","href":"/en/nuki"},{"group":"Dormakaba","public":true,"pages":[{"title":"Connect dormakaba Exos 9300 with anny","sidebarTitle":"dormakaba Exos 9300","href":"/en/dormakaba-exos-9300"},{"title":"Connect dormakaba resivo with anny","sidebarTitle":"Resivo","href":"/en/dormakaba-resivo"},{"title":"Connect dormakaba exivo with anny","sidebarTitle":"dormakaba exivo","href":"/en/dormakaba-exivo"}]},{"title":"Connect UniFi with anny","sidebarTitle":"UniFi","href":"/en/unifi"},{"title":"Connect Keycafe with anny","sidebarTitle":"Keycafe","href":"/en/keycafe"},{"title":"Connect EVVA AirKey with anny","sidebarTitle":"EVVA AirKey","href":"/en/evva-airkey"},{"title":"Connect Tapkey with anny","sidebarTitle":"Tapkey","href":"/en/tapkey"},{"title":"Connect Glutz eAccess with anny","sidebarTitle":"Glutz eAccess","href":"/en/glutz-eaccess"},{"title":"Connect Custom Remote Open with anny","sidebarTitle":"Custom Remote Open","href":"/en/custom-remote-open"},{"title":"Connect Comydo with anny","sidebarTitle":"Comydo","href":"/en/comydo"},{"title":"Connect Arivo with anny","sidebarTitle":"Arivo","href":"/en/arivo"}]},{"group":"Partner \u0026 Booking Channels","public":true,"pages":[{"title":"Connect Urban Sports Club with anny","sidebarTitle":"Urban Sports Club","href":"/en/urban-sports-club"},{"title":"Connect Treatwell with anny","sidebarTitle":"Treatwell","href":"/en/treatwell"},{"title":"Connect ClassPass with anny","sidebarTitle":"ClassPass","href":"/en/class-pass"}]},{"group":"Identity \u0026 Compliance","public":true,"pages":[{"title":"Set Up Microsoft Enterprise SSO on iOS","sidebarTitle":"Enterprise SSO (iOS)","icon":"shield-check","href":"/en/enterprise-sso-ios"},{"title":"Connect Regpit with anny","sidebarTitle":"Regpit","href":"/en/regpit-integration"}]},{"group":"Automation","public":true,"pages":[{"title":"Connect Make.com with anny","sidebarTitle":"make.com","href":"/en/make-com"},{"title":"Connect n8n with anny","sidebarTitle":"n8n","href":"/en/n8n"}]},{"group":"IoT","public":true,"pages":[{"title":"Connect Shelly with anny","sidebarTitle":"Shelly","href":"/en/shelly"}]},{"group":"Accounting","public":true,"pages":[{"title":"Connect DATEV with anny","sidebarTitle":"DATEV","href":"/en/datev-integration"},{"title":"DATEV accounts and preparation with your tax advisor","sidebarTitle":"Accounts \u0026 tax advisor","icon":"calculator","href":"/en/datev-accounts-and-tax-advisor"}]}]},{"group":"Reference","public":true,"pages":[{"title":"FAQ","sidebarTitle":"FAQ","href":"/en/faq"},{"title":"anny Glossary","sidebarTitle":"Glossary","href":"/en/anny-glossary"},{"title":"Support Policy","sidebarTitle":"Support Policy","href":"/en/support-policy"},{"title":"Accessibility at anny","sidebarTitle":"Accessibility","href":"/en/accessibility"},{"title":"GoBD at anny","sidebarTitle":"GoBD","icon":{"style":"regular","name":"scale-balanced","library":"fontawesome"},"href":"/en/gobd"},{"title":"Privacy Policy","sidebarTitle":"Privacy Policy","href":"/en/privacy-policy"}]},{"group":"Testzentren","public":true,"icon":"vial","hidden":true,"pages":[{"title":"Evaluating booking data from anny","sidebarTitle":"Booking data","href":"/en/test-center-booking-data"}]},{"group":"Announcements","public":true,"icon":"bullhorn","hidden":true,"pages":[{"title":"Admin 3.0: What changes","sidebarTitle":"Admin 3.0","href":"/en/admin-3-0"},{"title":"New email design from 8 September 2026","sidebarTitle":"New email design","href":"/en/email-design-september-2026"}]},{"group":"Technical notes","public":true,"icon":"wrench","hidden":true,"pages":[{"title":"Limit Microsoft 365 calendar access to specific mailboxes","sidebarTitle":"Limit M365 calendar access","href":"/en/m365-resource-calendar-scope"}]}]},{"tab":"End Users","pages":[{"title":"End Users","href":"/en/booking-page-overview"}]},{"tab":"anny Apps","pages":[{"title":"anny Apps","href":"/en/anny-apps-overview"}]},{"tab":"anny AI","pages":[{"title":"anny AI","href":"/en/anny-agent"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/2026"}]}]}]},"basePath":"","title":"Products \u0026 additional options - anny","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DXXFP6nH.js","DynamicMarkdown-B54_zNBF.js","zoom-image-lightbox-BG6oD64b.js","lightbox-handle-r17bVUz3.js"]}