Replace all placeholder values:
PRODUCT_IDVARIANT_IDhttps://your-site.com/thank-you
Copy/paste snippets for Next.js, React, WordPress, and Webflow
PRODUCT_IDVARIANT_IDhttps://your-site.com/thank-you'use client';
import Script from 'next/script';
declare global {
interface Window {
Shoppex?: {
open: (options: {
items: Array<{ productId: string; variantId?: string; quantity?: number }>;
theme?: 'light' | 'dark' | 'auto';
returnUrl?: string;
email?: string;
couponCode?: string;
metadata?: Record<string, string>;
}) => void;
};
}
}
export default function BuyButton() {
const openCheckout = () => {
window.Shoppex?.open({
items: [{ productId: 'PRODUCT_ID', variantId: 'VARIANT_ID', quantity: 1 }],
theme: 'auto',
returnUrl: 'https://your-site.com/thank-you',
});
};
return (
<>
<Script
src="https://checkout.shoppex.io/embed/embed.iife.js"
strategy="afterInteractive"
/>
<button onClick={openCheckout}>Buy now</button>
</>
);
}
import { useEffect } from 'react';
declare global {
interface Window {
Shoppex?: {
open: (options: {
items: Array<{ productId: string; variantId?: string; quantity?: number }>;
theme?: 'light' | 'dark' | 'auto';
}) => void;
};
}
}
export function BuyButton() {
useEffect(() => {
const script = document.createElement('script');
script.src = 'https://checkout.shoppex.io/embed/embed.iife.js';
script.defer = true;
document.body.appendChild(script);
return () => {
document.body.removeChild(script);
};
}, []);
return (
<button
onClick={() =>
window.Shoppex?.open({
items: [{ productId: 'PRODUCT_ID', variantId: 'VARIANT_ID', quantity: 1 }],
theme: 'auto',
})
}
>
Buy now
</button>
);
}
<button
data-shoppex-product-id="PRODUCT_ID"
data-shoppex-variant-id="VARIANT_ID"
data-shoppex-quantity="1"
data-shoppex-theme="auto"
data-shoppex-return-url="https://your-site.com/thank-you"
>
Buy now
</button>
<script src="https://checkout.shoppex.io/embed/embed.iife.js" defer></script>
<button
data-shoppex-product-id="PRODUCT_ID"
data-shoppex-variant-id="VARIANT_ID"
data-shoppex-quantity="1"
data-shoppex-email="[email protected]"
>
Buy now
</button>
<script src="https://checkout.shoppex.io/embed/embed.iife.js" defer></script>
<button id="open-checkout">Checkout bundle</button>
<script src="https://checkout.shoppex.io/embed/embed.iife.js" defer></script>
<script>
document.getElementById('open-checkout').addEventListener('click', () => {
Shoppex.open({
items: [
{ productId: 'PRODUCT_ID_1', variantId: 'VARIANT_1', quantity: 1 },
{ productId: 'PRODUCT_ID_2', quantity: 2 }
],
theme: 'auto',
couponCode: 'SAVE20'
});
});
</script>
<script>
document.addEventListener('shoppex:success', (event) => {
console.log('Invoice paid:', event.detail.invoiceId);
// Example: analytics.track('checkout_paid', { invoiceId: event.detail.invoiceId });
});
document.addEventListener('shoppex:error', (event) => {
console.error('Checkout error:', event.detail.error);
});
</script>