Product = Billing Object
In Waffo Pancake, a product is the object used for checkout, taxation, and reporting. It is the commercial offer you charge for, not just a storefront card.For professional use, think of products as billing entities:
- a fixed-price offer
- a subscription plan
- or a base product used with dynamic pricing at checkout
Core Models
One-Time
Customer pays once for a predefined offer.
- Digital downloads
- Lifetime licenses
- Templates, courses, assets
Subscription
Customer is billed on a recurring schedule.
- SaaS plans
- Memberships
- Service retainers
Dynamic Pricing
Amount is calculated at checkout time.
- Usage overage
- Credit top-ups
- Negotiated quotes
Create a Product
Dashboard —> Products —> Create ProductProduct Fields
Required
Optional
Price Limits
Each currency has a minimum and maximum price you can set on a product. Values outside this range are rejected when you save the product.CNY prices one-time products only — subscription products cannot be priced in CNY. CNY-priced orders are payable by WeChat Pay only, and each buyer can pay you at most ¥1,000 via WeChat per calendar month. See Method and currency support.
Multi-Currency Pricing
Price the same product deliberately per market —$9.99, JP¥980, CN¥68 — instead of pushing one base price through a live rate into awkward numbers.
Reference prices
Adding a currency prefills the amount by converting your existing price at the current rate.Yen disambiguation
CN¥ for Chinese yuan, JP¥ for Japanese yen — applied everywhere, so the two are never confused at checkout.
Currencies are priced independently rather than converted, so a subscription cannot change plan across currencies. See Changing Plans.
Dynamic Pricing
Dynamic pricing is the right model when the final amount is not known until runtime. Examples:- usage-based overage billing
- prepaid credit packs with variable size
- contract-specific quotes
- temporary discounts calculated on your server
How It Works
- Create a base one-time product in Waffo Pancake
- Calculate the final amount on your server
- Pass
priceSnapshotwhen creating the checkout session
Trial Periods
Let customers try subscription products before they commit. A trial can be free or carry a price — see Paid Trials.Trial Abuse Protection
Waffo Pancake automatically tracks consumer trial history at the platform level. When a consumer starts a new subscription, the platform calculates the maximum available trial days based on their history — preventing repeated trial abuse without any effort from the merchant. Merchants can also passrequested_trial_days via the API to shorten or skip the trial for specific customers.
Billing Intervals
Product Purchase Links
Every product gets a permanent purchase link that never expires:- Website button
- Twitter bio
- Email signature
- Discord server
- Link is permanent — it stays the same even when you update product details
- No session or token management needed
- A checkout session is created automatically when the customer opens the link
- Dashboard: Click “Copy Link” on any product
- API: For advanced use cases, create a Checkout Session via API with custom parameters (dynamic link, 45-minute default TTL configurable up to 7 days)
- Toggle Test Mode in Dashboard header to preview with test links
- Test links use the
/testsuffix
Product Status
Active
Live. Customers can buy.
Inactive
Hidden from checkout; existing subscriptions continue. Products cannot be deleted — completed orders, invoices and settlement records reference them. Renaming or repricing adds a new version and keeps the product ID.
Updating Products
Products use immutable versioning:Environment Sync
Publish product versions from test to production:Publishing is one-way (test → prod) and only needed for the first publish.
Best Practices
Naming
Naming
Include billing period:
- “Pro Plan - Monthly”
- “Pro Plan - Annual”
Pricing
Pricing
- Round numbers (28.73)
- Research competitors
Images
Images
- 400x400px minimum
- PNG or JPG
- Under 5MB