Pro plugin Version 1.1.0 Updated

Anticipo - Pre-Orders for WooCommerce documentation

Anticipo - Pre-Orders for WooCommerce lets you sell products before they are released. You can take payment in full, as a deposit or on release, cap how many units you promise, and have orders released and customers emailed automatically on launch day.

Try the live demo Get Anticipo

Overview

Anticipo lets you sell a product weeks or months before it arrives. Customers place a normal WooCommerce order. The order waits in a dedicated Pre-ordered status, outside your fulfilment queue, until the release date. On release day a background job releases every waiting order, reduces stock, moves the orders into your normal workflow and emails the customers. Nobody needs to be logged in.

The Pro edition adds deposits and pay on release billing, with balances collected as a linked WooCommerce order and a payment link. It also adds allocation limits with a "82 of 100 claimed" progress bar, pre-order pricing, scheduled release reminders, bulk date shifting, reports, a release calendar, CSV export, a REST API, per variation release dates and customer self cancellation.

Anticipo is for WooCommerce store owners who launch new products, take reservations for limited runs or pre-sell stock that has not arrived yet. You manage everything from WooCommerce > Pre-orders and from the Pre-order tab on each product.

Requirements

  • WordPress 6.4 or later
  • PHP 7.4 or later
  • WooCommerce 8.2 or later, installed and active

Installation

Anticipo Pro needs WooCommerce, so install and activate WooCommerce first. The Pro plugin replaces the free edition. When you activate it, the free edition is switched off automatically and all of your existing pre-orders and settings are kept.

  1. Make sure WooCommerce is installed and active.

  2. Log in to your ProPluginsLab account and open My Account > Downloads. Download the Anticipo Pro zip file.

  3. In WordPress, go to Plugins > Add New > Upload Plugin.

  4. Choose the zip file you downloaded and click Install Now.

  5. Click Activate Plugin. If the free edition is active, it is switched off automatically and your data is kept.

  6. Go to WooCommerce > Pre-orders to open the plugin screens.

Quick start

  1. Review the store wide settings

    Go to WooCommerce > Pre-orders and open the Settings tab. Check Enable pre-orders is ticked, pick your Default billing (pay in full, pay on release or deposit) and adjust the Add to cart button text and Availability message if you want different wording. Click Save settings.

  2. Turn a product into a pre-order

    Edit the product you want to sell early. In the Product data box, open the Pre-order tab, tick Enable pre-orders and set the release date. Dates are entered in your store timezone. Click Update. The product now shows your pre-order button text, the availability message and a countdown to release.

  3. List upcoming products on a page (optional)

    Add [anticipo_preorder_products] to any page to show every product currently taking pre-orders, soonest release first.

  4. Watch pre-orders come in

    New pre-orders appear on the Pre-orders tab. Use the Release calendar tab to see what is due and the Reports tab to see value booked, collected and still to collect.

  5. Check that background jobs run

    Open the Status tab. Under Health checks, Action Scheduler should be available, because releases and reminders run in the background through it.

#Pre-orders list

Go to WooCommerce > Pre-orders. The first tab, Pre-orders, lists every pre-ordered line in your store.

The table shows Order, Product, Customer, Qty, Billing, Status, Release date, Value and Placed. You can sort by order, quantity, status, release date, value and date placed.

To narrow the list:

  1. Choose a status, a billing mode and a product from the three drop-downs (Every status, Every billing mode, Every product).
  2. Click Filter.
  3. To find a specific pre-order, type in the search box and click Search pre-orders.

You can release or cancel pre-orders by hand, one at a time or in bulk. Tick the rows you want, choose an action from Bulk actions and click Apply. Use Screen Options to change how the list is displayed.

The Pre-orders tab under WooCommerce > Pre-orders with status, billing mode and product filters above a table of pre-orders
Each row shows the billing mode and the pre-order status, for example Confirmed, waiting for release.

#Release calendar

The Release calendar tab shows what is coming up. Releases run automatically in the background, so this screen is for planning.

What is due to release groups open pre-orders by release day, with the number of Pre-orders, Units, Value and the amount still To collect.

