- What is the Easy Digital Downloads Integration?
- Why Do You Need It?
- Prerequisites
- Step-by-Step Instructions
- Step 1: Activate Easy Digital Downloads
- Step 2: Choose Which Order Statuses Move Points
- Step 3: Create Your EDD Earning Rules
- Step 4: Create Rewards Customers Can Spend Points On
- Step 5: Set the Discount Options
- Step 6: Give Customers Somewhere to Manage Their Points
- Step 7: Check the Storefront Placements
- Step 8: Place a Test Order
- Key Functionality
- Validation Rules
- Limitations
- Troubleshooting
- Notes
What is the Easy Digital Downloads Integration? #
Easy Digital Downloads (EDD) is one of the two stores Pointics runs on, and it is a full peer of WooCommerce, not a cut-down version of it. Once EDD is active, Pointics can award points for EDD purchases and registrations, turn points back into a native EDD discount code at checkout, show earn previews on your download pages, take points back when an order is refunded or revoked, and link every EDD-driven ledger row to the order that caused it.
Everything lives in the places you already know: the triggers appear in Points Program, the redemption methods appear in Rewards, and the order status rules appear in Settings under their own Easy Digital Downloads section.
Why Do You Need It? #
- Your store is the source of every event: Without an active store integration there is nothing for a rule to listen to. Activating EDD gives Pointics purchases and checkout registrations to earn from.
- Points need somewhere to land: EDD supplies the discount code that turns a redemption into real money off a real cart.
- Refunds have to be honest: A refunded EDD order takes its points back in proportion to what was actually refunded, so a half refund does not cost the customer their whole award.
- A digital store is not a physical one: EDD has no cart page, no mini cart and no built-in account page, so Pointics places its storefront elements where EDD actually has room for them.
- You can run both stores at once: WooCommerce and EDD coexist. Each keeps its own order status rules, and a customer’s balance is one balance across both.
Prerequisites #
- An Administrator account
- Easy Digital Downloads installed and active
- The loyalty program switched on under Settings → General
- WordPress scheduled tasks running for the daily reconciliation sweep
- A published page containing the
[pointics_account]shortcode or the Account block if you want customers to have a rewards panel - Pointics Pro, only for EDD conditions and the subscription renewal trigger
- The EDD Recurring Payments extension, only for the subscription renewal trigger
Where to Find It #
| What | Where | Direct URL |
|---|---|---|
| Install or activate EDD | Pointics → Integrations | #/integrations |
| Order status rules | Pointics → Settings → Easy Digital Downloads | #/settings/edd |
| EDD earning triggers | Pointics → Points Program | #/points-program |
| EDD redemption methods | Pointics → Rewards | #/rewards |
| EDD-linked ledger rows | Pointics → Transactions | #/transactions |
The Easy Digital Downloads section only appears in Settings while EDD is active. Its saved values are kept either way, so temporarily deactivating EDD does not remove your status rules.
Step-by-Step Instructions #
Step 1: Activate Easy Digital Downloads #

Go to Pointics → Integrations. Easy Digital Downloads appears on the Integrations shelf under the eCommerce category. Use the card action to install it, then activate it.
Until EDD is active, its earning triggers still appear in the Points Program picker as locked cards, so you can see what activating it would unlock. They award nothing while the plugin is off.
Step 2: Choose Which Order Statuses Move Points #

Go to Pointics → Settings → Easy Digital Downloads.
| Field | Description | Default |
|---|---|---|
| Award points on Order Status | Which EDD payment states pay points out | Completed |
| Revoke Points on Order Status | Which EDD payment states take them back | Refunded, Partially Refunded, Revoked |
Both fields support multiple selections, and the list comes from EDD itself using edd_get_payment_statuses(). This means a custom status registered on your site also appears here.
Revoked is included in the default revoke list because EDD’s Revoke access admin action can move an order there without issuing a refund. In that case, the customer should not keep points for value they no longer have.
These lists are separate from WooCommerce’s. If your site runs both stores, configure the status rules for each independently.
Step 3: Create Your EDD Earning Rules #

Go to Pointics → Points Program and add a rule. Three EDD triggers are available:

| Trigger | Fires When | Type | Default |
|---|---|---|---|
| Place a paid order | An EDD order reaches a paid state | Per currency unit spent | 1 point per unit |
| Register at checkout | A customer creates an account during EDD checkout | Fixed award | 1500 points |
| Subscription renews (Pro) | An EDD subscription takes a renewal payment | Per currency unit | 1 point per unit |

