Files
2026-04-12 01:06:31 +07:00

100 lines
2.5 KiB
Markdown

# Creem.io Checkouts
## Checkout Options
1. **Programmatic Sessions** - Full API control
2. **Checkout Links** - No-code, shareable URLs
3. **Storefronts** - Hosted product pages
## Create Checkout Session
```javascript
const session = await creem.checkout.sessions.create({
product_id: 'prod_xxx',
success_url: 'https://example.com/success?session_id={CHECKOUT_SESSION_ID}',
cancel_url: 'https://example.com/cancel',
// Optional parameters
customer_email: 'user@example.com',
customer_id: 'cus_xxx', // Existing customer
quantity: 1, // For seat-based products
discount_code: 'LAUNCH20', // Pre-apply discount
metadata: {
order_id: '123',
referral_code: 'abc'
},
// Custom fields
custom_fields: [
{ key: 'company', label: 'Company Name', required: true }
]
});
// Redirect user to checkout
redirect(session.url);
```
## Checkout Customization
Configure in dashboard or via API:
- **Branding**: Logo, colors, themes
- **Email Receipts**: Custom templates
- **Localization**: Auto-detect or force language (42 supported)
- **Custom Fields**: Collect additional data
## Retrieve Session
```javascript
// GET /v1/checkout/sessions/:id
const session = await creem.checkout.sessions.retrieve('cs_xxx');
// Returns: { id, status, customer_id, product_id, amount, metadata, ... }
```
## Success URL Parameters
Creem replaces `{CHECKOUT_SESSION_ID}` in success URL:
```javascript
// Frontend: parse session ID from URL
const urlParams = new URLSearchParams(window.location.search);
const sessionId = urlParams.get('session_id');
// Backend: verify and fulfill
const session = await creem.checkout.sessions.retrieve(sessionId);
if (session.status === 'complete') {
await fulfillOrder(session);
}
```
## No-Code Checkout Links
Create in dashboard - shareable URLs for any product. Good for:
- Social media links
- Email campaigns
- Quick sales without integration
## Storefronts
Hosted product pages - display multiple products without custom website:
1. Configure storefront in dashboard
2. Add products to display
3. Share storefront URL
4. Customers browse and checkout
## Cart Abandonment Recovery
Enable in dashboard - automatic emails sent when checkout abandoned:
- Configurable delay before sending
- Customizable email content
- Include discount code incentive
## Embedding (Coming)
For embedded checkout in your site, see SDK adapters:
- Next.js Adapter
- React components
See `references/creem/sdk.md` for implementation details.