1. Project Overview

etimbersale.com is a timber auction platform built on WordPress using the Ultimate Auction Pro plugin. The client is planning to revive the platform and requires a key usability enhancement: the ability for users to place bids on multiple auctions — up to approximately 20 — from a single page, without having to navigate into each individual auction product page.

Currently, Ultimate Auction Pro requires users to open each auction product page individually to place a bid. This creates significant friction when a user wants to bid across multiple active auctions simultaneously.

The goal of this project is to enhance the existing Ultimate Auction Pro default shortcode so that each auction card on the listing page includes a fully functional inline bid widget. Users can place bids on any number of auctions from this single page without any page navigation, with real-time bid price updates shown as other users bid. No new shortcode will be created — the existing default shortcode will be updated.

  1. Workflow & Process Flow

The following describes the end-to-end user experience for the single-page bidding feature, from the user visiting the page through to a successful bid placement.

Phase 1 — Viewing the Auction Listing

Step 1:  User Visits the Single-Page Bidding View

The user navigates to a dedicated URL (e.g. etimbersale.com/live-auctions) — or any page where the shortcode is placed. All active auctions are displayed as cards on this page. Up to ~20 auctions can be shown, with pagination available if more are needed.

Step 2:  Each Auction Card is Displayed

Every auction card shows: product image, auction title, current highest bid, countdown timer (days / hours / minutes / seconds), a bid amount input field, and a Bid button. No navigation to individual product pages is required.

 

Phase 2 — Placing a Bid

Step 4:  User Enters a Bid Amount

The user types their bid amount directly into the input field on the auction card. The system shows the minimum required bid amount as a helper note below the input field.

Step 5:  User Clicks the Bid Button

The user clicks the Bid button on that card. The bid is submitted via AJAX — no page reload occurs. The user can continue browsing other auction cards while the bid is being processed.

 

Step 6:  Success or Error Feedback Displayed

The result is shown directly on the auction card:   •  Success: “Your bid has been placed successfully” — current price updates to the new bid   •  Error (bid too low): “Please enter a bid higher than the current bid of $X”   •  Error (not logged in): “Please log in to place a bid”   •  Error (auction ended): “This auction has ended”

Step 7:  User Bids on Additional Auctions

The user can immediately move to the next auction card and repeat the process — placing bids across multiple auctions from the same page without any navigation.

 

  1. Assumptions

The following assumptions have been made in scoping this feature. Please review and confirm before development begins.

 

  1. Page & Auction Display

A1. The existing Ultimate Auction Pro default shortcode will be enhanced — no new shortcode will be created. The inline bid widget will be added to the existing listing page output wherever the default shortcode is already placed.

A2. The page will display all currently active auctions — up to approximately 20 per page. Pagination will be available if more than 20 active auctions exist.

A3. Only live/active auctions will be displayed on this page. Ended, draft, or scheduled auctions will not appear.

A4. The design of the auction cards will follow the existing site theme styling. No bespoke design is included in this scope.

 

  1. Bidding Behaviour

B1. Users must be logged in to place a bid. Guests will see a “Please log in to bid” message when they attempt to bid.

B2. All existing bid validation rules from the plugin apply — minimum bid increment, reserve price, auction end time — and are enforced on submission.

B3. Proxy bidding (Set My Maximum Bid) is out of scope for this feature. Only standard bid placement is included.

B4. Buy Now functionality is out of scope for this listing view. Users who want to use Buy Now must visit the individual product page.

 

  1. Real-Time Updates

C1. Current bid prices will update in real time using AJAX polling at a defined interval (e.g. every 5–10 seconds). True WebSocket-based push updates are out of scope.

C2. The countdown timer per auction card will update in real time on the client side using JavaScript.

C3. If an auction ends while a user is on the page, the card will update to show the auction as ended and disable the bid input.

 

 

  1. Performance

D1. This feature is scoped and tested for up to 50 simultaneous users as specified by the client. Performance beyond this threshold is subject to the hosting server specifications.

D2. AJAX polling frequency will be optimised to minimise server load — a sensible interval (e.g. 10 seconds) will be used rather than continuous polling.

D3. We recommend enabling server-side caching (e.g. WP Rocket or similar) and real server cron jobs on the hosting environment for optimal performance.

 

  1. Out of Scope

E1. Proxy bidding / Set My Maximum Bid on the listing page is out of scope.

E2. Buy Now button on the listing page is out of scope.

E3. Watchlist (Add to Watchlist) on the listing page is out of scope unless agreed separately.

E4. Custom bespoke UI/UX design is out of scope — styling will match the existing site theme.