Place a paid order is the recommended trigger and the one every storefront earn preview is calculated from. It listens to both EDD payment paths: the completion hook and a standard status change for gateways that only update the order’s status. The status path uses your Award points on Order Status configuration.
Subscription renews requires both an active Pointics Pro licence and the EDD Recurring Payments extension. Without the extension, the trigger displays “Activate the EDD Recurring Payments extension to use this channel.” Without Pro, the card remains visible but awards nothing.
Step 4: Create Rewards Customers Can Spend Points On #

Go to Pointics → Rewards and add a reward. On an EDD store, the built-in methods are:

| Method | What It Does | Default Cost | Default Value |
|---|---|---|---|
| Points Conversion (recommended) | Converts points into a checkout discount at a set rate | 1500 points | 30 |
| Fixed Discounts | A fixed amount off the order total | 1500 points | 30 |
| EDD discount | The underlying method with the full discount options | — | — |
| Manual / generic | You fulfil the reward yourself outside checkout | — | — |
All three EDD discount methods produce the same underlying result: a native EDD discount code created at the moment of redemption and restricted to the customer who redeemed it.
Step 5: Set the Discount Options #

| Option | Description | Default |
|---|---|---|
| Discount type | flat for a fixed amount off or percent for a percentage of the cart | flat |
| Expiry days | Days until the code expires and the points return. 0 means never | 30 |
| Code prefix | Prefix used for generated discount codes | pts |
| Minimum spend | Optional minimum cart total required before the code applies | None |

