FastLinkIt

Products

Payments & Donationspayments4 min read

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

  1. Go to Money → Products in the sidebar
  2. 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
  3. 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

  1. In the Products table, click the Embed button on any active product
  2. A modal opens with ready-to-copy HTML code
  3. Choose Light or Dark theme to match your site
  4. 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.

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.