Products with open pre-orders lists each product with its Release date, Open units and Allocation (units claimed against the maximum you set). The Actions column gives you two tools:

  • Release now: releases the product's pre-orders straight away, without waiting for the release date.
  • Shift days: enter a number of days in the box and click Shift days to move the release date. Shifting a date updates every open pre-order for that product and emails the affected customers in the background.
The Release calendar tab with a table of release days and a table of products with open pre-orders, Release now and Shift days buttons
The Allocation column shows how many units are claimed out of the product's limit.

#Reports

The Reports tab shows how your pre-orders are doing. Pick a period (Last 7 days, Last 30 days, Last 90 days or Last 12 months) and click Apply.

The summary cards show:

  • Pre-orders taken: lines placed in the period.
  • Units reserved, with the average per day.
  • Value booked: the full value of everything reserved.
  • Collected so far: deposits and upfront payments.
  • Still to collect: balances due on release day.
  • Customers: distinct pre-order customers.
  • Cancellation rate: worth watching after a date change.
  • Average line value: booked value per pre-ordered line.

Below the cards you find a Pre-orders per day chart of units reserved each day, Most pre-ordered products, Where the money sits (collected and outstanding amounts per billing mode), By status, and Commitment outstanding right now, a one-line summary of what you currently owe customers and what has not been collected yet.

Report figures are cached. You set how long under Settings > Advanced > Cache reports for this many minutes.

The Reports tab with summary cards, a pre-orders per day chart and tables for products, billing modes and statuses
Still to collect shows the balances you will collect on release day.

#Settings

The Settings tab holds the store wide rules. Every product can override the release date and wording on its own Pre-order tab. The settings are grouped in five boxes:

  • General: switch all pre-order features on or off, choose whether pre-orders can share a cart with in-stock items, and set the default billing and deposit.
  • Display: what shoppers see. Use {date} for the release date and {time} for the release time in any of the text fields.
  • Release workflow: order statuses before and after release, automatic release, batch size, when stock is reduced and when release reminders are sent.
  • Advanced: report caching, the My Account endpoint slug, the activity log and data removal.
  • Payments: how long customers have to pay a balance, what happens if they never pay, automatic charging of a saved card and customer self cancellation.

Click Save settings at the bottom after making changes. Turning off Enable pre-orders does not delete anything: existing pre-orders stay in the database and resume when you switch it back on. See the settings reference below for every field.

The Settings tab with the General, Display, Release workflow and Advanced boxes
Each setting has a short explanation underneath it.

#Status

The Status tab is the first place to look when something does not happen as expected.

Health checks reports on Action Scheduler, Database tables, Schema version, Overdue releases, Order storage and Translation plugin. A green dot means the check passed.

Background queue lists the scheduled jobs, when each one Runs at, and its Arguments. You will see jobs such as anticipo_po_release_product (one per product release), anticipo_po_send_reminders and anticipo_po_daily_maintenance.

Activity log lists everything the plugin has done, newest first, with When, Level, Order and Message. Use it when a customer asks what happened to their order. You change how much is recorded with Activity log detail on the Advanced settings.

The Status tab showing health checks, the background queue of scheduled jobs and the activity log
Overdue releases tells you at a glance whether anything is past its release date.

#Built-in documentation

The Documentation tab contains the plugin's own guide, organised in collapsible sections:

  • Set up your first pre-order in five minutes
  • Every setting explained
  • The Pre-order tab on a product
  • What happens on release day
  • The emails, and where to edit them
  • Running a multilingual store
  • What this plugin does to keep your store fast
  • If something looks wrong
  • Developer reference (hooks, helper functions and template overrides)

Click a heading to expand it.

The Documentation tab with the five minute setup guide expanded and other topics collapsed below
The setup guide explains what the customer sees once a product is on pre-order.

#The Pre-order tab on a product

You turn a product into a pre-order from the product itself. This works with simple, variable and external products.

  1. Go to Products and edit the product.
  2. In the Product data box, open the Pre-order tab.
  3. Tick Enable pre-orders and set the release date and time. Dates are entered in your store timezone and stored in UTC, so changing the site timezone later never moves a launch.
  4. Click Update.

