Vue storefront for digital products
A small Vue site sells a template pack. Each product card passes its own offer slug to one reusable button component.
Checkout embed
A Vue 3 component renders a button, the browser SDK opens the checkout, and your Stripe account takes the payment.
No credit card required. No coding required.
VuePlandalf has no Vue plugin. A Vue 3 app uses the same browser SDK as any site: you load it in the root HTML, bind the offer slug to a button, and the checkout it opens takes payment through the Stripe account connected in Plandalf. Vue owns the page; Plandalf owns the checkout.
| Event | From and to | Through | What happens |
|---|---|---|---|
| Component renders a button | Vue → Plandalf | The SDK watches the DOM, so a button created later by v-if or a route component still attaches. The offer slug is bound with :data-plandalf-present. | |
| Payment | Plandalf → Stripe | Payment connection | The charge runs in your connected Stripe account. The Vue bundle needs the public SDK URL and slugs only. |
| Promo tier changes | Plandalf → Vue | A component can call sdk.promo() inside plandalf('ready', ...) and read tier-change events from the handle to show the current tier. | |
| Checkout completed | Plandalf (paid via Stripe) → Vue | Webhook | The app's backend learns of a sale through a sequence that posts to it with Send Webhook. The browser alone should not grant access. |
You need a published Plandalf offer with a Stripe price and edit access to your root HTML and a component.
Authorize Stripe in Plandalf, attach the price, publish the offer, and copy the slug and your organization's script URL.
In a Vite app put the small plandalf queue function and the async script tag in the root index.html, before your app entry. The queue lets components register a ready callback while the script loads.
In a component return a button with :data-plandalf-present bound to a prop, and add data-plandalf-mode set to test. Clicking it should open the offer in a modal.
Include the offer slug in the :key. The SDK captures attributes when it attaches, so changing an attribute on the same DOM node leaves the old click handler in place.
In onMounted call plandalf('ready', ...) and mount the promo into a template ref with redirects off. Close the handle in onUnmounted. For server-rendered Vue keep all SDK work inside onMounted.
Confirm the Stripe account in Plandalf is a test account, pay with a Stripe test card, then try a declined card, and match the results with the Plandalf invoice.
A small Vue site sells a template pack. Each product card passes its own offer slug to one reusable button component.
A Vue dashboard shows an upgrade card that remounts the button when the plan changes, keyed on the offer so it never opens a stale one.
A registration page shows the promo tier in a component and applies the same promo on the buy button, so the price on screen is the price in the Stripe charge.
onMounted.data-plandalf-no-redirect on the button skips its automatic promo monitor, which the component starts itself with redirects off. Choose and test your real expiry behavior before launch.index.html and bind the offer slug to a button with :data-plandalf-present.:key so Vue builds a new element.Checked October 26, 2026 against Plandalf's own setup guides.