Get in touch
WooCommerce

Document Generator from .docx for WooCommerce — delivery notes, acts and invoices from your own Word blank

Upload your own .docx blank with placeholders and every order gets a button for the finished document: delivery note, act, invoice, contract. No PHPWord and no external service. Pro adds own numbering, a bulk zip, the document in e-mails and any order meta field.

Download Free
Pro · one-year licence Staging copies are included. The more sites, the cheaper each one
Compatibility
WordPress 6.2+ · WooCommerce 6.0+ (tested on WordPress 7.1 and WooCommerce 11.2) · PHP 7.4+ with the zip extension · HPOS and classic order storage · admin languages: Ukrainian, Russian, English
Licence
a site + a staging copy, annual
Trial
7 days, no card, one per site
Updated
October 2026
Or all 394 Pro modules with All Access — 4 990 ₴ / year ≈ €98

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
Templates up to 2 unlimited
Your own .docx blank: formatting, logo and tables stay yours ✔ ✔
Document button in the order list and on the order screen ✔ ✔
Placeholders for the order, totals, customer, addresses, shop and line items ✔ ✔
A table row with an item placeholder repeats for every line item ✔ ✔
Headers and footers are filled in too ✔ ✔
A placeholder that Word cut into pieces is found and replaced ✔ ✔
Amount in words: Ukrainian, Russian, English; hryvnia, dollar, euro, zloty ✔ ✔
Date format, file name pattern, currency symbol in amounts ✔ ✔
A "Placeholders in the file" column shows what the module read from the blank ✔ ✔
Own numbering per template: prefix, counter, zero padding; the number stays with the order — ✔
Bulk generation into one zip, up to 200 orders at a time — ✔
The document attached to the WooCommerce e-mails you choose — ✔
Number issued at the order status you choose — ✔
Any order meta field in the blank: VAT number, waybill, contract number — ✔

What it looks like

Document templates in WooCommerce
Templates screen: numbering and the placeholders found in the file, including a key misspelled on purpose. Test blank.
Document buttons in the order list
Order list: one button per template. Test orders.
A finished delivery note
Part of a finished document: the line-item table and the amount in words. Test order, the blank is in Ukrainian.

Key points

What the buyer sees

In the base version the buyer sees nothing: the admin makes the documents. With Pro the buyer can get the .docx attached to the WooCommerce e-mail you choose, for example the processing order e-mail.

What the admin gets

The menu is under WooCommerce. Upload a blank and the placeholders the module found in the file appear next to it, so a typo shows up before the first document.

How much it costs

The base version costs 0 UAH, with no limit on time or documents: 2 templates, every placeholder except meta fields, amount in words, buttons on orders.

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — a site and a staging copy

Moving the site? Unlink the licence on the old domain and activate it on the new one yourself. A staging copy (staging., dev.) works with the same key and does not take a site slot. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • WordPress 6.2+, WooCommerce 6.0+, PHP 7.4+.
  • PHP zip extension: if it is missing, the module says so plainly.
  • Order storage: HPOS or classic, both tested.
  • Files: .docx only, .doc and .odt are not accepted.

Version history

v1.0.1 Current October 2026

Docx templates, placeholders for the order, customer, addresses and shop, the line-item row, amount in words, buttons on orders.

Frequently bought with Document Generator from .docx

All Access Need more? All modules (394) under one licence, new ones are added automatically. 4 990 ₴≈ €98 Learn more →

Full module description

Document Generator from .docx for WooCommerce fills your own blank with the data of an order. Take the delivery note, act or invoice your accountant already uses, type placeholders such as {{order.number}} or {{customer.full_name}} into the text, upload the file, and every order gets a button. The result is still a Word file, so anything left can be finished by hand.

What the buyer sees

In the base version the buyer sees nothing: the admin makes the documents. With Pro the buyer can get the .docx attached to the WooCommerce e-mail you choose, for example the processing order e-mail.

What the admin gets

The menu is under WooCommerce. Upload a blank and the placeholders the module found in the file appear next to it, so a typo shows up before the first document. The same screen has a reference of all placeholder groups.

The order list gets a documents column with one button per template, and the order screen has the same block. Press it and the browser downloads the finished .docx.

A table row holding at least one line-item placeholder repeats for every product. The amount in words is built from the order total with the correct grammatical forms.

How it works, step by step

  1. In Word, LibreOffice or Google Docs type the placeholders into your blank and save it as .docx.
  2. Upload the file under WooCommerce and check the list of placeholders found.
  3. Press the template button on an order.
  4. The module fills a copy of the blank, repeats the line-item row and fills the headers and footers.
  5. The browser downloads the .docx and the temporary file is deleted from the server.

How much it costs

Pro costs 990 UAH (≈ €20) for a one-year licence. A year of updates, technical support and all Pro features: unlimited templates, numbering, a bulk zip, the document in e-mails, meta fields. You can try it free for 7 days, no card needed. After the trial the free version keeps working.

Under the hood

  • No composer, no PHPWord, no external service: ZipArchive and the module’s own XML handling. Order data does not leave your server.
  • A value takes the place of its placeholder with the same formatting, and the neighbouring text does not change.
  • An issued number is stored in the order, so a reprint gives the same number.
  • Templates sit in the uploads folder under random names. On Apache the folder is closed by .htaccess, on nginx that rule has no effect, so deny access to uploads/ccdg-templates in the server configuration.
  • The module makes no PDF and keeps no archive of finished documents.

Installation

  1. Plugins → Add New → Upload Plugin: choose the archive.
  2. Open the documents screen under WooCommerce and upload your blank.
  3. Check the column with the placeholders found in the file.
  4. Open an order and press the template button.
  5. For Pro: paste the key on the licence tab or start the 7-day trial.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
Why was a placeholder not replaced?

Almost always a typo in the name. An unknown placeholder simply becomes empty, so check the "Placeholders in the file" column on the templates screen: it shows what the module read from the blank.

Where will a placeholder not work?

Inside a text box or a Word field (MERGEFIELD) it is no longer plain text. A placeholder spread over two paragraphs is not collected either. A table nested inside a cell of another table does not work for the line-item row.

Does the module make PDF?

No. Turning .docx into PDF on a server needs LibreOffice or a paid service. Word, LibreOffice and Google Docs export PDF themselves.

Can the same blank be used for OpenCart?

Not one to one. The placeholder sets differ: WooCommerce has order.status_name, order.payment_title, order.items_count, order.items_qty and meta.*, OpenCart has order.payment_method, order.invoice, total.CODE and item.model. Without an edit the blank will have empty spots.

A big batch does not download.

A batch is limited to 200 orders at a time, but on weak hosting it can hit the PHP time limit. Split the selection into smaller parts. Batches in the tests had 3 orders.

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.

Order a custom module