Do the same customers order the same products again and again?
WpDevArt Duplicate & Repeat Orders for WooCommerce turns any order into a reusable
order template and creates the next order from it in a few clicks: the right customer, the right products and quantities, at
today's prices, with a
stock check before anything is created.
Most "duplicate order" tools copy the old order row by row, including its old prices, taxes, payment details, invoice numbers and stock markers, and send emails nobody asked for. This plugin builds a brand-new order through WooCommerce's own order API instead: prices and taxes are calculated again for the customer's address, nothing from the old payment is copied, stock is not touched and no email is sent until you move the order on in WooCommerce.
➡
GET PREMIUM VERSION NOW!
GET SUPPORT
Free version features
- One-click Duplicate — Duplicate any order from the order screen, the order preview on the Orders list, WooCommerce's Order actions list or the bulk actions. The copy opens as a new Pending payment (or On hold) order, ready to review and send.
- Duplicate and edit — Check and change the lines before the order is created: quantities, products, variations, customer, notes.
- Unlimited order templates — Save any order as a template, from the order screen, the order preview or in bulk. Templates keep the products, the chosen variation attributes, the quantities, a default customer and notes.
- Order template library — Search by template name, customer, product name or SKU; sort by use, date or name; health badges show which templates are ready and which need attention (deleted product, missing variation, not enough stock). Trash and restore included.
- Order template editor — Add and remove products, change quantities and variations, set a default customer, a customer note and a private note.
- Create Order screen — Pick a template, choose the customer, adjust the lines and see live stock and price checks before the order is created.
- New order from template — A button next to WooCommerce's "Add order" on the Orders screen.
- Add from template — Add a template's products to an order you are editing, right next to WooCommerce's "Add product(s)", with a preview of what will be added.
- Today's prices or the original prices — Duplicates use today's prices by default; choose the original order's prices in the settings.
- Stock validation — Block new orders that would oversell, or allow them with a warning. Backorders and stock managed on the parent product are respected; quantity rules of other plugins are shown as warnings.
- Guest orders — Templates from guest orders keep the guest's billing and shipping address, so repeat orders reach the right person.
- Traceability — Every new order notes which template or order it came from, and the order screen links back to it.
- Choose where the buttons show — Hide Duplicate and Save as template for order statuses where they make no sense (for example Failed or Cancelled).
- Quiet by design — New orders are created without emails, payment or stock changes. WooCommerce does all of that as usual when staff move the order on.
- HPOS compatible — Works with WooCommerce's High-Performance Order Storage and with the legacy posts storage.
- Privacy tools — Personal data kept in templates is included in WordPress's personal data export and erase tools.
- Translation-ready and multisite-aware — Every text can be translated; settings are kept per site.
- Developer friendly — Public PHP function to create an order from a template, and filters and actions at every step.
Premium version features
- Customer template portal — Customers order from templates you pick for them, and from orders they saved as templates, in My Account.
- Reorder button — A "Reorder" button on the customer's past orders, with today's prices and stock checks.
- Reorder links in emails — Links that let guests and customers order the same products again from an order email.
- Repeat-order discount — A coupon of your choice, applied automatically (once per original order) when a customer reorders through an email link, and refused if its code is typed in by hand.
- Reorder reminders — Opt-in emails that remind customers to order again after a number of days you choose.
- Scheduled orders — Create orders from a template automatically every week, month or custom interval.
- Bulk creation — Create orders from one template for many customers at once.
- Update a template from an order — Replace a template's lines with the lines of a newer order.
- Template versions — See and restore earlier versions of a template.
- Price modes and agreed prices — The template's saved prices or today's prices, an optional percentage or fixed-amount discount on each product, and agreed prices for single products of a template, which always win.
- Advanced stock rules — Per template, lower quantities to what is in stock or leave out short lines; store-wide, also skip lines that cannot be ordered and treat backorders as short stock.
- Global product replace — Replace a discontinued product in every template at once.
- Repeat-order guard — Warn before creating the same order for the same customer twice in a short time.
- Advanced order options — Shipping method, payment method, coupon and order status per template.
- B2B quick orders — Customers can quickly place an order through the My Account page.
- CSV import and export — Move templates between stores or edit them in a spreadsheet.
- Staff permissions — Decide which roles may use, create or manage templates.
- Usage reports — See which templates are used most and how much they sell.
- Categories and filters — Organise large template libraries.
- Combine templates — Merge several templates into one order.
- Smart suggestions — See the products a customer buys regularly, with their usual quantities, and start a new template from them.
- REST API — Manage templates and create orders from them from other systems.
➡
GET PREMIUM VERSION NOW!
https://www.youtube.com/watch?v=-j3OPjZYN2U
Who is it for?
- B2B and wholesale stores whose customers order the same assortment every week or month.
- Phone and email orders: staff create a customer's usual order in seconds instead of adding every product again.
- Recurring purchases without subscriptions: office supplies, food service, spare parts, consumables.
- Corrected or lost orders: duplicate a failed or cancelled order and send the customer a fresh payment link.
B2B Quick Order Form
Buyers who know what they want can order by SKU instead of browsing. On the Premium Quick order page in My Account, or on any page with a shortcode, they type or scan SKUs and barcodes, search by name, paste a list from Excel or upload a CSV file. This bulk order form checks every line for stock, quantity rules and product options, then adds all ready lines to the cart in one click.
Scheduled and Recurring Orders
With Premium, set up standing orders once and let them run: a fresh order from a template every few days, weekly on the days you pick or monthly on a chosen day, for one customer or a list of customers. It is not a subscription, and nothing is charged automatically. Each order is created unpaid and can be emailed to the customer with a payment link. Pause, skip the next run or run it now when plans change.
One-Click Reorder for Customers
By default, WooCommerce shows its "Order again" button only to logged-in customers, on a completed order's page. Premium adds a "Reorder" button to My Account → Orders and to each order's page, for orders in the statuses you choose, so customers can buy again from previous orders. A button in the order emails you choose fills the cart with the same products, for guests too, and never logs anyone in.
Reorder Reminder Emails
Coffee, filters, ink and cleaning supplies run out, and a timely reminder can bring in repeat purchases. With Premium, customers who opt in at checkout or in My Account get a replenishment email a set number of days after an order is completed (the days can differ per product), with an "Order again" button. Products already bought again or no longer available are left out, and nobody gets more than one a week.
Requisition Lists for Repeat Buyers
B2B buyers keep requisition lists of frequently purchased items. With Premium, they find them in My Account → Order templates: the templates you share with them, optionally at the template's prices, next to lists they save from their own orders. Buyers change quantities and add a whole list to the cart, or load it on the Quick order page to add more.
Phone and Manual Orders for Sales Reps
Take repeat phone orders without building them line by line. When a customer calls or emails, open Create Order in the backend, choose the customer and their usual template, and change only what is different this time. The manual order is created on behalf of the customer as a normal WooCommerce order. Administrators and shop managers can do it out of the box; Premium can give the same right to other staff roles, such as a sales rep role with access to WooCommerce orders.
Clone or Copy an Existing Order
Copying an order by hand means re-entering every product, variation and quantity. The Duplicate button clones an order in one click, and the Duplicate bulk action handles up to 50 orders at once, each becoming its own new order. It suits a customer who wants the same order again; when a different customer needs the same products, use Duplicate and edit.
Bulk Create Orders for Many Customers
Need the same order for a whole group? With Premium, pick a template, add customers by search, by user role (for example all wholesale customers) or by pasting email addresses, and create one order for each, up to 500 at a time. A preview checks stock across the batch first, orders are created in the background with live progress, and a CSV report lists the results.
Developer friendly
- Function:
wda_dro_create_order_from_template( $template_id, $args ) returns the new WC_Order or a WP_Error.
- Filters:
wda_dro_create_order_args, wda_dro_pre_create_order, wda_dro_order_line_total, wda_dro_line_unit_cost, wda_dro_template_args, wda_dro_lines_from_order, wda_dro_template_from_order, wda_dro_validate_lines, wda_dro_order_shows_buttons, wda_dro_capability, wda_dro_default_settings, wda_dro_settings_sections, wda_dro_settings_fields, wda_dro_library_per_page, wda_dro_create_form_state, wda_dro_create_form_args, wda_dro_check_lines_response, wda_dro_template_editor_error, wda_dro_lines_price_note
- Actions:
wda_dro_loaded, wda_dro_order_items_added, wda_dro_order_created, wda_dro_template_saved, wda_dro_template_items_added, wda_dro_settings_tab_content, wda_dro_template_editor_fields, wda_dro_template_fields_saved, wda_dro_template_duplicated, wda_dro_create_order_fields, wda_dro_line_row_fields, wda_dro_admin_enqueue, wda_dro_install, wda_dro_uninstall
Have questions, ideas or suggestions?
Share them with us.