Generated codes look like pts-a1b2c3d4. Each code is created for one use, once per customer, and is valid only for the customer who redeemed it.
The prefix is converted to lowercase and stripped of anything that is not a letter, number or hyphen. If nothing usable remains, Pointics falls back to pts.
Step 6: Give Customers Somewhere to Manage Their Points #
EDD has no built-in My Account page, so Pointics cannot automatically find one for you.
Create or choose a WordPress page and add either:
- The
[pointics_account]shortcode - The Account block (
pointics/account)
Publish the page and the notice on the Settings screen clears automatically. Pointics then uses that page whenever an EDD customer needs to open their rewards panel.
Until you do this, Settings → Easy Digital Downloads displays:
No page shows the rewards panel yet. Add the [pointics_account] shortcode or the Account block to a page so customers can view their points and rewards.
Step 7: Check the Storefront Placements #
Three placements have EDD support, controlled by the Show Points on Your Store toggles in the same Settings section:
| Placement | Toggle | Where It Appears |
|---|---|---|
| Download page badge | Product page | Under the purchase button on a single download |
| Downloads grid badge | Shop page | Under the purchase button on archives, categories and download grids |
| Checkout panel | Checkout page | Above the purchase form for signed-in customers |
A signed-out visitor at EDD checkout sees a short prompt instead: “Create an account to earn N points on this order.” That notice has no separate toggle and appears whenever the storefront is enabled.
Step 8: Place a Test Order #
Buy something from the front end using a real, non-test order and a logged-in account. Then go to Pointics → Transactions.
The new transaction row should contain the EDD order number and link directly to that order’s receipt.
Next, redeem a reward, apply the generated code at checkout and complete the payment. The points move from held to spent when the order reaches a paid status.
Key Functionality #
How Points Are Awarded and Taken Back #
flowchart TD
A[Customer places an EDD order] --> B{Signed in?}
B -- no --> B1[No points: guest orders have no account]
B -- yes --> C{Test mode order?}
C -- yes --> C1[No points: sandbox orders never touch balances]
C -- no --> D[Order reaches a paid status]
D --> E[Points awarded against the order total]
E --> F[(Transactions)]
F --> G{Later refunded?}
G -- full refund --> H[All the points taken back]
G -- partial refund --> I[Points taken back in proportion to the refund]
G -- revoked or cancelled --> J[All the points taken back]
G -- no --> K[Points stay]
Refunds are proportional. The share taken back is the refunded amount divided by the order total, capped at the whole award. Refund 40% of an order and 40% of its points come back.
A status change to a revoke status with no refund row behind it takes the whole award because there is no refund amount telling Pointics to do otherwise.
A partial refund is counted only once. The status path steps aside when a real refund row already exists, preventing the same refund from deducting points twice.
How a Redemption Becomes a Discount #
flowchart TD
A[Customer redeems a reward] --> B[Points held, not spent]
B --> C[A private EDD discount code is created]
C --> D[Code applied to the customer's cart]
D --> E{What happens next?}
E -- Order is paid --> F[Hold settled: points spent for good]
E -- Order fails, is abandoned, cancelled or revoked --> G[Hold released: points returned]
E -- Code expires unused --> H[Hold released by the daily sweep]
E -- Customer removes the code at checkout --> I[Points stay held; the code can be reapplied]
Removing a code from checkout is not treated as cancelling the redemption. The points remain held so the customer can apply the code again or return the points from their rewards panel.
Codes Are Private to the Customer Who Earned Them #
EDD discounts do not have their own owner field, so Pointics adds ownership information and checks it whenever the code is validated.
A Pointics-owned code used by someone other than its owner is treated as invalid. Discounts that were not created by Pointics are left untouched, so your normal EDD promotional codes continue to behave as EDD intends.
Ownership is matched against the signed-in user ID and can fall back to the checkout email address when EDD’s combined add-to-cart-and-discount path provides no user.
The Daily Reconciliation Sweep #
Once a day, Pointics reviews open EDD redemptions and finalizes any that have settled. This prevents points from remaining stuck if a normal checkout hook was missed.
| What It Finds | What It Does |
|---|---|
| The code was used on an order that is now paid | Settles the hold and permanently spends the points |
| The code was used on an order that failed, was abandoned, cancelled or revoked | Releases the hold and returns the points |
| The code expired without being used | Releases the hold |
| The code is gone or is no longer owned by Pointics | Releases the hold |
| Minting failed and left no code more than an hour ago | Releases the hold |
| The code is attached to an order that is still payable | Leaves it alone so the points cannot be spent twice |
The sweep works in batches and stops after about twenty seconds, picking up where it left off on the next run. WordPress scheduled tasks must be running for this process to work.
What Else EDD Supplies #
| Area | What EDD Adds |
|---|---|
| Transactions | An order number and receipt link on every EDD-linked row |
| Customers | EDD’s completed order count in the Orders column, added to WooCommerce’s rather than replacing it |
| Currency | Prices and quotes use EDD’s own currency and symbol |
| Prices | Variable-price downloads quote a range. All prices are pre-tax and the download page says so |
| Setup wizard and AI | EDD is reported as your active store so suggested ratios and tiers can fit a digital store |
Conditions on EDD Rules and Rewards (Pro) #
With Pointics Pro active, four EDD conditions are available for narrowing an earning rule or reward:
| Condition | Limits By |
|---|---|
| Download, category, or tag purchased | What is in the order, optionally down to a price option |
| First EDD order | Whether this is the customer’s first order |
| Previously purchased a download | What the customer already owns |
| Order total | The order’s value compared against an amount |
See How Do I Limit Which Events Earn Points? and How Do I Limit Who Can Redeem a Reward?.
Running EDD and WooCommerce Together #
| Thing | Shared or Separate |
|---|---|
| The customer’s points balance | One balance across both stores |
| Award and revoke order statuses | Separate lists, one per store |
| Show Points on Your Store toggles | Shared. Turning one off in either section turns it off everywhere |
| The Orders column on Customers | Summed across both stores |
| Ledger rows | Tagged per store so an EDD row never resolves as a WooCommerce order |
| The customer’s account page | WooCommerce’s page is tried first; the [pointics_account] page is the fallback |
If both stores are active, they share the method names Points Conversion and Fixed Discounts, and the active store owns those method IDs. With both active, WooCommerce owns those two IDs and rewards saved under them are WooCommerce rewards. To offer rewards for both stores, give each store its own reward using its own method.
Validation Rules #
- A guest order awards no points because there is no customer account to hold them.
- A test mode order awards no points, so sandbox purchases cannot change a real balance.
- Points award only on a status in your Award points on Order Status list or through EDD’s purchase completion.
- Points are revoked only on a status in your Revoke Points on Order Status list.
- An order status that does not exist on your site is silently removed instead of being saved.
- A refund can never take back more points than the original award.
- A discount type other than
flatorpercentis rejected. - A percentage discount cannot exceed 100%.
- Pointics tries up to five times to generate an unused discount code. If every attempt collides, the redemption fails rather than reusing an existing code.
- A minimum spend is applied only when it is above zero.
- Expiry days of
0means the code never expires and the points remain held until it is used. - Only codes carrying Pointics’ ownership record are customer-gated. Your own EDD discounts are untouched.
- Only the owner’s order can settle or release that owner’s held points.
Limitations #
- EDD has no cart page. It goes directly to checkout, so the Cart page toggle has no effect on an EDD-only store.
- Mini cart popup, My Account page and Order confirmation page have no EDD placement. Use the
[pointics_account]shortcode or Account block for the customer rewards panel. - Percentage Discount, Free Product, Free Shipping and Bundle Reward are WooCommerce-only redemption methods. EDD provides Points Conversion, Fixed Discounts and the EDD discount method, whose
percenttype covers percentage discounts. - There is no product review trigger for EDD.
- The referral acknowledgement notice at registration and checkout is WooCommerce-only. Referral links and codes themselves work regardless of store.
- Subscription renewals require Pointics Pro and the EDD Recurring Payments extension.
- A redemption code is single use and once per customer. It cannot be split across multiple orders.
- Storefront prices used in earn previews are pre-tax.
- Removing a discount code at checkout does not return the points. The points remain held until the customer uses or returns the redemption.
- Automatic reconciliation requires WordPress scheduled tasks. Without them, expired codes do not automatically release their points.
Troubleshooting #
| Problem | Solution |
|---|---|
| The Easy Digital Downloads section is missing from Settings | EDD is inactive. Activate it and reload. |
| EDD triggers show as locked in Points Program | EDD is inactive. Activating it unlocks them. |
| An order was paid but no points were awarded | Check that the customer was signed in, the order was not a test mode order, and the order status is in your Award points on Order Status list. |
| Points appear to have been awarded twice for one order | EDD can fire both a completion hook and a status change. Pointics recognises the pair and awards once. |
| A partial refund took back all the points | The order total was zero, or a status change with no refund row behind it reached a revoke status. |
| A refund took back nothing | The status it landed on is not in your Revoke Points on Order Status list. |
| “This discount is invalid.” at checkout | The code belongs to another customer, or the signed-in account is not the one that redeemed it. |
| “The discount could not be created.” | EDD refused to create the discount. Check that EDD is working correctly and that no add-on is blocking discount creation. |
| “A unique discount code could not be generated.” | Five attempts collided with existing codes. Change the Code prefix on the reward. |
| The customer removed the code and their points did not come back | This is expected. The points remain held. The customer can reapply the code or return it from their rewards panel. |
| Points did not come back after a code expired | The release runs during the daily sweep. Confirm WordPress scheduled tasks are running. |
| Points are stuck as held | The code may be attached to an order that is still payable. The hold releases or settles when the order reaches a final state. |
| “Activate the EDD Recurring Payments extension to use this channel.” | The subscription renewal trigger requires the EDD Recurring Payments extension and Pointics Pro. |
| “No page shows the rewards panel yet” | Add the [pointics_account] shortcode or the Account block to a published page. |
| No badge appears on download pages | Check the Product page and Shop page options under Show Points on Your Store and confirm the loyalty program is enabled. |
| No panel appears at checkout | The panel is for signed-in customers. Signed-out visitors see the create-an-account notice instead. |
| A reward saved under Points Conversion behaves as a WooCommerce reward | Both stores publish that method name and the active store owns it. On a dual-store setup, give EDD its own reward using the EDD discount method. |
| The Orders column looks too high | On a dual-store site, the number is the combined total across WooCommerce and EDD. |
Notes #
- Deactivating EDD deletes nothing. Points already earned through EDD remain in customer balances. The rules stop firing and the EDD section stays hidden until the integration is active again.
- Pointics does not read EDD cart or order objects outside its EDD adapter, so a site without EDD does not pay for the integration being present.
- Discount codes created through redemption are normal EDD discounts with an ownership record attached. They appear in EDD’s own discount list and are archived automatically when a hold is released.
- A bookkeeping problem during checkout is logged and retried by the reconciliation sweep rather than being surfaced to the customer, so an accounting issue does not fail the purchase.
- Earn previews on download pages and at checkout are calculated from the Place a paid order trigger. If that rule is disabled, the badges have nothing to display.
Was this article helpful?