
account page

One of the subtler but more impactful fixes we delivered was solving a data integrity problem Shopify was creating silently: every time a wholesale buyer checked out to a secondary address, Shopify would overwrite their default — causing ongoing confusion for customers managing multiple delivery locations.
We built custom logic to permanently protect the default address, backed by webhooks and a nightly sync. On the front end, the address management UI was redesigned to make the experience clear and mistake-proof — with a dedicated "Set as Default" button separated cleanly from the edit action, so customers can manage their addresses confidently without accidental changes.



sale agent page

Wholesale businesses don't just need a great customer-facing experience — their internal sales team needs one too. We built a dedicated Sales Agent feature that allows Ennis reps to search across the full customer account list by name, company, or email, and seamlessly place orders on behalf of any account. What would otherwise require back-and-forth communication or manual admin work becomes a quick search and a single click — giving the sales team the speed and visibility they need to serve wholesale buyers effectively.
sale agent page

When a sales rep is working on behalf of a customer, they need the full picture — not just pricing, but real-time inventory across every regional warehouse. The Sales Agent product view surfaces live stock availability by location (Mississauga, Richmond, Indianapolis and more) directly on the product page, so reps can confidently advise customers on lead times and fulfillment without leaving the storefront.
Volume-based pricing tiers are displayed inline, giving reps instant visibility into the savings a customer qualifies for at different order quantities — exactly the kind of context needed to close a wholesale order efficiently.

Cart Page
The cart is where the shipping and pick-up logic becomes tangible for the customer. Rather than forcing wholesale buyers through a full checkout before surfacing fulfillment options, we surfaced the key decision — delivery or store pick-up — directly in the cart drawer.
Customers can select their shipping address from their saved account addresses or switch to Store Pickup, with address validation running in real time before they even reach checkout.
The cart also supports per-line project tagging and a PO number field, giving wholesale buyers the order organization tools they actually need.
Every state — loading, validating, ready — is handled gracefully, so the experience feels polished rather than uncertain.
.png)
Not every order can be rated in real time. For large-volume orders that exceed standard carrier thresholds and require less-than-truckload freight, displaying a meaningless rate name or a broken shipping step would erode confidence at exactly the wrong moment. Instead, we built an LTL exception that detects these orders automatically and presents a clear, professional message — letting the customer know that freight costs will be confirmed by the Ennis team, with an explicit consent checkbox before proceeding. The order can still be completed without friction, no shipment gets lost, and the customer feels informed rather than confused. On a $140,000 order, that distinction matters.
