Digits for Craft CMS

Free for Craft CMS 5 · Commerce optional

Everything after the sale

Craft's digital-products plugin gives Commerce a purchasable and stops there. Digits handles what comes after the sale: links that expire and can be taken back, downloads that are counted, files with versions, keys your software can check, an account page for customers, and refunds that really do remove access.

Digits

One verdict, everywhere

The helper that draws your button asks the same question as the endpoint that hands over the file. A template can't offer a download that the server will refuse.

twig
{% set download = entry.downloads.one() %}
{% set verdict = craft.digits.can(download) %}

{% if verdict.allowed %}
    {% for link in craft.digits.linksFor(download) %}
        <a href="{{ link.url }}">{{ link.file.name }} ({{ link.file.sizeLabel }})</a>
    {% endfor %}
{% else %}
    {# expired, revoked, limit-reached, update-gated… #}
    <p>{{ verdict.message }}</p>
{% endif %}

Features

Built on Craft elements rather than post meta, and modelled on the features Easy Digital Downloads users rely on.

Links you can take back

Every download link is minted per click and stored as a row, not a signed URL. That means a refund can kill the link that's already sitting in somebody's inbox.

  • Only a hash of the token is stored
  • Every redemption is logged, refusals included

Limits that hold under load

Download and seat limits are a single conditional UPDATE, so two tabs clicking at the same moment can't both spend the last download.

Versions and releases

A release can hold several files and carries a real release date, which is what "your licence covers updates until March" is measured against.

  • Release notices to licence holders, safe to re-run
  • Exactly one current version, switched inside a transaction

Licence keys and seats

Keys that people can read out over the phone, seats keyed on whatever your software calls itself, and an activation API with machine-readable error codes. Reinstalling doesn't use up a seat.

A customer portal

Signed-in customers and guests (by emailed link) see their files, versions, keys, seats and invoices on one page. The templates can be overridden in your own site.

EU VAT, documented honestly

Digits works out the place-of-supply treatment and prints the reverse-charge wording the directive requires. It also records what Commerce actually charged and flags any gap. It never quietly restates the charge.

  • Gapless invoice numbers and credit notes
  • The quarterly OSS return, on screen and as CSV

Digits in the control panel

Real screens from a Craft 5 install: the downloads index, every licence at a glance, and one licence with its seats and history.

The Digits downloads index in the Craft control panel, listing five downloads with their SKU, access rule, current version and licence count
The Digits licences index showing licence keys, customers, expiry dates, downloads used and activation seats, with active, expired and revoked licences
A single Digits licence with its key, customer, the downloads it unlocks, three activated machines and a recent activity log

Screenshots from a live install, not mockups.

Frequently Asked Questions

The questions worth answering before you install it.

Start free, upgrade when you ship software

Lite is free and sells, protects and counts your files with no caps. Pro is $129 with a $99/year renewal, and adds licence keys, seats, the portal and EU VAT invoicing.