Bidra Auctions for WooCommerce is a free WooCommerce auction plugin that adds a complete auction product type to your store. Create a listing, set a start price and an end time, and let your customers bid against each other. When the clock runs out the plugin picks the winner, emails them a payment link, and hands the order over to your normal WooCommerce checkout.
It is built the WooCommerce way: auctions are real products, so your theme, payment gateways, shipping rules, taxes, coupons and reports keep working exactly as they do today. It works with classic themes and block themes, the Cart and Checkout blocks, and High-Performance Order Storage (HPOS).
Use it for online auctions, charity and fundraising auctions, and for selling collectibles, art, antiques, cars, equipment, livestock, domain names or liquidation stock — anything where buyers should name the price.
🚀 Upgrade to Pro | 💻 Live Demo Site | 📄 Plugin Documentation | 🎧 Support
Why store owners choose Bidra Auctions
- Free and complete — a small store can run real auctions end to end without paying for anything.
- Bidding that feels like eBay — quick-bid buttons, a bid confirmation step, live updates and a clear “You are winning” / “You have been outbid” status.
- Runs itself — auctions open, close, pick the winner and send the emails on their own.
- Light and private — no bundled libraries, no external requests, no tracking.
Everything you need to run a WooCommerce auction
- Auction product type — a first-class WooCommerce product type, right next to Simple and Variable.
- Start price and bid increment — decide where bidding opens and how much each new bid must add.
- Reserve price — a hidden minimum. Bidders see whether the reserve is met, never the amount. An auction that ends below its reserve does not sell.
- Buy It Now — let a buyer skip the auction and purchase immediately, and optionally withdraw the option once bidding starts.
- Scheduled start and end times — line up auctions in advance and let them open and close on their own.
- Automatic winner selection — when an auction ends, the highest bidder wins and is emailed a link to pay.
- Winner-only checkout — nobody but the winning bidder can buy a finished auction.
- End now, extend, restart — close an auction early, add time to it, or run it again from the product list. A restarted auction keeps its earlier bids as an archive.
- Mark as sold — record a sale made outside the store.
A bidding experience customers understand
- Live countdown timer on the auction page and, optionally, throughout your shop. It turns red when the auction is about to end.
- Live bid updates — the current bid, minimum bid, bid count and the bidder’s own status refresh without a page reload.
- Quick-bid buttons — one-click amounts under the bid field, in the shopper’s currency.
- Bid confirmation — “Confirm your bid of $120?” inside the form, so a mistyped amount never becomes a bid.
- Bid status badge — “You are winning”, “You have been outbid”, “You won” or “Not won” on the auction page, in the shop and in My Account.
- Badges in product lists — Live, Starts soon, Ending soon, Ended, Sold, No reserve and Reserve met, each switchable, with colours you can change in one line of CSS.
- Local time and Add to calendar — the end time in the visitor’s own timezone and an .ics reminder.
- Auction terms — an optional “I agree to the auction terms” checkbox before a bidder’s first bid, with the consent date stored.
- Bid history tab with every bid, the leading bid highlighted, and optional name masking for privacy.
- Watchlist — customers save the auctions they care about; optionally show “12 people are watching this auction”.
- My Account → Auctions with Active bids, Won (Pay now / Paid), Watchlist and Lost tabs.
- Accessible — status changes are announced to screen readers, the bid form works from the keyboard, and reduced-motion preferences are respected.
Blocks, patterns and shortcodes
Seven blocks (search for “auction” in the block inserter), each with a live preview in the editor:
- Auction grid — live, ending soon, upcoming or finished auctions, with columns, limit and category.
- Auction countdown and Auction bid form — for one auction, or for the auction being viewed in a single product template.
- Recent bids, My auctions, Auction watchlist and Auction status filter.
Three block patterns: Auction landing page, Ending soon strip and Upcoming auctions.
The single auction page works inside the WooCommerce block templates of block themes such as Twenty Twenty-Five, and in classic themes such as Storefront.
Prefer shortcodes? Drop these into any page:
[bafw_auctions] — an auction grid. Accepts limit, columns, orderby, order, status and category.
[bafw_ending_soon_auctions], [bafw_future_auctions], [bafw_finished_auctions]
[bafw_my_auctions], [bafw_watchlist], [bafw_recent_bids]
[bafw_auction_status_filter] — Live / Upcoming / Ended links. Shop and category pages also accept ?auction_status=live, upcoming or ended.
Built-in email notifications
Every email uses the native WooCommerce email system, so it inherits your branding and can be customised or disabled under WooCommerce → Settings → Emails.
- New bid placed (to you, and to the vendor on a marketplace)
- You have been outbid (to the previous highest bidder)
- You won the auction (to the winner, with a payment link)
- Auction finished (to you)
- Auction did not sell (to you)
Store tools
- Setup wizard — creates the Auctions page, sets sensible defaults and can add a sample auction. Opens once on a new install; skippable.
- WooCommerce → Auctions with Bids, Winners and Settings tabs: a searchable table of every bid, and who won what, for how much, and whether they have paid.
- Dashboard widget — live auctions, auctions ending within 24 hours and wins awaiting payment.
- CSV import and export — the auction fields are part of the WooCommerce product importer and exporter, so you can list auctions in bulk from a spreadsheet.
- Duplicate an auction and get a clean copy: no bids, no winner, dates moved forward.
- Google-friendly structured data — the current bid as the price, the end date as “price valid until” and the right availability.
- Privacy tools — bids, watchlists and terms consent are part of the WordPress personal data export and erasure, with suggested privacy policy text.
- Site Health checks — warns you when scheduled events, the timezone or a page cache could affect your auctions.
- WP-CLI —
wp bafw auctions list|close|restart and wp bafw bids list|delete.
Works with the plugins you already use
- Dokan and WCFM Marketplace — auctions owned by a vendor work end to end: bids, vendor emails, checkout and commission.
- CURCY – Multi Currency for WooCommerce — shoppers see prices and bid in their own currency; every bid is stored in your base currency, so everyone competes on the same ledger.
- WooCommerce blocks, HPOS, taxes, coupons, shipping zones and every payment gateway.
Bidra Auctions Pro — for auction houses and marketplaces
The free plugin is a complete auction system. Bidra Auctions Pro adds the automation, auction types and auction-house tools that larger sellers ask for:
- Proxy (automatic) bidding — bidders enter their maximum and the store bids for them, like eBay.
- More auction types — sealed-bid (blind) auctions, reverse auctions (the lowest bid wins) and Dutch auctions (the price drops until someone buys).
- Anti-sniping — bids in the final minutes extend the auction.
- Auction events — timed sales with numbered lots, staggered closing, a catalog page, a printable catalog, event registration and results with CSV export.
- Buyer’s premium — a percentage or fixed fee added to the winning bid at checkout, per store, event or auction.
- Combined checkout and invoices — “Pay for all won auctions” in one order, and one invoice per bidder.
- Bidder registration and approval, bidding (credit) limits and bidder (paddle) numbers.
- Charity tools — fundraising goal with a progress bar, fair market value and receipt text in the winner’s email.
- Pickup for won lots — local pickup only, pickup window and instructions.
- Smart increments (percentage and tiered), bid retraction and bidder rules (block lists, account age, bid limits).
- Automatic relisting, payment deadlines, second-chance offers and payment reminders.
- Vendor auctions — Dokan and WCFM vendors create and manage their own auctions.
- Extra emails (closing soon, payment reminder, reserve not met, relisted, bought now), reports with CSV export and a REST API.
See everything in Pro →
Developer friendly
- Templates load through
wc_get_template(), so your theme can override any of them in yourtheme/woocommerce/.
- Documented actions and filters around bidding, auction lifecycle and display — see the Developer Documentation section below.
- HPOS (High-Performance Order Storage) and Cart & Checkout Blocks compatible.
- No bundled third-party libraries, no external requests and no tracking of any kind.
Perfect for
- Charity, school and nonprofit fundraising auctions
- Collectibles, coins, art, antiques and memorabilia dealers
- Car, equipment, machinery and livestock sales
- Estate sales, liquidation and clearance stores
- Multivendor marketplaces built with Dokan or WCFM
- Anyone who wants buyers to name the price
Privacy Policy
Bidra Auctions for WooCommerce stores the following data on your own server, and never transmits it anywhere:
- Bids — the auction, the bidding user’s ID, the bid amount and the time it was placed, stored in the
bafw_bids database table.
- Watchlists — the IDs of the users watching each auction, stored as product meta.
- Auction outcomes — the winning bidder’s user ID and the linked order, stored as product meta.
- Auction terms consent — when you use the auction terms option, the date a user accepted them, stored as user meta.
The plugin makes no external HTTP requests, loads no remote assets, sets no cookies and includes no analytics or tracking of any kind. Bid data is retained until you delete the bid, delete the auction, or uninstall the plugin with the “Remove data on uninstall” setting enabled.
Developer Documentation
Constants
BAFW_VERSION, `BAFW_FILE`, `BAFW_PATH`, `BAFW_URL`, `BAFW_ASSETS_PATH`, `BAFW_ASSETS_URL`.
Helper functions
bafw_get_auction( $product ) — returns the AuctionProduct object, or false when the product is not an auction.
bafw_is_auction( $product ) — whether a product is an auction.
bafw_get_bidder_name( $user_id ) — the bidder name, masked when the setting is enabled.
bafw_get_max_bid_amount() — the configured single-bid ceiling.
bafw_get_account_auctions_url( $view ) — URL of a My Account auctions view.
bafw_local_to_timestamp( $date ) — convert a stored auction or bid date (site timezone) into a Unix timestamp.
bafw_format_date( $date ), bafw_format_duration( $seconds ) — display helpers.
bafw_get_template( $name, $args ), bafw_get_template_html( $name, $args ) — load a plugin template.
Actions
bafw_loaded — after the plugin has instantiated its classes.
bafw_installed — after installation or an upgrade routine completes.
bafw_before_place_bid — ( $auction, $amount, $user_id ) before a validated bid is stored.
bafw_bid_placed — ( $bid_id, $auction, $amount, $user_id ) after a bid is recorded.
bafw_bidder_outbid — ( $previous_bidder, $auction, $amount ) when a bidder is outbid.
bafw_bid_inserted — ( $bid_id, $data ) after a bid row is written.
bafw_bid_deleted — ( $bid_id, $bid ) after a bid row is removed.
bafw_auction_recalculated — ( $auction ) after an auction is rebuilt from its bids.
bafw_auction_started — ( $auction ) when bidding opens.
bafw_auction_closed — ( $auction, $winner_id, $fail_reason ) when an auction closes.
bafw_auction_won — ( $auction, $winner_id ) when an auction closes with a winner.
bafw_auction_failed — ( $auction, $fail_reason ) when an auction closes unsold.
bafw_auction_paid_state_changed — ( $auction, $paid, $order_id ).
bafw_watchlist_toggled — ( $auction_id, $user_id, $watching ).
bafw_before_bid_form / bafw_after_bid_form — ( $auction ) around the bid form.
bafw_product_data_panel — ( $auction ) at the end of the admin auction panel.
bafw_after_settings_fields — at the end of the settings form.
bafw_settings_saved — after the settings are saved.
Filters
bafw_validate_bid — ( $result, $auction, $amount, $user_id ) return a WP_Error to reject a bid.
bafw_minimum_bid — ( $minimum, $auction ) the lowest acceptable next bid.
bafw_bid_increment — ( $increment, $auction ).
bafw_max_bid_amount — ( $amount ) the single-bid ceiling.
bafw_can_bid_on_own_auction — ( false, $auction, $user_id ) allow sellers to bid on their own listings.
bafw_is_purchasable — ( $purchasable, $auction ).
bafw_is_buy_now_available — ( $available, $auction ).
bafw_cart_item_price — ( $price, $auction ).
bafw_price_html — ( $price_html, $auction ).
bafw_add_to_cart_text / bafw_add_to_cart_url — ( $value, $auction ).
bafw_bidder_name — ( $name, $user_id ).
bafw_item_conditions, bafw_auction_statuses, bafw_account_auction_views — the built-in option lists.
bafw_history_limit — ( 25 ) how many bids the history tab lists.
bafw_shortcode_query_args — ( $args, $atts ).
bafw_ajax_auction_data — ( $auctions, $auction_ids ) the live refresh payload.
bafw_auctions_per_cron_run — ( 50 ) how many auctions each cron run processes.
bafw_admin_tabs, bafw_screen_ids — extend the admin screens.
Templates
Copy any file from the plugin’s templates/ directory into yourtheme/woocommerce/ to override it, keeping the same relative path. For example, templates/single-product/auction-bid-form.php becomes yourtheme/woocommerce/single-product/auction-bid-form.php.
Support & Feedback
Found a bug or have an idea? Open a thread in the support forum or contact us directly.
Credits
Built and maintained by BeautifulPlugins.