Auctions for WooCommerceAuctions for WooCommerce
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Onboarding Tour
  • Admin Guide

    • Admin Overview
    • Dashboard
    • All Auctions
    • Add / Edit Auction
    • Bids
    • Reports
    • Events
    • Wallet
    • Disputes
    • Blocked Users
    • Fraud Detection
    • Tools (Import / Export)
    • Settings
    • Design Studio
    • Pending Review
    • Audit Log
  • Auction Mechanics

    • Auction Types
    • Bidding Engine
    • Anti-Sniping
    • Bid Increments
    • Reserve & Buy Now
    • Auto-Relist
    • Watchlist
  • Customer Experience

    • Customer Overview
    • My Auctions
    • My Wallet
    • Withdrawal
    • Single Auction Page
    • Notifications
  • Wallet & Payments

    • Wallet System
    • Auto-Charge
    • Stripe Connect
    • Monetization Fees
  • Multi-Vendor & Integrations

    • Multi-Vendor Compatibility
    • Twilio SMS
    • Firebase Push
    • Two-Factor Auth
    • Captcha
    • Social Login
    • Subscription Gate
    • Elementor & Gutenberg
  • Premium Features

    • Smart Features
    • Psychology Triggers
    • Gamification
    • Fraud Detection
    • Compliance
    • Social Sharing
    • Email Notifications
  • Developer

    • REST API
    • Hooks & Filters
    • JS Events
    • Database Schema
    • Shortcodes
    • Options Reference
    • WP-CLI
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
    • Changelog
Support
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Onboarding Tour
  • Admin Guide

    • Admin Overview
    • Dashboard
    • All Auctions
    • Add / Edit Auction
    • Bids
    • Reports
    • Events
    • Wallet
    • Disputes
    • Blocked Users
    • Fraud Detection
    • Tools (Import / Export)
    • Settings
    • Design Studio
    • Pending Review
    • Audit Log
  • Auction Mechanics

    • Auction Types
    • Bidding Engine
    • Anti-Sniping
    • Bid Increments
    • Reserve & Buy Now
    • Auto-Relist
    • Watchlist
  • Customer Experience

    • Customer Overview
    • My Auctions
    • My Wallet
    • Withdrawal
    • Single Auction Page
    • Notifications
  • Wallet & Payments

    • Wallet System
    • Auto-Charge
    • Stripe Connect
    • Monetization Fees
  • Multi-Vendor & Integrations

    • Multi-Vendor Compatibility
    • Twilio SMS
    • Firebase Push
    • Two-Factor Auth
    • Captcha
    • Social Login
    • Subscription Gate
    • Elementor & Gutenberg
  • Premium Features

    • Smart Features
    • Psychology Triggers
    • Gamification
    • Fraud Detection
    • Compliance
    • Social Sharing
    • Email Notifications
  • Developer

    • REST API
    • Hooks & Filters
    • JS Events
    • Database Schema
    • Shortcodes
    • Options Reference
    • WP-CLI
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
    • Changelog
Support
  • Getting Started

    • Introduction
    • Quick Start
    • Feature Catalog
    • Installation
    • First-Time Setup
    • Onboarding Tour
  • Admin Guide

    • Admin Overview
    • Dashboard
    • All Auctions
    • Add / Edit Auction
    • Bids
    • Reports
    • Events
    • Wallet (Admin)
    • Disputes
    • Blocked Users
    • Fraud Detection
    • Tools
    • Settings
    • Design Studio
    • Pending Review
    • Audit Log
  • Auction Mechanics

    • Auction Types
    • Bidding Engine
    • Anti-Sniping (Soft Close)
    • Bid Increments
    • Reserve & Buy Now
    • Auto-Relist
    • Watchlist
  • Customer Experience

    • Customer Experience Overview
    • My Auctions
    • My Wallet
    • Withdrawal
    • Single Auction Page
    • Customer Notifications
  • Wallet & Payments

    • Wallet System
    • Wallet Auto-Charge
    • Stripe Connect
    • Monetization
  • Multi-Vendor & Integrations

    • Multi-Vendor Compatibility
    • Twilio SMS
    • Firebase (Push Notifications)
    • Two-Factor Authentication
    • Captcha
    • Social Login
    • Subscription Gate
    • Elementor & Gutenberg
  • Premium Features

    • Smart Features
    • Psychology Triggers
    • Gamification
    • Fraud Detection
    • Compliance
    • Social Sharing
    • Email Notifications
  • Developer

    • REST API
    • Hooks & Filters
    • JavaScript Events
    • Database Schema
    • Shortcodes
    • Options Reference
    • WP-CLI
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
    • Changelog

Bidding Engine

How a bid travels from the Place Bid click to the auction's new top price — fast, race-safe, and fully audited.

Place Bid surface — current price, bid input, quick-increment chips, Buy Now and Proxy Bidding — the front of the bidding engine

Lifecycle of one bid

