Why BrandSHD exists

I always wanted to run my own online store ? not just build them for an employer, but actually be the merchant. Feel the operational pain on my own money. So I started BrandSHD, a fragrance ecommerce store.

This case study is not a client project. It's my own business. Everything here I built for myself, with my own revenue on the line. That's the point ? when I talk to clients about operational pain, I'm not theorising. I've lived the exact problems they're describing.

The early reality ? a daily manual CSV chore

I found an authorised fragrance distributor (API access in this category is rare ? most distributors only offer CSV). They handed me a CSV file. The process was:

  1. Download the supplier's CSV every day
  2. Open it and manipulate the pricing ? apply my margin formula, round to sensible price points, handle currency
  3. Adjust other fields ? titles, categorisation, anything that needed cleaning before it was customer-ready
  4. Import the modified CSV into Shopify
  5. Repeat. Every. Single. Day.

Two problems. First, it was tedious. Second ? and worse ? I kept forgetting. Miss a day and the store had stale prices and stale inventory. Customers could order things that were no longer in stock at the supplier. As a one-person operation with a day job, "remember to do the boring thing daily" is not a reliable system.

Getting API access ? and deciding to automate

After the store had some sales and a track record, the distributor granted API access. This is genuinely uncommon in the fragrance wholesale world ? most never offer it. With the API available, the obvious move was to kill the manual process entirely.

The automation

Built a feed integration that runs unattended:

  • Product sync ? a job fetches the supplier's product feed via their API. For each product: if it already exists in Shopify, it updates the relevant fields. If it doesn't exist, it creates the product fresh. No manual CSV, no manual import.
  • Pricing engine ? my margin formula, price-point rounding, and currency handling are applied programmatically on every sync. A cron runs every minute, so pricing stays current without me touching anything.
  • Inventory sync ? runs daily on autopilot. If the supplier is out of a product, it goes out of stock on BrandSHD automatically. No more selling phantom inventory.
  • Change detection ? the system only writes to Shopify when source data has actually changed, rather than blindly re-pushing everything. This keeps the Shopify API usage low and the sync fast.

Then I did it again ? twice

Once the pattern worked for the first supplier, I replicated it for two more suppliers. Same architecture: API feed in, pricing engine applied, inventory synced, products created or updated automatically. Three independent supplier integrations, all running on autopilot, all feeding the one BrandSHD catalogue.

This is the part most relevant to client work: the first integration is the hard one. Once the pattern is right, adding more sources is fast. The same is true for any multi-supplier or multi-channel operation.

The technical bits worth noting

  • Create-or-update logic ? the sync checks for an existing Shopify product by SKU before deciding whether to update or create. Idempotent: running it twice doesn't duplicate products.
  • Programmatic pricing ? margin rules and rounding live in code, not in a spreadsheet someone has to remember to apply. The price a customer sees is always the supplier price run through the current formula.
  • Change detection to limit API writes ? comparing incoming feed data against the last-known state means the system only pushes genuine changes. Significantly fewer Shopify API calls than a naive "re-sync everything" approach.
  • Per-supplier isolation ? each of the 3 supplier integrations runs independently. One supplier's feed being down or malformed doesn't break the others.
  • Cron-driven, unattended ? every minute for pricing, daily for inventory. No human in the loop. No "I forgot to upload today".

Why this matters for your store

If any part of your catalogue depends on a supplier feed that someone has to manually process ? a daily CSV, a weekly spreadsheet, a "remember to update prices" task ? that's a system waiting to fail. It fails the day the person responsible is sick, busy, or just forgets. And the failure is invisible until a customer orders something you can't fulfil.

I felt this exact pain on my own store and fixed it for myself. The pattern ? feed in, transform, create-or-update, change-detect, schedule ? applies to any supplier or channel integration. I've now built it for three suppliers on my own business. The same approach works for yours.