They thought they had 1,700 products.The database held 5,395.
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.
What the audit found
| Catalogue audit, PrestaShop database | Count |
|---|---|
| Products in the database | 5,395 |
| Products the client believed they had | 1,700 |
| Products with positive inventory | 77 |
| Products with negative inventory | 465 |
| Products still priced in Lebanese Pounds | ~1,300 |
| Products with specifications only in the name | 1,800 |
| Products with structured spec data | 3,595 |
| Products with variants | 751 |
| Laptops over Shopify's three-option limit | 23 |
| Images, averaging three per product | 16,259 |
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.
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 handle | The 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. |
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 three week timeline assumed the client delivered their side on time, and delays in credentials, cleaned data, content or approvals would push the launch.
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.
Corrections and amendments
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.
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 risk I named in writing before starting is the risk that materialized, which is an argument for naming risks in writing before starting.
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.
Products migrated, 1,740 of them active.
Live Shopify store, 24 August 2026
Collections, none of which existed in PrestaShop.
Live Shopify store, 24 August 2026
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.
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.