Website Prism built Maxum Mart from scratch: a Pakistani online store selling educational toys and home gadgets that used to run on Shopify and now runs on a custom site we designed, coded, migrated and optimised end to end. This is a plain-English walkthrough of what we built, why we made the choices we did, and what we would tell any store owner considering the same move.
Why move off Shopify at all?
For a young store, a monthly platform subscription plus app fees is a meaningful fixed cost. The owner also wanted three things a hosted template makes awkward: a checkout built around how Cash on Delivery actually works in Pakistan, full control over the order workflow, and a site that search engines and AI assistants can read cleanly. Owning the code and paying only for hosting solved all three.
The business problem: COD needs a workflow, not just a cart
A COD store has to answer one question before it ships anything: will this customer actually accept the parcel? Maxum Mart's answer is a small refundable advance. The flow we built looks like this:
- The customer places an order with their name, WhatsApp number and delivery address.
- The admin is notified by email and sees the order in the admin panel as awaiting advance.
- The admin sends a pre-written WhatsApp message from a template in one click. It opens a
wa.mechat, so no paid WhatsApp Business API is needed. - The customer sends the Rs. 200 advance through JazzCash or EasyPaisa. The admin marks it received and the amount is adjusted against the order total.
- The order is booked with the PostEx courier directly from the panel.
- The customer opens the parcel at the door, checks it, and pays the remaining balance to the rider. Customers can follow their order on a Track My Order page.
What we built under the hood
- Storefront: custom PHP 8 and MySQL with no heavy framework. Pages are server-rendered, so customers and crawlers both get complete HTML immediately.
- Admin panel: orders, customers, abandoned carts, products, collections, bundles, offers, reviews, WhatsApp templates and settings, all editable without touching code.
- Catalog migration: products, collections and images were imported from the Shopify export. Images were re-encoded to WebP, cutting the catalogue from roughly 45 MB to about 8 MB with no visible loss in quality.
- Reviews: the store's existing 385 reviews were imported with their ratings, and a moderated review form handles new ones.
- Bundles and quantity tiers: offers the owner can create, edit and switch on or off from the admin.
- Courier integration: PostEx booking, tracking and cancellation through their merchant API.
- Analytics: Meta Pixel and Google Analytics 4 e-commerce events from product view through purchase.
- Online payments, ready when needed: JazzCash and EasyPaisa gateway code is scaffolded and switched off until the merchant accounts are active.
We also made some deliberate choices about what not to build. There are no fake countdown timers, no invented "people viewing now" counters and no made-up compare-at prices. Stock warnings and sale prices only appear when they are real.
The SEO and AI-readability work
A new custom site starts with no history, so the technical foundation has to be right from day one:
- Structured data (JSON-LD) on every product: Product, Offer, AggregateRating, Review, BreadcrumbList and FAQPage, plus Organization and WebSite sitewide and Speakable markup for voice assistants.
- Unique titles, meta descriptions and image alt text, written by looking at each product's real photos instead of reusing one template string.
- A dynamic XML sitemap, canonical tags that ignore sort parameters, a single canonical host (www redirects to non-www) and 301 redirects whenever a product URL is renamed.
- A robots.txt that explicitly allows the major search and AI crawlers, with noindex rules for internal search results and error pages.
- A live
/llms.txtfile that lists every product with its current price and rating, generated from the database so it never goes stale.
What the results look like so far
We would rather report what we can verify than quote vague growth numbers. At the time of writing, a crawl of every internal URL (31 pages, including all product and collection pages) returned clean 200 responses with no broken links or images, and Google is already showing Maxum Mart product pages with price and star-rating rich results. Rankings and sales take longer to build, so we are not quoting any figures we cannot back up yet.
Lessons we would pass on
- Migrate data surgically. The live database already held real orders, so every update was matched by slug or image path instead of raw IDs, and customer tables were never touched.
- Verify audits against the live site. An outside SEO audit claimed the site had no structured data. Checking showed it was already there. Fix what is actually broken.
- Validate structured data as data. We parse every JSON-LD block on a page and confirm each one is valid JSON before shipping.
- Deploy with SSH keys. Shared-hosting FTP accounts can be locked to the web folder, so we deploy over SSH with a dedicated key instead of passing passwords around.
- Keep the owner in control. Prices, bundles, templates and reviews are all managed from the admin, so day-to-day changes never need a developer.
Is a custom build right for your store?
Not always. If you are just starting out or want to test a product idea quickly, a hosted platform is a sensible choice. A custom build starts to pay off when you have a workflow a template cannot handle (like COD plus manual advance confirmation), when subscriptions and app fees are eating into thin margins, or when you want full control over SEO and speed.
If you are weighing a custom website, a store migration or an SEO clean-up, Website Prism can scope it with you. We build everything from online stores like Maxum Mart to business websites.