Catalog Rescue. Fixed-price product catalog cleanup, metro Detroit and remote.

Your product catalog, cleaned up at a fixed price in five business days.

Broken imports, missing images, duplicate SKUs, wrong variants, empty descriptions and dead redirects, fixed from the files your store already has. Backup first. A review list for anything uncertain. A before-and-after report at the end.

$750 for up to 500 SKUs.

$1,500 for up to 2,500 SKUs.

Half up front. The balance on acceptance. Shopify, WooCommerce, BigCommerce and Wix Stores at the fixed price; other platforms get a written quote.

Five rows from a store export, three of them flagged. Demonstration with synthetic data.
SKUTitleImageStatus
EVC-0211Blueberry Blast 3%placeholder.pngno image
EVC-0338Peach Rings 60mlpeach-60.jpgok
EVC-0338-1Peach Rings 60mlpeach-60.jpgduplicate
EVC-0472Cool Mint 2%mint.jpgok
EVC-0519Strawberry Kiwi 5%sk.jpg404
Demonstration with synthetic data

What gets fixed

Six problems, fixed from the files you already have.

Every job covers all six. You tell me which ones you see; the audit finds the rest.

Broken imports

What I do
A supplier or platform CSV that fails or half-loads is mapped, validated and re-imported. CSV Mapper and ChangeAtlas were built for this step.
What I do not do
Hand-typing rows from a PDF or a photo of a price list. Those are not usable sources.

Missing images

What I do
Products are matched to images you already have: folders, supplier packs, an old site export. Renamed, resized, uploaded, alt text set.
What I do not do
Inventing images or scraping manufacturers. Products with no image on hand are listed as image needed.

Duplicate SKUs

What I do
Exact and near duplicates found by SKU, barcode, title and attributes. Exact matches are merged after a backup, with a redirect from the old URL. Near matches go to your review list.
What I do not do
Deleting anything on a guess.

Incorrect variants

What I do
Sizes, flavors, pack counts and colors moved into proper variant structure. Orphan variants and split products reconciled into one product each.
What I do not do
Guessing which split products belong together. You give me a short list of what right looks like.

Empty descriptions

What I do
Filled from the structured data you have (attributes, supplier copy, spec sheets) using one approved template per category.
What I do not do
Original copywriting. That is a separate quote, priced per 100 SKUs.

Broken redirects

What I do
A 404 report built from your sitemap and old URLs, a redirect map, and the redirects installed on the store.
What I do not do
SEO campaigns or theme changes.

See the two packages

Price

Two packages. Same scope, different size.

Rescue 500

$750

Size cap
Up to 500 SKUs
Deposit
$375 (50%) before work starts
Delivery
5 business days after the clock starts
Hand decisions
Up to 60 ambiguous records decided by hand; the rest go to your review list
Revision
One round, requested within 5 business days of delivery
Balance
$375 on acceptance, before the final import to the live store
Send your store

Rescue 2,500

$1,500

Size cap
Up to 2,500 SKUs
Deposit
$750 (50%) before work starts
Delivery
5 business days after the clock starts
Hand decisions
Up to 150 ambiguous records decided by hand; the rest go to your review list
Revision
One round, requested within 5 business days of delivery
Balance
$750 on acceptance, before the final import to the live store
Send your store

What SKU means here

1 SKU = 1 sellable unit as your platform exports it. A product with 5 flavors is 5 SKUs. A product with no variants is 1. The count is taken from your platform export at intake and written on the statement of work. If the export shows more than the cap, you pick the subset or move up a package.

When the clock starts

The next business day after all three are in: the deposit has cleared, staff access has passed a test export, and your source files have passed the intake check. If a file is unusable I tell you within one business day and the clock pauses until it is fixed or re-quoted.

What delivery means

The cleaned catalog on a staging copy or in draft state, plus the issue log, the review list and the before-and-after report. You check a 25-record sample and the report within 5 business days; silence counts as accepted. Then the balance is due and the final import goes to the live store.