On this tab you can also:

  • Take pre-orders with no announced date, then fill the date in later. Every waiting customer is emailed automatically.
  • Set a cut-off date so orders close before release.
  • Give the product its own button text, availability message and Badge text (for example "Coming soon") instead of the store wide wording.

Variations inherit the release date and rules from the parent product. The Pro edition also supports release dates per variation.

#Pre-order emails

Each pre-order email is a real WooCommerce email. You manage them under WooCommerce > Settings > Emails. The emails include pre-order confirmed, release date changed, pre-order released and pre-order cancelled for the customer, plus a new pre-order notice for the store.

  • Pre-order confirmed is sent to the customer as soon as their pre-order is paid for. It confirms what has been reserved, when it is expected and anything still to pay.
  • Pre-order date changed is sent when you change the release date on a product that already has pre-orders.

Each email has the usual WooCommerce fields plus a Message field: the text shown above the table of pre-ordered products. You can use these merge tags in it: {site_title} {site_url} {customer_name} {order_number} {order_date} {release_date} {product_list} {old_date} {account_url} {pay_url} {balance} {due_date} {days}.

The Email preview at the bottom shows how the email will look. Click Send a test email to send yourself a copy, then click Save changes. Emails come in HTML and plain text, and both can be overridden from your theme.

The Pre-order confirmed email settings under WooCommerce > Settings > Emails with a live email preview
The Message field lists the merge tags you can use.
The Pre-order date changed email settings with the default message and an email preview
Use {old_date} and {release_date} to tell customers exactly how the date moved.

Settings reference

WooCommerce > Pre-orders > Settings > General

SettingTypeDefaultWhat it does
Enable pre-orders checkbox On Turns every pre-order feature off without losing any data or settings. Existing pre-orders stay in the database and resume when you switch this back on.
Mixed carts select Allow pre-order and in-stock items together A pre-order holds the whole order until release day. Options: Allow pre-order and in-stock items together, Allow but warn the customer at checkout, Block: pre-orders must be bought on their own.
Default billing select Pay in full at checkout How customers pay when a product does not set its own rule. Options: Pay in full at checkout, Pay nothing now, pay on release (a payment link is sent on release day), Deposit now, balance on release.
Default deposit type select Percentage of the price Used when a product asks for a deposit but does not say what kind. Options: Percentage of the price, Fixed amount.
Default deposit value number 25 A percentage when the deposit type is percentage, otherwise an amount in your store currency.

WooCommerce > Pre-orders > Settings > Display

SettingTypeDefaultWhat it does
Add to cart button text text Pre-order now Shown instead of the usual Add to cart label on pre-order products.
Availability message text Ships on {date} Shown under the price on the product page. Supports {date} and {time}.
Message when the date is unknown text Release date to be announced Used on products where you ticked "date not announced yet".
Show a pre-order badge on product images checkbox On Shows a badge on the images of pre-order products.
Badge text text Pre-order The store wide badge wording. A product can set its own on its Pre-order tab.
Show the availability message in shop listings checkbox On Leave this off on very large catalogues if you want the absolute minimum work done per listing.
Show a countdown to release checkbox On A live countdown on the product page. Hidden automatically when no date is announced.
Show remaining pre-order allocation checkbox On Only appears on products that set a maximum number of pre-orders. Displays a progress bar such as "82 of 100 claimed".

WooCommerce > Pre-orders > Settings > Release workflow

SettingTypeDefaultWhat it does
Status for orders awaiting release select Pre-ordered Defaults to the Pre-ordered status this plugin adds, which keeps pre-orders out of your normal pick list.
Status once released select Processing Usually Processing, so released pre-orders join your normal fulfilment queue.
Release automatically on the availability date checkbox On Switch this off to review each launch yourself and press Release manually from the Pre-orders screen.
Orders per background batch number 25 Lower this on shared hosting. Higher values finish a launch faster but use more memory per background run.
Reduce stock on release rather than at checkout checkbox On On by default. The units do not exist yet, so reducing stock at checkout would make your inventory figures wrong for weeks.
Send release reminders this many days before text 7,1 Comma separated. For example 14,7,1 sends three reminders. Leave empty to send none.

