← All integrations
Tier 2 — Full Deakee partner

WooCommerce

WordPress + WooCommerce

A drop-in WordPress plugin that runs your loyalty program end-to-end inside WooCommerce. Customers earn points on every order (centralized — stored in your DB). At any time they can connect their Deakee wallet and bridge points on-chain to trade across the Deakee network — and bring them back when they want to spend at your store again.

Download
Upload via WordPress → Plugins → Add New
View source on GitHub →

Two integration modes

The same plugin code supports both modes. Start in OAuth2 mode today; layer in the bridge later as a config flip — no data migration.

OAuth2 mode
planned

Centralized loyalty in your DB synced to Deakee via OAuth2. No chain, no exchange — but customers see balances in Deakee and you can accept Deakee vouchers.

  • Works against today's deakee.com/api/oauth/* backend.
  • No tokens, no legal exposure as an issuer.
  • Upgrades to bridge mode in one config flip.
Bridge mode
planned

Deploy an ERC-8063 contract; customers can mint centralized balance to on-chain tokens and trade them on the Deakee exchange.

  • Adds exchange listing and cross-brand redemption.
  • Requires the Deakee relayer (not yet shipped).
  • Same plugin code as OAuth2 mode — opt in when ready.

Install

  1. Download the plugin zip (or clone from GitHub).
  2. Upload via WordPress → Plugins → Add New → Upload Plugin → activate.
  3. WooCommerce → Deakee Loyalty: set earn rate, redemption rules, and paste your Deakee partner API key.
  4. Click "Deploy My Token" to create your brand's ERC-8063 contract on Sepolia (one-time).
  5. Done — customers earn on every order; the "Send to Deakee" button shows up in their account page for bridging.

Example

// Earn is centralized — no chain involvement:
add_action('woocommerce_order_status_completed', function($order_id) {
  $order = wc_get_order($order_id);
  $points = DeakeeLoyalty::computePoints($order->get_total_cents());
  DeakeeLoyalty::members()->credit(
    $order->get_user_id(),
    $points,
    "wc_order_$order_id",
  );
});

// Bridge is user-initiated — fires only when the customer
// clicks "Send N points to my Deakee wallet" in their account:
DeakeeLoyalty::bridge()->withdraw($user_id, $amount);

How Deakee connects to your plugin

Your partner API key authenticates calls to the Deakee relayer. The OAuth2 authorize/token URLs are used once per customer to fetch the wallet address (scope: identity only).

authorize_urlhttps://deakee.com/oauth2/authorize (scope=identity, one-time wallet link)
token_urlhttps://deakee.com/oauth2/token
api_base_urlhttps://deakee.com/api/relayer/v1 (mint, burn, deploy)

Verify conformance

Before going live, run the official conformance verifier against your deployment. It checks the centralized ledger, identity OAuth flow, bridge mint/burn wiring, and idempotency.

npx @deakee/loyalty-verifier \
  --partner-api-key   <your key> \
  --plugin-url        <your plugin URL> \
  --contract-address  <your ERC-8063 contract> \
  --test-user-email   test@example.com

Stuck? Read the full README or open an issue at github.com/deakee/loyalty/issues.