Integration contracts
Required contracts for booking and service-to-retail integrations.
Integration contracts keep app behavior predictable across merchants and vertical presets.
Booking contract
- Configure a booking destination (booking_base_url pattern or app block target).
- Preserve service context through URL parameter keys (default service=product-handle; Hollow Reserve also accepts experience=blueprint-slug).
- Use theme tokens (--sa-*) so embedded UI matches merchant branding.
- Hollow Reserve listens for studio-arcana:quiz:complete and hollow-reserve:open events to pre-fill booking context (staff= on quiz result CTAs and service-menu cards).
Service and retail pairing contract
- Service products can expose related aftercare through custom.service_pairing.
- Optional custom.pairing_priority on aftercare SKUs controls Top pick vs Also consider on the product page.
- Aftercare products can map back to treatments with custom.treatment_service.
- Cart surfaces should show either retail upsell or treatment CTA, based on cart composition.
Verification contract
- Test in all vertical dev stores.
- Verify no console errors with and without app blocks.
- Verify fallback experiences when metafields are absent.
- Merchant-facing setup for metafields and metaobjects is documented in the Arcanum docs hub (/docs) alongside this developer page.
Was this page helpful?
Content is maintained by Arcanum Hollow Labs. For internal engineering notes, see the docs/ folder in the monorepo.