Accept Bitcoin Lightning payments on your PrestaShop store via the CLINK protocol. Customers pay with ShockWallet, ZEUS, Amethyst, or any CLINK-compatible Lightning wallet. All communication is private and anonymous via Nostr relays.
- Merchant generates a CLINK Offer string (
noffer1...) from their CLINK-compatible Lightning node - Customer selects "Bitcoin Lightning (via CLINK)" at checkout
- The module requests a BOLT11 Lightning invoice from the merchant's node via Nostr
- Customer scans the QR code and pays with any Lightning wallet
- Payment is confirmed via CLINK protocol — order is marked complete
- PrestaShop 1.7+ / 8.x / 9.x
- PHP 7.4+
- A CLINK-compatible Lightning wallet/node (ShockWallet, Lightning.Pub, ZEUS, Amethyst)
- Download or clone this repository into your PrestaShop
modules/directory asprestashop_clink/ - Install dependencies:
cd prestashop_clink && npm install && npm run build - Go to Modules > Module Manager in your back office
- Search for "CLINK" and click Install
- Go to Modules > Module Manager > CLINK > Configure to enter your offer string
Navigate to Modules > Module Manager > Bitcoin Lightning (via CLINK) > Configure.
| Setting | Description |
|---|---|
| Enable/Disable | Turn the gateway on/off |
| CLINK Offer String | Your noffer1... string from ShockWallet / Lightning.Pub |
| Title | Payment method title shown at checkout |
| Description | Payment method description shown at checkout |
| Display Amount As | How prices appear: sats, BTC, or ₿ (bip-0177) |
| Fixed BTC Rate | Optional — set a fixed BTC price instead of live CoinGecko rate |
| Invoice Timeout | Seconds before the Lightning invoice expires (default: 600) |
| Poll Interval | Milliseconds between payment status checks (default: 5000) |
- Open ShockWallet
- Go to Receive > CLINK Offer
- Copy the
noffer1...string - Paste into the module settings
- Log into your Lightning.Pub dashboard
- Navigate to Offers
- Copy the generated
noffer1...string
# Install JS dependencies
npm install
# Build JS bundle
npm run build
# Watch for changes
npm run watchCheckout Flow:
Customer PrestaShop Nostr Relay Merchant Node
| | | |
|-- Place Order ---------->| | |
| |-- Create Order (pending)| |
| |-- Redirect to confirm | |
| | | |
|-- Page Load ------------>| | |
|-- JS: Decode noffer -----| | |
|-- JS: Send kind:21001 ---+------------------------>|-- Request ------->|
| | | |
| |<-- BOLT11 Invoice ------|<-- Response -------|
|-- Display QR code <------+ | |
|-- Customer pays <---------+------------------------>| |
| | |-- Receipt ------->|
|<-- Receipt callback -----+<------------------------| |
|-- AJAX: mark_paid ------>| | |
| |-- Order complete ------->| |
Academic Free License 3.0 (AFL-3.0). See LICENSE.md.