Products
Available for Professional plans and above. Requires Stripe Connect.
Products are reusable items that your customers can purchase. Think of them as the catalogue of things you sell — digital downloads, consulting sessions, memberships, physical goods, or any service.
Why Create Products?
You might wonder: "Why not just use quick checkout every time?" Here's why products are better:
- Consistency — the same product always has the same name, price, and description
- Tracking — you can see how many times each product has been purchased
- Simplicity — your API calls and shortcodes only need the product ID
- Management — update the price in one place, it applies everywhere
Quick checkout (without a product) is useful for one-off payments, but products are the recommended approach for anything you sell regularly.
Creating a Product
- Go to Money → Products in the sidebar
- Fill in the form at the top of the page:
- Name — the product name your customers will see (e.g., "Premium eBook", "1-Hour Consultation")
- Description — a brief description (up to 1,000 characters)
- Amount — the price (e.g., 29.99). This is the amount charged to the customer
- Currency — select the currency (GBP, USD, EUR, etc.)
- Image URL — an optional product image
- Click Create Product
The product appears in the table below, ready to be used.
Managing Products
The products table shows:
| Column | Description |
|---|---|
| Name | Product name (click to inline edit) |
| Description | Product description |
| Amount | Price with currency |
| Status | Active or Inactive badge |
| Transactions | Number of completed purchases |
| Date | Creation date |
Actions
- Toggle Active/Inactive — deactivate a product to stop accepting new purchases without deleting it
- Inline Edit — click any product to edit its details directly in the table
- Delete — remove a product (only possible if it has no paid transactions; deactivate instead)
Using Products
Via the API
Create a checkout session for a product:
POST /api/payment/checkout
{
"productId": "your-product-guid",
"customerEmail": "customer@example.com",
"successUrl": "https://yoursite.com/thank-you",
"cancelUrl": "https://yoursite.com/cancelled"
}
The response includes a checkoutUrl — redirect the customer there.
Via WordPress
Use the [flnkit_pay] shortcode with a product ID:
[flnkit_pay product_id="your-product-guid" button_text="Buy Now"]
Or without a product (quick checkout):
[flnkit_pay amount="19.99" currency="gbp" description="Premium Guide" button_text="Buy Now"]
Via Other Plugins
All CMS plugins can use the Payment API to create checkout sessions. See the REST API documentation for details.
Quick Checkout vs Products
| Quick Checkout | Product Checkout | |
|---|---|---|
| Setup | No product needed | Create product first |
| Best for | One-off payments, tips | Regular sales |
| Tracking | By transaction only | Per-product stats |
| Price changes | Per-request | Update once, applies everywhere |
| API endpoint | /api/payment/checkout/quick |
/api/payment/checkout |
Embedding a Payment Button on Any Website
You can embed a payment button for any product directly on an external website using the payment-widget.js script — no CMS plugin required.
Getting the Embed Code
- In the Products table, click the Embed button on any active product
- A modal opens with ready-to-copy HTML code
- Choose Light or Dark theme to match your site
- Click Copy and paste the snippet into your website's HTML
Embed Code Example
<script src="https://flnk.it/js/payment-widget.js"
data-product-id="your-product-guid"
data-api-url="https://flnk.it"
data-api-key="fli_your_api_key"
data-theme="light">
</script>
Available Attributes
| Attribute | Required | Description |
|---|---|---|
data-product-id |
Yes | The product GUID |
data-api-url |
Yes | Your FastLinkIt API base URL |
data-api-key |
Yes | Your API key (needs payment-api scope) |
data-theme |
No | light (default) or dark |
The widget renders a self-contained buy button that redirects the customer to Stripe Checkout when clicked.