Case study 02

They thought they had 1,700 products.The database held 5,395.

Platform migrationPrestaShop to Shopify2025, live spring 2026Delivered

Hamdan Electronics, hamdanelectronics.com. PrestaShop to Shopify, 2025.

An electronics and appliance retailer in Lebanon wanted off PrestaShop and onto Shopify. Standard migration brief: move the catalogue, build a modern storefront, get it live.

Before quoting a price I audited the PrestaShop database. That is where the project actually started, because almost nothing the client believed about their own catalogue turned out to be true.

Section 01

What the audit found

Catalogue audit, PrestaShop databaseCount
Products in the database5,395
Products the client believed they had1,700
Products with positive inventory77
Products with negative inventory465
Products still priced in Lebanese Pounds~1,300
Products with specifications only in the name1,800
Products with structured spec data3,595
Products with variants751
Laptops over Shopify's three-option limit23
Images, averaging three per product16,259
Source: PrestaShop database, read during the 2025 audit. 99% of products sat in a single "Home" category, and 46% had only one image

5,395 products, not 1,700.

Years of accumulation, much of it inactive or discontinued, with nothing in the system marking the difference.

Only 77 products had positive inventory. 465 had negative.

So the stock field could not be trusted to tell active from dead, which meant the client had to identify what was actually being sold. I was not going to guess on their behalf and migrate 5,395 products, most of which would be dead listings on day one.

Roughly 1,300 products were still priced in Lebanese Pounds.

Values in the hundreds of thousands or millions, left over from the 2020 to 2021 period when the store currency was switched. Imported as-is, those become garbage prices on a live storefront.

99% of products sat in a single "Home" category.

There was no category structure to migrate. It would have to be built from nothing.

1,800 products had their specifications only in the product name.

3,595 had structured spec data. That split decides whether a product page can show a real specifications table or just a long title.

751 products had variants, and 23 laptops exceeded Shopify's three-option limit.

Shopify allows three options per product. Those 23 needed restructuring rather than importing.

16,259 images, averaging three per product, but 46% of products had only one.

Section 02

What the audit changed

It turned a vague migration into a fixed scope with a fixed price, and it made the dependencies explicit before anyone signed anything.

The proposal split the work into two columns: what I handle, and what the client handles.

I handleThe client handles
Export, audit, flag every LBP-priced product with an exact list, build the collection structure, customize the theme, configure payments and shipping, and train their staff.Confirm which products were active, provide brand assets and static page content, identify large items for the delivery surcharge, and give me registrar access for the DNS switch.
Source: the signed proposal, 2025

It also listed what was not included, in writing: GA4, Meta Pixel, advanced SEO, product photography, blog content, Merchant Center, email marketing, Arabic RTL, POS, and any maintenance past the fourteen day support window. Those are the things that quietly expand a fixed-price project into an unpaid one.

The risk, named before starting
The three week timeline assumed the client delivered their side on time, and delays in credentials, cleaned data, content or approvals would push the launch.
Section 03

What got built

1,992 products migrated, 1,740 of them active.

The confirmed-active list against a 5,395-record database.

202 collections, built from scratch.

Category collections (Air Conditioners, Built-In Ovens, Range Hoods, Washing Machines), brand collections (Apple, Samsung, LG, Campomatic, Hisense, Pyrex, Tefal, Victorinox), and merchandising collections for seasonal campaigns. None of this existed in PrestaShop.

A storefront on the Warehouse theme.

Customized to their brand: homepage with hero banners and category entry points, mega menu organized by category with images, product templates with galleries, variant selectors, specification display and cross-sell, and collection pages with filtering and sorting.

Checkout configured for Lebanon specifically.

Cash on delivery as the primary method with OTP verification to cut fake orders, because Shopify Payments is unavailable in Lebanon and every card transaction carries a surcharge on top of the gateway's own fee. COD costs the merchant nothing. Card payments went live on MontyPay alongside it. Phone required, postal code optional, order notes enabled, free standard delivery with a $25 surcharge on large items.

Recorded training sessions and a written operations guide.

So the team could run products, orders and content without me.

Section 04 / Corrections

Corrections and amendments

Amendment 01Scope absorbed, not re-billed

The part I absorbed.

The proposal put the LBP price corrections on the client: I flag them with an exact list, their team fixes them to the correct USD values. That is the right division, because I do not know what a refrigerator should cost in their market and they do.

In practice it did not move, and roughly 1,300 products cannot go live with prices in the millions. So I converted them myself.

It was outside what I quoted and I did not re-bill it. Some scope is worth absorbing to get a store live, and the alternative was a launch missing a quarter of the catalogue.

Amendment 02Timeline missed, cause recorded

The timeline, honestly.

The proposal targeted a launch three weeks from the first payment, and named client-side delay as the thing that would push it.

That is exactly what happened. The build finished. The client then went back and forth on design revisions for an extended period before switching the domain over. The store went live in spring 2026.

I would rather report that than dress it up.

The caveat that holds
The risk I named in writing before starting is the risk that materialized, which is an argument for naming risks in writing before starting.
Section 05

Where it stands

The store is live and trading. The first order came through on 14 May 2026, and it has been taking orders continuously since, including the day this was written.

1,992

Products migrated, 1,740 of them active.

Live Shopify store, 24 August 2026

202

Collections, none of which existed in PrestaShop.

Live Shopify store, 24 August 2026

$54

A month, Shopify Grow plan on annual billing.

Live Shopify store, 24 August 2026

COD with OTP verification and MontyPay card payments, running on a Shopify Grow plan.

Verification

Project fee $1,680 plus a $320 theme licence paid directly to Shopify. All catalogue figures above were read from the PrestaShop database during the 2025 audit or from the live Shopify store on 24 August 2026.