What happens behind the scenes between the click and the new top price showing on every other bidder's screen:

  1. Identity & integrity checks. The bidder is signed in, isn't on the Blocked Users list, has cleared two-factor (if required), passed a CAPTCHA challenge (if one was triggered), and isn't tripping any fraud rules.
  2. Auction validation. The auction is active, you're inside the bidding window, and your amount is at least current price + increment. The plugin also checks the bid cooldown, per-user caps and per-auction caps.
  3. Atomic update. The auction row is locked for the moment of the write so two simultaneous bidders can never both win the same price. The bid is recorded, the current price and bid count are bumped, and an anti-snipe extension is added if the bid landed inside the soft-close window.
  4. Audit trail. A tamper-evident hash entry is appended to the bid audit chain. The auction log gets a new row that shows up in the dashboard and reports.
  5. Fan-out to the world. Outbid email to the previous high bidder, "bid placed" email to the bidder, seller email, Firebase push notification, Twilio SMS, marketing event, gamification points.
  6. Refresh. Everyone watching the auction sees the new top price, new top bidder, and updated time-remaining within their next poll cycle.

The whole cycle is sub-100 ms on a modest server for typical auction load.

Concurrency safety

Two bidders click Place Bid at the same millisecond — what wins?

The plugin locks the auction row for the brief moment a bid is recorded. The first request gets the lock, writes its bid, and releases. The second request waits (typically under 10 ms), then re-reads the (now updated) current price. If its amount no longer beats the new top, it's rejected with "Outbid — try a higher amount" and the bidder sees a one-click rebid offer.

Two simultaneous bids can never both "win" at the same price. That's the central correctness guarantee of the bidding engine.

Bid validation

Every bid is checked against a layered set of rules. The bidder gets a clear, inline error if any fail — no page reload, no lost form state.

RuleWhat it checks
Logged inSigned-in WooCommerce customer
Not blockedNot on the Blocked Users list
Auction activeStatus is active, not paused / ended / cancelled
Inside bid windowCurrent time is between start and end
Amount validAt least current price + the configured increment
Cooldown elapsedEnough time has passed since this bidder's last bid
Caps not hitPer-user and per-auction limits respected
Fraud rulesNo active rule has fired against this user
CAPTCHA validIf a challenge was issued
Two-factor validIf 2FA-on-bid is required

Live polling

Once a bidder lands on an auction page, the front-end keeps the price and timer fresh by polling for updates.

PhaseRefresh rateWhy
Normalevery 30 seconds (configurable)Balanced load and live feel
Last 2 minutesevery 3 secondsTight finish, no missed bids
Dormant (no bids in 30 min)polling pausesSaves server resources

Polling cadence is configurable site-wide in Settings → General → Default poll interval.

Bid queue (high-traffic mode)

For Black Friday-tier auctions where hundreds of bids per minute land on a single lot, you can switch on a bid queue. Incoming bids are queued and drained serially by a single worker. Bidders briefly see "Queued, position N" and their bid resolves within seconds.

This trades a small amount of immediate-feedback for sustained throughput. Most stores leave it off — turn it on per-site under Settings → Bidding → Bid queue threshold.

Quick-bid buttons

Pre-defined increment buttons sit next to the bid input — for example, +10, +50, +100. One click places that exact bid above the current price. Configurable per-auction or globally to reduce friction in fast-moving auctions.

One-click rebid

When a bidder is outbid, a Rebid button appears that places a new bid at the minimum amount needed to lead. Re-engagement friction dropped to a single click.

Bid confirmation

When Settings → General → Bid confirmation modal is on, a "Confirm bid of $X?" dialog appears before submission. Prevents fat-finger mistakes (accidentally bidding $1000 instead of $100). Per-auction override available.

Anonymous bidding

A bidder can tick Bid anonymously before submitting. Their public name is replaced with a configurable mask (e.g. B***r) in bid history, leaderboards, and outbid emails sent to other bidders. Useful for high-profile bidders or sensitive lots.

Site-wide masked names

Even non-anonymous bidders can be masked everywhere by turning on Settings → General → Mask bidder names. Affects bid history, leaderboards, the storefront audit feed, and emails sent to other bidders. Admins always see real names in the admin tables.

Bid retraction

If retraction is enabled, a bidder can pull a bid within a short retraction window after placing it.

TriggerEffect
Within windowRetraction succeeds; auction recalculates the current price
Outside windowModal: "Retraction window expired"
Already winning at closeRetraction blocked (prevents abuse)

Retracted bids count toward the per-user retraction limit (default 3 per auction). Excessive retractions flag the bidder in Fraud Detection.

Cooldown

A short minimum wait between consecutive bids by the same user (default 5 seconds). Prevents bid-spamming and acts as a soft anti-bot measure. Configured per-site under Settings → Bidding → Bid cooldown.

Caps

Optional limits per auction:

CapDefault
Max bids per user per auctionunlimited
Max total bids per auctionunlimited

Set per-auction in Add / Edit Auction.

Absentee bidding

A bidder can pre-place a bid before the auction starts. When the auction goes live, the absentee bid activates automatically as a regular proxy bid. Use case: bidder unavailable during the auction window but wants to participate.

Auto-bid (proxy)

See Proxy in Auction Types.

Bid audit chain

Every accepted bid is appended to a tamper-evident hash-chain ledger. See Audit Log for verification, export and compliance use.

Performance at scale

On a 2-core / 4 GB server with a typical MySQL + Redis cache setup:

LoadTypical response time
10 bids per second on one auctionwell under 50 ms
100 bids per second on one auctionunder 200 ms
100 bids per second across many auctionsunder 100 ms
1000 bids per secondenable the bid queue

For higher throughput, scale your database (read replicas + Redis for hot queries) or enable bid queueing.

Prev
Auction Types
Next
Anti-Sniping (Soft Close)