Auction Engine for WooCommerce

Auction Engine adds auction products, bidding, winner checkout, auction fees, watchlists, customer auction history, lifecycle emails, and auction management tools to WooCommerce.

What Auction Engine provides

↑ Back to top
  • A dedicated `Auction` product type in WooCommerce.
  • Six auction modes: Normal, Reverse, Sealed, Proxy, Unique, and Reverse Unique.
  • Starting bids, reserve prices, Buy Now, estimates, item condition, and bid increments.
  • Optional registration fees, bid fees, buyer’s premium, role restrictions, and payment deadlines.
  • Anti-sniping extensions for bids placed near the auction end.
  • Watchlists and a My Account > Auctions dashboard.
  • Winner checkout, Pay All Won Auctions, Buy Now checkout, and optional saved-token auto-charge.
  • Relisting for failed auctions.
  • WooCommerce email notifications and payment reminders.
  • An admin auction list, CSV exports, and cron health monitoring.
  • Compatibility declarations for High-Performance Order Storage (HPOS) and Cart/Checkout Blocks.

Requirements

↑ Back to top
RequirementMinimum version
WordPress6.5+
WooCommerce8.2+
PHP8.1+
Required pluginWooCommerce

Installation

↑ Back to top

To start using a product from WooCommerce.com, you can use the โ€œAdd to storeโ€ functionality on the order confirmation page or the My subscriptions section in your account.

  1. Navigate to My subscriptions.
  2. Find the Add to store button next to the product youโ€™re planning to install.
  3. Follow the instructions on the screen, and the product will be automatically added to your store.

Alternative options and more information at:
Managing WooCommerce.com subscriptions.

Create your first auction

↑ Back to top

1. Create the product

↑ Back to top
  1. Go to Products > Add New.
  2. Enter the product title, description, images, and catalog settings.
  3. In Product data, select Auction product.
  1. Configure the auction.
  2. Open the WooCommerce tab > Auction.

2. Configure the auction

↑ Back to top

Auction schedule

FieldDescription
Auction typeSelect the bidding model. See Auction modes.
Start datetimeThe time at which bidding becomes available.
End datetimeThe scheduled auction closing time. It must be later than the start time.

The date and time are entered in the site timezone and displayed using the timezone and date format selected in the plugin settings.

Pricing

FieldDescription
Starting bidThe opening bid. It must be zero or higher.
Reserve priceOptional minimum acceptable result. The reserve amount is not displayed to customers.
Buy Now priceOptional price that lets a logged-in customer end the auction and proceed directly to checkout.
Estimate priceOptional guide price shown for information only. It does not validate bids.
Item conditionNew, Used, Refurbished, or For parts.

For Normal, Sealed, Proxy, and Unique auctions, the reserve is met when the winning amount is at least the reserve price. For Reverse and Reverse Unique auctions, the winning amount must be at or below the reserve price.

Bidding rules

  • Fixed amount uses the configured increment for every bid.
  • Variable ladder uses the first matching from,increment rule from the saved list. For example: 100,5 500,10 1000,25
  • Extend on late bid adds time when a bid is placed within the configured late-bid window.

Access and fees

  • Require registration requires customers to register before bidding.
  • Registration fee creates a WooCommerce fee order before registration is confirmed.
  • Bid fee requires a paid bid-fee order before bidding is allowed.
  • Buyer’s premium adds either a fixed amount or a percentage to the winner’s checkout.
  • Payment deadline hours controls how long the winner has to pay.

Advanced settings

  • Variable increment rules.
  • Allowed user roles. An empty selection allows all logged-in users.
  • Automatic relisting for failed auctions.
  • Relist duration in hours.

Save and publish the product when the configuration is complete.

Auction modes

↑ Back to top

In a Proxy auction, the winner pays the final public current bid, not the private maximum amount. If two maximum amounts are equal, the earlier bid remains ahead.

Customer bidding workflow

↑ Back to top
  1. The customer opens an active auction and signs in.
  2. If registration is required, the customer registers or pays the registration fee.
  3. If a bid fee is configured, the customer pays it before placing a bid.
  4. The customer submits a bid. The server validates the auction status, user role, registration, fees, amount, increment, reserve rules, and Buy Now limit.
  5. The auction page refreshes its status, current bid, countdown, and bid history through AJAX polling.
  6. Customers can add or remove the auction from their watchlist.

