BoxCart is a standalone click & collect ordering plugin for WordPress. Give your customers a polished pickup-ordering experience with configurable time slots, a modern card-view storefront, customer accounts, and a built-in admin dashboard - all without WooCommerce.
Built for: farm shops, bakeries, butchers, delis, greengrocers, fishmongers, florists, coffee roasters, pizza shops, meal-prep kitchens, and any business where customers order ahead and collect.
What you get in the free build
- Click & collect ordering with configurable time slots on your pickup schedule.
- One pickup location with its own address, collection instructions, opening hours, and per-slot capacity.
- Card-view storefront with category filters, search, and mini-basket.
- Customer accounts with order history.
- Admin order management with a status lifecycle (pending, confirmed, ready, collected, cancelled).
- Seven transactional email templates (order confirmation, status updates, cancellations, modifications, customer messaging) with branding controls and a live preview editor. Plus three admin notifications.
- Cash on collection and bank transfer payment methods.
- 5 Gutenberg blocks and 5 shortcodes for embedding BoxCart anywhere - products, basket, checkout, account, mini basket.
- Developer-friendly - 20 action hooks, 11 filter hooks, CSS custom properties throughout, zero external PHP dependencies.
- Cache-resilient - pages render as empty shells that hydrate via AJAX, with a bypass cookie for customer sessions. Compatible with Cloudflare, WP Rocket, LiteSpeed, and similar.
- Translation-ready with a
.pot file included.
- GDPR-aware - self-hosted fonts, optional full data cleanup on uninstall.
Why BoxCart?
- Standalone - no WooCommerce required. A single, focused plugin with its own data model.
- Time-slot ordering baked in. Configure your schedule, slot length, and capacity. Customers see live availability.
- Developer extensible - documented hooks, filters, and CSS custom properties.
- Not a stripped-down demo - the free build is a complete, working click & collect store.
Paid Pro upgrade (optional)
A paid Pro build is available from
boxcart.dev with additional features:
- Multiple pickup locations
- Stripe card payments (with Apple Pay, Google Pay, Link, Klarna, PayPal, Afterpay)
- Table-view storefront
- Customer favourites and one-click reorder
- Multi-quantity products (e.g. per-100g / per-kilo on one product)
- Two-way order messaging
- Customer-side order modification
- Holiday closures and per-date capacity overrides
- Printable pick lists & packing slips
- Sales reports
- CSV product import/export
- 195+ customisation settings
Pro is optional - the free build will continue to receive updates and is genuinely useful on its own.
Live demo
Three demo stores at
demo.boxcart.dev - a greengrocer, a bakery, and a butcher - each configured differently to show the range of what BoxCart can do.
Documentation
Full documentation at
docs.boxcart.dev covering every admin workflow and the developer API.
- In your WordPress admin, go to Plugins → Add New.
- Search for BoxCart, then click Install Now and Activate.
- Open BoxCart → Settings and work through the General tab to set currency, tax, and page assignments.
- Create three pages - Products, Basket, and Checkout - and add the matching BoxCart shortcode or Gutenberg block to each. Optionally add a fourth Account page if you want customers to be able to sign in and view past orders (BoxCart works as guest-checkout-only without it). Assign them all in BoxCart → Settings → General → Page Setup.
- Go to BoxCart → Locations and add your pickup location, opening hours, and time slots.
- Add your products under BoxCart → Products.
- Place a test order end-to-end to verify everything is wired up.
Full step-by-step walkthrough at
docs.boxcart.dev/getting-started.
1.1.0
- New: Guided setup. A new "Setup" screen (always available in the BoxCart menu) shows a live checklist of what is left to do, with one-click creation of the Shop, Basket, Checkout, and My Account pages. It drops in the correct shortcode, assigns each page in Settings, and reuses any pages you already made instead of duplicating them.
- New: The dashboard Quick Start guide now stays available with live progress ticks until setup is complete, and can be dismissed early, rather than disappearing as soon as you add your first product. The welcome screen also links straight to Guided Setup.
- New: "BoxCart Today" dashboard widget on the main WordPress dashboard, showing today's collections, takings, and this week's order counts at a glance.
- Improvement: Storefront shortcodes can be copied with a single click from the new Setup screen.
- Improvement: A "Hide Setup page" option (Settings, Misc, Advanced) removes the Setup screen from the menu once you have finished setting up, and can be switched back on at any time.
1.0.1
- Fix: Fatal error when previewing email templates from the Settings → Emails screen. The mock-order helper was missing several methods that the email templates expect, causing "Call to undefined method BoxCart_Mock_Order::get_view_url()" and similar errors. Thanks to @dansart for the report.
- Fix: Mini Basket block did not enqueue its assets when placed in a global block-theme template part (e.g. the site header), so the badge appeared unstyled and the item count never hydrated on non-BoxCart pages. The page-detection now checks active header / footer template parts for BoxCart blocks.
- Fix: Currency symbol on the "Add new product" screen could fall back to £ even when the shop's configured currency was different. The admin product editor now reads the currency symbol from the localised settings array instead of querying the DOM, which fixed the case where no quantity-type row had yet been rendered.
1.0.0
Initial public release.
- Click & collect ordering with configurable time slots.
- Pickup location with opening hours, slot capacity, and per-slot availability.
- Guest checkout by default - customers can place an order without creating an account, and view their order any time via a per-order magic link emailed to them.
- Optional customer accounts with order history. Sign-in, lost-password, and password-reset all use WordPress's native authentication flow, styled to match the storefront.
- Admin order management with a status lifecycle (pending, confirmed, ready, collected, cancelled).
- Cash on collection and bank transfer payment methods.
- Seven transactional email templates with branding controls and live preview.
- Card-view storefront with category filters, search, and mini basket.
- 5 Gutenberg blocks and 5 shortcodes.
- Cache-resilient architecture with AJAX hydration and bypass cookie.
- Developer API - 20 action hooks, 11 filter hooks, CSS custom properties.
- WordPress 6.0+ / PHP 7.4+.