WooCommerce > Pre-orders > Settings > Advanced

SettingTypeDefaultWhat it does
Cache reports for this many minutes number 15 Set to 0 to always recalculate. Only do that on small stores.
My Account endpoint slug text pre-orders The URL segment for the customer pre-orders page. Save your permalinks after changing this.
Activity log detail select Errors and normal activity How much the activity log records. Options: Off, Errors only, Errors and normal activity, Everything, including debug detail.
Delete log entries older than (days) number 90 Log entries older than this are removed.
Delete all pre-order data when the plugin is deleted checkbox Off Off by default. Deactivating never removes data. Only deleting the plugin with this box ticked does.

WooCommerce > Pre-orders > Settings > Payments

SettingTypeDefaultWhat it does
Days the customer has to pay the balance number 7 Counted from release day. The customer gets a final reminder one day before the deadline.
Cancel the pre-order if the balance is never paid checkbox Off Off by default. Leave it off if you would rather chase the customer yourself.
Try to charge the saved card automatically checkbox Off Only works when the gateway supports saved payment methods and the customer saved one at checkout. If the charge cannot be attempted or fails, the customer is emailed a payment link instead.
Let customers cancel their own pre-orders checkbox On Adds a Cancel button to the customer pre-orders page in My Account.
Stop self cancellation this many days before release number 2 So nobody cancels the morning a launch ships.

WooCommerce > Settings > Emails > Pre-order confirmed

SettingTypeDefaultWhat it does
Enable/Disable checkbox On Enable this email notification.
Subject text - The email subject. The field shows "Your pre-order is confirmed, order {order_number}" as a placeholder.
Email heading text - The heading at the top of the email. The field shows "Your pre-order is reserved" as a placeholder.
Message textarea - The text shown above the pre-order table. Available tags: {site_title} {site_url} {customer_name} {order_number} {order_date} {release_date} {product_list} {old_date} {account_url} {pay_url} {balance} {due_date} {days}
Additional content textarea Nothing else is needed from you right now. You can review this pre-order at any time from your account: {account_url} Text shown below the main email content.
Email type select HTML Options: Plain text, HTML, Multipart.
Cc(s) text - Extra addresses to copy on this email.
Bcc(s) text - Extra addresses to blind copy on this email.

WooCommerce > Settings > Emails > Pre-order date changed

SettingTypeDefaultWhat it does
Enable/Disable checkbox On Enable this email notification.
Subject text - The email subject. The field shows "New release date for your pre-order, order {order_number}" as a placeholder.
Email heading text - The heading at the top of the email. The field shows "Your release date has moved" as a placeholder.
Message textarea - The text shown above the pre-order table. Available tags: {site_title} {site_url} {customer_name} {order_number} {order_date} {release_date} {product_list} {old_date} {account_url} {pay_url} {balance} {due_date} {days}
Additional content textarea Sorry for the change, and thank you for your patience. You can review this pre-order here: {account_url} Text shown below the main email content.
Email type select HTML Options: Plain text, HTML, Multipart.
Cc(s) text - Extra addresses to copy on this email.
Bcc(s) text - Extra addresses to blind copy on this email.

Shortcodes

[anticipo_preorder_products]

Lists every product currently taking pre-orders as a normal shop grid, soonest release first. Products with no announced date are listed last.

[anticipo_preorder_products limit="12" columns="4"]
AttributeDefaultDescription
limit-How many products to show.
columns-How many columns the grid uses.
orderby-Sort order: `release_date` or `title`.
category-Product category slugs to limit the list to.
empty-The message shown when nothing is on pre-order.

On your site

