Impact Office Supplies eCommerce Website (B2B & B2C)
- Client & Timeline
- Impact Office Supplies to Present
Overview
Impact Office Supplies is Australia's leading independent office supplies company, Queensland-owned and delivering nationwide. In 2018 they were trading on a Magento store that was fighting them: bugs, an unreliable link to their Options ERP, a dated design, and an experience their business customers put up with rather than enjoyed. I was engaged as their exclusive development partner to replace it with a custom Laravel platform built around how they actually sell.
That platform launched and has been in continuous development ever since. Eight years, more than 5,500 commits, and it is still shipping features today. What began as a website replacement is now the system Impact run their business on: B2B and B2C ordering in a single codebase, bound tightly to Options ERP, carrying contract pricing, multi-level approvals, account hierarchies, recurring orders, accounts payable, and eProcurement catalogues for their university and government buyers.
Challenges
-
Replacing A Live Store Without Disrupting The Business
Impact were trading every day on the Magento site. The replacement had to match everything their customers already relied on before it could add anything new, and the cutover could not interrupt ordering for businesses whose supplies arrive on a schedule. -
The ERP Is The Source Of Truth, Not The Website
Products, customers, pricing, contracts, invoices and orders all live in Options ERP. The website does not own that data, it reflects it. That makes the integration the foundation the entire platform stands on rather than a feature bolted to the side of it. If the data drifts, customers see the wrong price and orders fail to land. -
B2B Pricing Is Never One Price
What a customer pays depends on who they are, which contract they are on, how many they are buying, whether they see GST inclusive or exclusive figures, and whether the product is available to them at all. Getting that wrong is not a bug, it is a commercial problem. -
Buying Is A Procurement Process, Not A Checkout
Impact's larger customers do not have one person with a company card. They have staff who build orders, managers who authorise them, head offices that pay for branch accounts, and finance teams reconciling invoices. Universities and government departments buy through eProcurement platforms entirely. The platform had to model all of it. -
Search Across A Large Catalogue, Priced Per Customer
Fast faceted search at this catalogue size needs an external search index. But pricing is customer-specific, and an index cannot hold prices without building one index per customer, which does not scale. -
Eight Years On A Single Codebase
A platform this long-lived either accumulates rot or gets maintained deliberately. Keeping it on current Laravel and current PHP, year after year, is only possible with the test coverage and static analysis to make each upgrade routine instead of risky.
Solution
-
A Three-Way ERP Integration
The Options ERP integration runs in three directions, not one. A nightly bulk synchronisation pulls 16 separate data sets (customers, contracts, stock products, product meta, attached products, exclusive customers, price breaks, web groups, warehouse locations, transactions, historical transactions, invoice lines, sales order heads and lines, sales contacts, and operator logins) through a purpose-built Composer package with its own repositories, transformations and composite key handling, running on a dedicated queue. Webhooks from Options push individual changes through in real time, so a price or customer edit made in the ERP reaches the site in seconds rather than waiting for the overnight run. Outbound, orders and payments flow back into Options every five minutes through dedicated API services. Every run is logged, and the control panel carries sync log and sync analytics screens so the team can see exactly what moved and what did not. -
A Pricing Engine That Models The Real Commercial Rules
Prices are calculated, not stored. The engine resolves contract pricing, customer category pricing, quantity price breaks, product-level exclusivity, and GST inclusive or exclusive display per customer. It does this in batch, so a full page of search results or a large cart resolves in one pass instead of one query per line. -
Ordering Built For Procurement Teams
A single user can be attached to many customer accounts and switch between them. Accounts form hierarchies, with central billing and central pricing parents that roll their child branches up for invoicing and pricing. Orders route through multi-level approval, with approvers configured per account, decline paths at every level, and an approve-and-pay action for managers who want to authorise and settle in one step. Permissions such as viewing or paying accounts payable and managing users are granted at the customer type level, so entitlements follow the account rather than being reset by hand for every new user. -
Search That Is Fast And Customer-Aware
Search runs through a driver-agnostic layer that works against either Algolia or Typesense, so the platform is not locked to a single search vendor. Both drivers route through a backend caching proxy with hit and miss telemetry charted in the control panel. The index itself holds product data only. Pricing is applied afterwards through an enrichment endpoint that takes the returned stock codes and layers on that customer's calculated prices, quantity breaks and wish list state, cached per user and account. One index serves every customer, and every customer still sees their own pricing. -
Recurring Orders And Recommendations Built From Their Own Data
Customers who order the same lines on a cycle set up a recurring order with full recurrence rules, skip dates, reminder emails ahead of each run, free gift thresholds, and automatic handling when a product on the schedule goes inactive. Product recommendations come from Impact's own invoice history: the platform analyses what customers genuinely purchase together and precomputes the results for the entire catalogue nightly, so "people who bought this also bought" reflects years of real buying behaviour rather than a generic off-the-shelf algorithm. -
Payments, 3D Secure 2 And Accounts Payable
Card payments run through Westpac PayWay with full 3D Secure 2 support, including the challenge flow, single-use tokens, and automatic cleanup of orders stranded when a token expires. Beyond the checkout, customers settle outstanding invoices online through an accounts payable section, and those payments push back into Options on the same five-minute cycle as orders. -
Channel And eProcurement Catalogues
Alongside the website, the platform generates the catalogue feeds Impact's other sales channels need: Google Shopping, Commerce Connector, and three separate Unimarket eProcurement catalogues for the university and government buyers who purchase through their own procurement system rather than through a website. -
A Back Office Built For The Team
The control panel covers everything the ERP does not: local orders awaiting approval, order leads, recurring order management, customer exception reports with central contract account groupings, product reviews, surcharges, shipping zones and carrier rates, bulk user imports, IP blocking and failed login investigation, in-app feature release announcements so staff know what changed, and written documentation built directly into the admin.
Key Features Implemented:
- Nightly Options ERP synchronisation covering 16 separate data sets on a dedicated queue
- Real-time ERP webhooks for product, attached product, customer and contract changes
- Outbound order and payment delivery into Options every five minutes
- Sync logging, sync analytics and reconciliation tooling in the control panel
- Batch pricing engine covering contracts, customer categories, quantity breaks and GST handling
- Product exclusivity and web group visibility scoped per customer
- Multiple customer accounts per user with account switching
- Central billing and central pricing account hierarchies
- Multi-level order approval with per-account approvers, decline paths and approve-and-pay
- Customer-type permissions for accounts payable and user management
- Driver-agnostic search across Algolia and Typesense behind a backend caching proxy
- Per-customer price enrichment layered over a single shared search index
- Persistent carts kept in sync across devices and sessions
- Recurring orders with recurrence rules, skip dates, reminders and inactive product handling
- Co-purchase product recommendations precomputed nightly from invoice history
- Westpac PayWay payments with full 3D Secure 2 challenge handling
- Online accounts payable with payments pushed back to the ERP
- Online quotes, order leads and product wish lists
- Shipping engine with zones, postcodes, carriers, carrier services and rate profiles
- Google Shopping, Commerce Connector and three Unimarket eProcurement catalogue feeds
- Klaviyo marketing automation driven by cart, checkout, order and reorder events
- Two-factor authentication with role-based enforcement, IP blocking and failed login analytics
- Bulk user and wish list CSV imports
- In-app feature release announcements and built-in admin documentation
- Automated data retention for stale carts, inactive records, read history and failed logins
- Technical SEO, sitemap generation and redirect management
Results
-
The Website Became The Main Way Customers Order
More than 60% of Impact's business orders now come through the platform, at a 33.5% B2B conversion rate. Customers who log in are there to order, and their pricing, their approval chain and their invoice history are already waiting for them when they arrive. -
Manual Rekeying Disappeared
Orders placed online land in Options automatically. Payments reconcile automatically. Product, pricing and customer changes made in the ERP appear on the site without anyone touching the website. The integration removed the double-handling the old Magento site created rather than solved, and the logging and analytics around it mean problems surface and get re-run instead of quietly corrupting data. -
Website Sales Up 200% Since Launch
Faster pages, better search, correct customer-specific pricing, and merchandising the full range rather than only the lines a customer already knew about have driven website sales up 200% since launch, with average order value growing alongside them. -
Procurement Customers Could Buy The Way They Actually Buy
Approval chains, central billing hierarchies, online accounts payable and Unimarket catalogues opened Impact up to corporate, university and government buyers whose purchasing rules a standard eCommerce platform simply cannot satisfy. -
A Platform Still Being Built, Eight Years In
The platform runs on current Laravel and current PHP, with more than 950 automated tests and static analysis backing every upgrade. Nearly 1,000 commits have shipped since the start of 2024 alone. The same developer who built it is still building it, which is why it has kept pace with the business instead of being replaced every few years. That continuity is the whole point of how I work with long-term maintenance clients.
Project Services Breakdown
- Custom Laravel B2B and B2C eCommerce Platform Development
- Magento Migration & Replatform
- Options ERP Integration (bulk synchronisation, real-time webhooks and outbound API)
- Bespoke Composer Package Development For ERP Synchronisation
- B2B Pricing & Contract Engine Design
- Order Approval & Account Hierarchy Architecture
- Payment Integration (Westpac PayWay with 3D Secure 2)
- Search Architecture & Per-Customer Price Enrichment (Algolia & Typesense)
- Recurring Orders & Product Recommendation Engine
- eProcurement & Channel Feed Development (Unimarket, Google Shopping, Commerce Connector)
- Shipping Zone & Carrier Rate Engine
- Marketing Automation & Analytics (Klaviyo, Google Tag Manager, GA4)
- Control Panel, Reporting & Back-Office Tooling
- Security Engineering (Two-Factor Authentication, IP Blocking, Access Control)
- Ongoing Maintenance, Framework Upgrades & Feature Development Since 2018
Technology Stack: Laravel 13, PHP 8.4, Livewire 4, Filament 5, Vue 2, React 17, Tailwind CSS 4, Blade, MySQL 8, Redis, Laravel Horizon, Laravel Scout, Algolia & Typesense, Westpac PayWay, Klaviyo, Google Tag Manager & GA4, AWS S3, Vite, PHPUnit 12 & Larastan
Services provided
- Business Software Integrations
- D2C eCommerce Web Development
- B2B eCommerce Web Development
- Custom Web Application Development
- Web Design & Web Development
- Website Maintenance Packages
- Office Supplies eCommerce
- Algolia/TypeSense Search
- AWS Cloud Management
- Laravel Development
Website URL
“Digital Bird has had a huge influence on our business providing many solutions besides just a fantastic reliable website. Jonathan is great to work with and has a solution to every challenge.”
Owner
- Annual Pageviews
- 3.4M
- B2B Conversion Rate
- 33.5%
- Average Order Value
- $250
- Website Sales Growth Since Launch
- 200%