E-commerce

A security-camera store that holds up on phones, at checkout and through a replatform

Raghav’s work at Lorex Technology, before PlainSpoken.

Mobile cart errors traced and fixed (cart calls per add-to-cart cut from 18 to 8, with zero server errors), a bundle builder for multi-camera systems, checkout notices and gift rules built as native Shopify extensions, and a headless rebuild handed over with all 5,887 legacy URLs checked.

Cart calls per add-to-cart, with zero server errors after
18 → 8
Legacy URLs replayed before the replatform
5,887
Variants one product page can handle, up from 250
2,000

The situation

Lorex sells DIY and professional security systems online. A security system isn’t one product: customers pick cameras, a recorder, storage and accessories that all have to work together, for a home or for a business. People buying one want to protect something, so a store that stalls or confuses them loses the sale. The store also runs a heavy promotion calendar, which is exactly when it has to be fastest.

What was hard

Bundles had to stay valid as the range changed. The cart had to stay quick on phones during promotions. Shopify’s defaults didn’t cover what the business needed, from a 250-variant limit per product to a standard checkout. And moving a live store to a new platform puts every link, search ranking and order at risk.

What Raghav did

  • Built a "Build Your Own Bundle" configurator so customers could assemble a complete camera system, plus product comparisons, separate paths for homes and businesses, and accessory add-ons.
  • Put the live theme under version control with two-way sync, so every change ships through a reviewed pull request and can be rolled back.
  • Traced intermittent mobile cart errors, 12 server errors in a single mobile cart flow, to redundant cart polling, and cut cart reads per add-to-cart from 18 to 8 on the live site.
  • Rebuilt the variant picker so one product page can handle up to 2,000 variants instead of Shopify’s usual 250, using Shopify’s Section Rendering API.
  • Shipped a checkout UI extension that warns US shoppers about cross-border tariffs before they pay, alongside a matching cart note and pop-up.
  • Co-built free-gift tiers as Shopify Functions, Rust compiled to WebAssembly, with a checkout extension and an admin page, and ran a seven-tier live promotion on them.
  • Built the first version of a headless storefront on Shopify Hydrogen, React and TypeScript, with search filters, a mega menu, wishlists, reviews and consent-aware tracking. That codebase became the base of the production rebuild.
  • Before the switch, replayed all 5,887 legacy URLs against the new storefront: 5,596 landed on the same page and none failed without an explanation. Every product was compared between the old store and the new one, with none missing.
  • Hardened the new storefront with security headers, a content security policy and request limits, and added a Playwright suite that clicks every header, menu and footer link at desktop and phone widths under accessibility and Lighthouse budgets.

What changed

The cart errors on phones stopped, with zero server errors after the fix. US customers are warned about tariffs before they pay, not after, and gift tiers run as native Shopify rules at checkout.

The headless rebuild was handed over tested, accessible and ready to switch, with every legacy URL and product accounted for.

How this was measured. Cart calls were counted per add-to-cart on the live site before and after the fix. The URL replay compared where every legacy URL landed on the old and new storefronts.

Bring us in when your store is slow or flaky on phones, you need checkout to do something Shopify doesn’t do out of the box, or you’re moving platforms and can’t afford to lose a single link or order.

Book a 30-minute call

Tell us what’s going on

Book a 30-minute call. By minute 25 we’ll tell you whether we can help, and if we can’t, who can.