Auction products cannot be added to the normal WooCommerce cart. They can only be purchased through Buy Now or the winner payment flow.

Auction lifecycle

↑ Back to top
StatusMeaning
scheduledThe start time is in the future.
activeCustomers can bid.
endedThe end time has passed and the result is being finalized.
awaiting_paymentA winner has been resolved and a payment is due.
paidThe winner’s WooCommerce order has reached a paid-compatible status.
failedThere is no eligible winner, the reserve was not met, or payment expired.
relistedThe auction is being prepared for another run.

The update cron starts scheduled auctions, ends expired auctions, resolves winners, and sends the corresponding notifications.

Winner payment and Buy Now

↑ Back to top

Winner payment

↑ Back to top

When an auction ends with an eligible winner:

  1. The auction changes to awaiting_payment.
  2. The winner receives an Auction Won email.
  3. The winner can select Pay Now from the auction page or My Account > Auctions.
  4. Auction Engine creates a WooCommerce order using the winning amount.
  5. Any buyer’s premium is added as a WooCommerce fee item.
  6. The customer is redirected to the WooCommerce payment page.
  7. When the order is paid, the auction changes to paid.

My Account > Auctions also provides Pay All Won Auctions, which creates one order for all unpaid won auctions belonging to the customer.

Buy Now

↑ Back to top

Buy Now is available while the auction is active and a Buy Now price is configured. Selecting Buy Now:

  • Ends further bidding.
  • Records the Buy Now purchase.
  • Creates a WooCommerce order.
  • Redirects the customer to payment.

Payment expiry

↑ Back to top

If the winner does not pay before the deadline, Auction Engine can either promote the next eligible bidder or mark the auction as failed, depending on the Second-highest fallback setting.

Administrators can cancel an auction payment order. Customers cannot cancel auction payment orders through the standard My Account cancellation flow.

Admin interface

↑ Back to top

WooCommerce > Auctions

↑ Back to top

The auction list includes:

  • Product, auction type, status, current bid, reserve state, leader, end time, and bid count.
  • Filters for product category, auction type, auction status, and reserve state.
  • Search by product title.
  • Bulk actions to publish, move to draft, end, relist, mark failed, or move auctions to the Trash.
  • A shortcut to create a new auction product.
  • A sample auction action for testing.

WooCommerce > Settings > Auctions

↑ Back to top

The settings are divided into:

  • Settings โ€” enable auctions, sandbox mode, polling, payment deadline, auto-charge, and second-highest fallback.
  • Fees โ€” global registration fee, bid fee mode, bid fee, and buyer’s premium defaults.
  • Notifications โ€” lifecycle emails, ending-soon reminders, payment reminders, and cron alerts.
  • Advanced โ€” uninstall data retention, CSV exports, and system health.

WooCommerce > Auctions > Advanced

↑ Back to top

The Advanced screen provides:

  • Bid log CSV export, up to 5,000 rows.
  • Fee log CSV export, up to 5,000 rows.
  • Last-run and status information for each auction cron job.
  • A warning when the auction update cron is overdue.

Cron and scheduled jobs

↑ Back to top

Auction Engine registers these scheduled jobs:

JobDefault schedulePurpose
Update auctionsEvery minuteStarts and ends auctions and resolves winners.
Relist auctionsEvery five minutesRelists eligible failed auctions.
Ending soonEvery five minutesSends reminders to bidders and watchlist users.
Payment reminderEvery five minutesReminds winners and handles expired payment deadlines.

If WordPress cron is disabled, configure a server scheduler to request these URLs:

https://example.com/?aewc_cron=update
https://example.com/?aewc_cron=relist
https://example.com/?aewc_cron=ending_soon
https://example.com/?aewc_cron=payment_reminder

Use the real site URL and configure the requests through the site’s firewall or hosting scheduler as appropriate. Review WooCommerce > Auctions > Advanced after setup to confirm that jobs are completing.

Emails and notifications

↑ Back to top

Auction Engine registers these WooCommerce email notifications:

  • Auction outbid
  • Auction ending soon
  • Auction won
  • Auction lost
  • Auction payment reminder
  • Auction payment received
  • Auction failed
  • Auction registration confirmed
  • Auction started
  • Auction Buy Now sold
  • Auction relisted
  • Auction cron failure alert