E5. WebSocket or server-sent events for real-time updates are out of scope — AJAX polling will be used.

 

  1. Customer Requirements
  2. Single-Page Auction Listing View
  • A dedicated page displaying all active auctions as cards — up to ~20 per page
  • Each card shows: product image, title, current highest bid, and countdown timer
  • No navigation to individual product pages required to place a bid

 

  1. Inline Bid Widget per Auction Card
  • Bid amount input field on each card
  • Bid button that submits the bid via AJAX — no page reload
  • Minimum bid amount displayed as a helper note
  • Success and error feedback displayed directly on the card

 

  1. Real-Time Bid Price Updates
  • Current highest bid price updates automatically across all cards as bids are placed
  • Updates via AJAX polling — no page reload required
  • Auction cards automatically reflect “ended” state when an auction closes

 

  1. Auction Countdown Timer
  • Live countdown timer (days / hours / minutes / seconds) displayed on each card
  • Timer updates in real time on the client side via JavaScript

 

  1. Technical Approach

We will extend the Ultimate Auction Pro default shortcode output by injecting the inline bid widget into each auction card rendered by the existing shortcode. No new shortcode will be created. The enhancement will be implemented via WordPress template overrides and hooks — without modifying the plugin core — ensuring compatibility with future plugin updates. All bid submissions will continue to use the plugin’s existing AJAX bid processing endpoints.

5.1 Default Shortcode Enhancement

  • Extend the existing Ultimate Auction Pro default shortcode output using WordPress hooks and template overrides
  • No new shortcode created — the existing shortcode is enhanced in place
  • Inject inline bid widget into each auction card rendered by the default shortcode
  • Render auction cards in a responsive grid layout — product image, title, current bid, countdown timer, bid widget
  • Pagination support for more than 20 active auctions
  • Cards styled to match the existing etimbersale.com theme

 

5.2 Inline Bid Widget (AJAX)

  • Bid input field and Bid button on each card — all bid submissions via the plugin’s existing AJAX endpoint
  • Success and error messages displayed inline on the card — no page reload
  • Per-card bid validation: minimum bid increment, auction status, login check
  • Each card scoped by product ID to prevent cross-card conflicts

5.3 Countdown Timer

  • JavaScript-based countdown timer rendered per card using the auction end date/time from the plugin
  • Counts down in real time: days, hours, minutes, seconds
  • When timer reaches zero, card state updates to “Auction Ended” and bid input is disabled
  1. Effort — Design & Development

6.1 Default Shortcode Enhancement — Inline Bid Widget on Listing Cards

  • Audit existing Ultimate Auction Pro default shortcode template and output structure
  • Implement WordPress hooks and template overrides to inject inline bid widget per auction card
  • No new shortcode — enhancement applied directly to existing shortcode output
  • Responsive grid layout — 1, 2, 3, or 4 columns based on screen size
  • Pagination support
  • CSS styling to match site theme

Estimated effort: 10 hours

6.2 Bid Price Updates

  • Fetch current bid price, bid count, and status for all visible auction IDs in a single request
  • Update card UI on each poll cycle — current bid, auction status
  • Handle auction-ended state: disable bid input, show “Auction Ended” label

Estimated effort: 8 hours

6.3 Inline Bid Submission & Validation

  • Connect bid button to plugin AJAX endpoint per card
  • Display inline success/error messages on each card
  • Login check — show login prompt for guest users
  • Handle edge cases: auction ended mid-session, bid below minimum

Estimated effort: 3 hours

6.5 Responsive Design & CSS

  • Responsive grid layout across desktop, tablet, and mobile
  • Card styling to match etimbersale.com theme
  • Bid input and button layout consistent across all card sizes

Estimated effort: 6 hours

6.7 Testing & Deployment

  • End-to-end testing: bid placement, real-time updates, countdown, auction expiry
  • Cross-browser testing: Chrome, Firefox, Safari, Edge
  • Mobile responsive testing
  • Deployment to the client’s server

Estimated effort: 3 hours

  1. Effort Snapshot

 

Deliverable Hours
Default Shortcode Enhancement — Inline Bid Widget on Listing Cards 10
Real-Time Bid Price Updates (AJAX — no page reload) 8
Bid Validation & User Feedback (error/success messages) 3
Responsive Design & CSS Styling 6
Testing & Deployment 3
TOTAL ESTIMATED HOURS 30

 

  1. Deliverables

The following deliverables will be provided as part of this task:

  • Default shortcode enhanced — existing listing pages automatically show the inline bid widget on every auction card without any additional setup
  • Inline bid widget per card — bid input, Bid button, min bid helper text
  • AJAX bid submission — no page reload, inline success/error feedback per card
  • Live countdown timer per card (days / hours / minutes / seconds)
  • Auction-ended state handling — bid input disabled, “Auction Ended” label shown
  • Responsive layout — desktop, tablet, and mobile
  • Styled to match the etimbersale.com site theme
  • Tested for up to 50 concurrent users
  • Tested and deployed on the client’s server
  1. Commercials & Payment

Project Cost

  • Total Estimated Effort: 30 hours
  • Hourly Rate: USD 45 / hour
  • Total Cost: USD 1,350