Caps and exclusions, in plain words

  • Original product copywriting beyond the templated fills: quoted separately, per 100 SKUs.
  • Photography, image creation or stock images: not included.
  • Per-SKU research on the open web (manufacturer specs, images): excluded by default, quoted by the hour if you want it.
  • Integrations (POS sync, ERP, feeds, marketplace listings), theme or design changes, SEO campaigns: not included.
  • Missing image rights: those products are listed as image needed in the report, not fixed.
  • Urgent delivery under 5 business days: plus 50%, subject to capacity.
  • Capacity: one Rescue 2,500 or two Rescue 500 in flight at a time. A third signed job gets a start date, not a 5-day promise.
  • Anything outside this list: $75 an hour, $300 minimum, written scope first. Magento, Squarespace, custom builds, and catalogs whose source of truth is a POS (Square, Clover, Lightspeed) or a menu provider (Dutchie, Jane, Weedmaps) are quoted this way, because website edits would be overwritten by the sync.
  • Nothing is deleted without a backup. Backups are kept 30 days. 14 days of free fixes after delivery for anything in scope that was missed.

Send your store

Who does the work

One person, with the tools for this exact job.

Working in ecommerce since 2019; nearly five years running a 14,000+ SKU wholesale catalog.

Employment, not agency clients

  • Employment

    Ran a wholesale catalog of 14,000+ SKUs for nearly five years (Universal Wholesale / United Textile, Shopify + WooCommerce)

  • Employment

    Webmaster / Ecommerce Specialist at Universal Wholesale UWI (Jun 2019-Apr 2024), Southfield MI

  • Employment

    Web Content Manager at Wild Bill's Tobacco (Oct 2024-Jul 2025): corporate sites, wholesale B2B product content, drive-thru and disposables menus

Tools built for this work, live on mousabatarseh.com

Built CSV Mapper, ChangeAtlas, DealProof, ShelfMark (live at mousabatarseh.com).

  • CSV Mapper: maps a supplier sheet to a store import and validates it.
  • ChangeAtlas: previews the blast radius of an import before it runs.
  • ShelfMark: Benchmarked 21 Michigan storefronts on 29 public-page checks (Sept 2026).

Dispensary menus: independent demonstration work only

Built independent, unpaid demonstrations of deal-page QA for dispensary menus (LIV Cannabis concept, Puff Cannabis case study, House of Dank interview demo). Each one is an independent demonstration, not client work, and is labelled that way.

Based in Warren, Michigan.

Send your store

Demonstration with synthetic data

What a rescued row looks like.

Six rows written for this page from a fictional store, Example Vapor Co. They are not a client's data. The columns are the ones a Shopify or WooCommerce export uses.

Before: as exportedDemonstration with synthetic data
SKU Title Variant Image Description URL Note
EVC-0104 Mango Ice 5%,2-pack title split by a stray comma 19.99 price landed in the variant column empty empty /products/mango-ice-5-2-pack Import failed on row 104
EVC-0211 Blueberry Blast 3% 30ml placeholder.png no image Short supplier copy /products/blueberry-blast-3 No image
EVC-0338EVC-0338-1two rows, same barcode 81234567890 Peach Rings 60ml 60ml peach-60.jpg empty /products/peach-rings-60ml/products/peach-rings-60ml-1 Duplicate
EVC-0415EVC-0416 Grape Soda 30mlGrape Soda 60mltwo products, one item none grape.jpg Same copy twice /products/grape-soda-30ml/products/grape-soda-60ml Should be one product with a size variant
EVC-0472 Cool Mint 2% 30ml mint.jpg empty /products/cool-mint-2 Empty description
EVC-0519 Strawberry Kiwi 5% 60ml sk.jpg ok /collections/clearance-2024/strawberry-kiwi 404 404 from the old sitemap
After: as deliveredDemonstration with synthetic data
SKU Title Variant Image Description URL Note
EVC-0104 Mango Ice fixed 5% nicotine, 2-pack fixed mango-ice.jpg fixed Filled from the supplier sheet with the e-liquid template fixed /products/mango-ice-5-2-pack Re-imported, 0 errors
EVC-0211 Blueberry Blast fixed 3% nicotine, 30ml fixed blueberry-blast-30.jpg, matched from your image folder, alt text set fixed Kept /products/blueberry-blast-3 Image matched
EVC-0338 fixed Peach Rings fixed 60ml peach-60.jpg Filled from supplier sheet fixed /products/peach-rings-60ml Merged; /products/peach-rings-60ml-1 redirects here
EVC-0415 fixed Grape Soda fixed 30ml and 60ml as one product with two size variants fixed grape.jpg One copy fixed /products/grape-soda fixed Variants restructured; old URL redirects
EVC-0472 Cool Mint fixed 2% nicotine, 30ml fixed mint.jpg Filled with the e-liquid template fixed /products/cool-mint-2 Description filled
EVC-0519 Strawberry Kiwi fixed 5% nicotine, 60ml fixed sk.jpg Kept /products/strawberry-kiwi fixed Redirect installed from the old clearance URL