Enable or disable auction email delivery under WooCommerce > Settings > Auctions > Notifications. Individual email templates remain available through WooCommerce’s email settings, where subjects, headings, recipients, and email status can be managed.

Customer pages and shortcodes

↑ Back to top

My Account > Auctions

↑ Back to top

The customer dashboard shows:

  • Won auctions and payment links.
  • Lost auctions.
  • Watchlist auctions.
  • Payment deadlines and auction status.

Supported shortcodes

↑ Back to top
[aewc_auctions limit="12" ids="123,456"]

[aewc_ending_soon limit=”12″]

[aewc_future limit=”12″]

[aewc_past limit=”12″]

[aewc_featured limit=”12″]

[aewc_my_auctions]

[aewc_watchlist]

[aewc_part template=”bid-form” id=”123″]

[aewc_part template=”history” id=”123″]

limit controls the number of auction products displayed. ids optionally limits the list to comma-separated product IDs.

The aewc_part shortcode currently supports bid-form and history. The auction list output includes the auction card, image, title, and bid box. In version 1.0.0, aewc_ending_soon, aewc_future, aewc_past, and aewc_featured use the same auction-list renderer as aewc_auctions; they do not apply additional status or featured filtering. aewc_watchlist uses the same customer dashboard renderer as aewc_my_auctions.

Data, compatibility, and uninstall behavior

↑ Back to top
  • Bids, auction snapshots, registrations, watchlists, fee logs, and cron logs are stored in dedicated tables using the WordPress table prefix.
  • WooCommerce CRUD APIs are used for auction orders and fee orders.
  • IP addresses and user-agent values are stored as hashes rather than raw values.
  • Auction products are identified by _aewc_* product metadata.
  • Delete data on uninstall is disabled by default.
  • If Delete data on uninstall is enabled, Auction Engine removes its custom tables and plugin options when uninstalled. Product metadata is not automatically removed.

Security and access rules

↑ Back to top
  • Bidding, registration, watchlist actions, and payments require a logged-in customer.
  • AJAX requests use WordPress nonce verification.
  • Admin actions require the manage_woocommerce capability and nonce verification.
  • Bid amounts are validated on the server; browser-side minimum and maximum values are not trusted.
  • Auction products are blocked from the standard cart flow.

Developer hooks

↑ Back to top

The following hooks are available in the current implementation:

Actions

↑ Back to top
do_action( 'aewc_before_place_bid', $auction_id, $user_id, $amount );
do_action( 'aewc_after_place_bid', $bid_id, $auction_id, $user_id );
do_action( 'aewc_auction_status_changed', $auction_id, $old_status, $new_status );
do_action( 'aewc_winner_resolved', $auction_id, $winner_user_id, $bid_id );
do_action( 'aewc_payment_order_created', $order_id, $auction_id, $user_id );

Filters

↑ Back to top
apply_filters( 'aewc_validate_bid', $result, $auction_id, $user_id, $payload );
apply_filters( 'aewc_bid_response', $response, $auction_id, $bid_id );
apply_filters( 'aewc_item_conditions', $conditions );

Troubleshooting

↑ Back to top

Known errors or issues and how to solve them.

FAQs

↑ Back to top

Help customers by answering commonly asked questions.

The auction is not visible

  • Confirm that:
    The product type is Auction product.
    The product is published.
    The auction feature is enabled.
    The start and end dates are valid.
    The customer is viewing the product through a WooCommerce page.

Bidding is unavailable

  • Check that the auction is active, the customer is logged in, any required registration is complete, the bid fee has been paid, and the customer’s role is allowed.

The auction remains active after its end time

  • Open WooCommerce > Auctions > Advanced and review the Auction lifecycle cron status. If the job is overdue, check WP-Cron or configure the server cron URLs above.

The winner cannot see Pay Now

  • The auction must be in awaiting_payment, the current customer must be the stored winner, and the auction update must have completed successfully.

Dates appear incorrect

  • Check the WordPress site timezone and the Auction Engine timezone setting. Auction dates are stored and displayed using UTC/site-timezone conversions, so the site timezone should be configured before creating production auctions.

Related Products

WooCommerce Subscriptions is a WooCommerce extension that lets customers subscribe to your products or...

Offer add-ons like gift wrapping, special messages or other special options for your products.

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.