Shoppers see pre-order products much like any other product, with a few additions:

  • The add to cart button uses your pre-order text, for example Pre-order now.
  • An availability message under the price, with the release date filled in, for example "Ships on" followed by the date. Products without an announced date show your unknown-date message instead.
  • A pre-order badge on the product image and in the cart. Each product can use its own badge wording.
  • A live countdown to release on the product page, when a date is announced.
  • A progress bar such as "82 of 100 claimed" on products with an allocation limit, when Show remaining pre-order allocation is on.

You can collect all upcoming products on one page with the [anticipo_preorder_products] shortcode, as shown below.

Customers also get a Pre-orders tab in My Account that lists everything they have reserved, its status and when it arrives. If self cancellation is enabled, they can cancel from there until the cut-off you set.

A shop page listing two pre-order products in a grid, each with a badge, a ships on date and a Pre-order now button
One product uses its own badge wording while the other shows the store wide Pre-order badge.

Frequently asked questions

Does Anticipo work with variable products?

Yes. Variations inherit the release date and rules from the parent product. Pro also supports release dates per variation.

Why is my stock not going down when someone pre-orders?

This is by design. Stock is reduced on release day, because the units do not exist yet. If you are pre-selling stock you already hold, turn off Reduce stock on release rather than at checkout under Settings > Release workflow.

How is the balance collected on deposit and pay on release orders?

On release day the balance is collected as a real, linked WooCommerce order with a secure payment link, so your gateway, refunds and reporting work normally. The customer has the number of days set in Days the customer has to pay the balance to pay. If you tick Try to charge the saved card automatically, the plugin tries the saved payment method first and emails a payment link if the charge cannot be taken. No card details are stored by the plugin.

Can the badge say something other than "Pre-order"?

Yes. Set the store wide wording in Badge text under Settings > Display, or give a single product its own wording in the Badge text field on its Pre-order tab.

Does it work with High Performance Order Storage and the block checkout?

Yes. Compatibility is declared for High Performance Order Storage and legacy post based storage, plus the Cart and Checkout blocks. The cart rules are enforced through the Store API.

Will this slow my shop down?

Pre-orders live in their own indexed database table, settings are read from objects WooCommerce has already loaded, and the plugin's CSS and JavaScript are not loaded on pages that have no pre-orders.

Is my data deleted if I remove the plugin?

Only if you ask for it. Deactivating never deletes anything. Deleting the plugin removes data only when Delete all pre-order data when the plugin is deleted is ticked under Settings > Advanced.

Does the plugin send data to an external service?

No. It makes no outbound HTTP requests and sends no data anywhere.

Troubleshooting

The release date passed and nothing happened.

Open WooCommerce > Pre-orders > Status. Health checks tells you whether Action Scheduler is running and Overdue releases shows anything past its date. Also check that Release automatically on the availability date is ticked under Settings > Release workflow. You can release by hand with Release now on the Release calendar tab or from the Pre-orders list. On a very low traffic site, pointing a real server cron at wp-cron.php makes scheduled jobs punctual. A nightly sweep also catches missed releases.

The Pre-orders tab in My Account returns a 404.

Go to Settings > Permalinks and click Save Changes without changing anything. This regenerates the rewrite rules. Do the same every time you change My Account endpoint slug under Settings > Advanced.

The pre-order button is not showing on a product.

Check that Enable pre-orders is ticked on the Settings tab, because it switches every pre-order feature off when unticked. Then edit the product and make sure Enable pre-orders is ticked on its Pre-order tab, and click Update.

A customer asks what happened to their order.

Open the Status tab and read the Activity log. It lists every action taken, with the order number and a message. If the log is empty or too thin, raise Activity log detail under Settings > Advanced. Entries older than Delete log entries older than (days) are removed.

Customers do not receive a pre-order email.

Go to WooCommerce > Settings > Emails, open the email (for example Pre-order confirmed) and make sure Enable this email notification is ticked. Click Send a test email in the Email preview to check delivery, then click Save changes.

Customers cannot add a pre-order and an in-stock product to the same cart.

Check Mixed carts under Settings > General. If it is set to Block: pre-orders must be bought on their own, change it to Allow pre-order and in-stock items together or Allow but warn the customer at checkout. Keep in mind that a pre-order holds the whole order until release day.