How the work runs

How it runs

Eight steps, five business days once the clock starts.

  1. Intake

    You send the store URL, the platform, a rough SKU count and what you see broken. I reply within one business day with questions, or a quote and a statement of work.

  2. Access and backup

    You give staff or collaborator access (never your own password). I verify it with a test export and save a full backup before anything changes. Backups are kept 30 days.

  3. Audit

    A script runs over the export. You get an issue log with counts for each of the six problems and a list of anything the files cannot answer.

  4. Cleanup

    Fixes are applied in bulk from your files. Anything ambiguous goes on the review list instead of being guessed; up to 60 or 150 records are decided by hand, depending on the package.

  5. Staging and sample batch

    The cleaned catalog goes to a staging copy or draft state. You get a 25-record sample to check against the report.

  6. Review

    You answer the review-list questions, ideally within one business day. One revision round is included if you ask within 5 business days of delivery.

  7. Release

    On acceptance and the balance payment, the final import goes to the live store.

  8. Handoff

    You receive the before-and-after report, the issue log and the files used, plus 14 days of free fixes for anything in scope that was missed.

Your part

What you provide.

  • Staff or collaborator access to the store, not the owner's password, within 1 business day of the deposit.
  • Source files: the platform export, supplier sheets, image folders (zip or shared drive), an old-site export if there is one.
  • A short note on what right looks like for your variants (sizes, flavors, pack counts).
  • Rights to the images and copy you supply. I do not scrape manufacturer images.
  • One decision-maker who answers review-list questions within 1 business day.
  • Regulated details (age gates, nicotine warnings, THC content, tax classes): you supply them, I preserve them and do not author them.

Have those?

Send your store

Questions

Straight answers.

Which platforms are fixed price?

Shopify, WooCommerce, BigCommerce and Wix Stores, because all four have CSV export and import. Magento, Squarespace and custom builds get a written quote at $75 an hour, $300 minimum.

My catalog is synced from a POS (Square, Clover, Lightspeed). Can you fix the website?

Not at the fixed price. The sync would overwrite edits made on the website, so the fix has to happen in the POS or not at all. Tell me which POS you use in the form and I will say whether a quoted job makes sense.

I run a dispensary with a Dutchie, Jane or Weedmaps menu.

The menu provider is the source of truth for products and prices, so the same rule applies: a written quote or a referral, not the fixed package. My dispensary work so far is independent demonstration work, built unpaid and labelled that way. I have not run a paid cannabis catalog job.

Where do the images come from?

From you: folders, supplier packs, an old site export. You confirm you have the rights to use them. I do not scrape manufacturer sites or use stock images. Products with no usable image are listed as image needed in the report.

What happens if my files are unusable?

I tell you within one business day. You fix the source or accept a custom quote, and the clock pauses until then. PDFs and photos of price lists are not usable sources.

How do I pay?

Half up front by invoice before work starts. The balance on acceptance, before the final import to the live store. The invoice lists the payment options.

How long does it really take?

Five business days from the day the clock starts, which is the business day after the deposit clears, access passes a test export and your files pass the intake check. Urgent delivery under five days is plus 50% and depends on capacity: one Rescue 2,500 or two Rescue 500 at a time.

What if something is missed?

Anything in scope that was missed is fixed free for 14 days after delivery. One revision round is included if requested within 5 business days. Nothing is deleted without a backup, and backups are kept 30 days.

Where

Metro Detroit in person, the rest of the US remote.

Based in Warren, Michigan. Serving stores in Wayne, Oakland and Macomb counties, and working remotely with stores anywhere in the US. Every step of the job runs on exports, shared folders and staff access, so distance does not change the price or the clock.

  • Wayne County
  • Oakland County
  • Macomb County
  • Remote, anywhere in the US

Send your store

Next step

Send your store.

Takes about two minutes. You get a reply within one business day, usually with a request for your platform export and a sample of your files so the quote is real.

The website customers buy from.

From your platform export if you have it. A product with 5 flavors is 5 SKUs.

Package you have in mind
What is broken (tick all that apply)

A URL of a broken product page helps.

Only if you prefer a call back.