Shopify Migration • Python Automation • Price Intelligence

Beauty Corner.

A Greek beauty marketplace rebuilt on Shopify with a cleaner luxury storefront, automated supplier operations, and a custom price-intelligence feed built for a deep fragrance and cosmetics catalog.

Beauty Corner homepage preview
Timeline2025 - Present
RoleShopify, Python, AI, feeds
PlatformShopify + GraphQL

Not just a storefront. A commerce operating system.

Beauty Corner needed more than a visual migration. The old CS-Cart setup created broken URLs, feed issues, duplicate product risk, and slow catalog operations. I moved the store to Shopify and built the surrounding automation needed to manage a beauty and fragrance marketplace at scale.

The work connected storefront UX, supplier product data, marketplace feeds, image sourcing, tracking, and AI-assisted shopping into one cleaner Shopify foundation.

3Supplier systems integrated
2Custom XML marketplace feeds
50Concurrent image-scraping threads
Performance · month overview

A 30-day window that proves the rebuild.

The migration was never just a visual cleanup. Across a single 30-day window the rebuilt store moved close to €15K in sales from 314 orders, pulled 13.5K sessions, and held a healthy conversion rate — on a deep catalog that used to be slow to operate.

Shopify analytics: 25 May – 24 Jun 2026.
€14,779.82Total sales · last 30 daysNet €11,578.75
314Orders placed156 fulfilled
13,544SessionsPeak 12 Jun
1.36%Conversion rate185 completed checkouts
€39.50Average order valuePer order
4.59%Returning customer rateRepeat buyers
Storefront UX

Premium navigation for a deep beauty catalog.

The storefront direction focused on fast discovery: strong search, clear category paths, luxury fragrance merchandising, brand browsing, and mega menus inspired by high-end beauty retail.

Beauty Corner category page with product filters

Automation engine

  • CS-Cart to Shopify migration with product, collection, URL, and feed cleanup.
  • Python + GraphQL Admin API scripts for SKU prefixes, duplicate cleanup, stock sync, and supplier pricing.
  • Custom Google Merchant Center and Skroutz XML feeds hosted from the VPS for cleaner marketplace control.
  • Image scraping pipeline with ScraperAPI, Claude Haiku verification, and missing-image reporting.

Python handled the work Shopify apps could not own cleanly.

Supplier files were matched by barcode/EAN, SKU prefixes were enforced, testers stayed separate, and price/stock changes could be processed through safer delta workflows.

A Flask dashboard, BeautyCorner Hub, added drag-and-drop uploads, background job threading, and live logs so operational tasks could run without fragile manual steps.

Price intelligence

A custom price feed that watches the whole Greek market.

With a catalog this large, manual price checks do not scale. I built a custom multi-source price feed that matches every product by EAN and pulls live Greek-market prices, so margins are set against real competition instead of guesswork — you can see who is undercutting you and by how much.

Merchant feedGoogle Shopping · GR

Every Greek merchant carrying the exact item — the full offer list with each shop and price, plus the lowest price and who is holding it.

Skroutz feedskroutz.gr

The Greek price-comparison engine, read for the lowest live shop price on the exact matched product variant.

Built to fail closed

  • Matches every product by EAN / barcode, then a strict size-aware fuzzy title check.
  • Rejects samples, decants, vials, and gift sets in both Greek and English.
  • Drops offers of a clearly different size or suspicious low-price outliers.
  • Fails closed — a blank beats a wrong price, so a cheap decant never poisons the lowest market price.

What it appends per product

  • Lowest market price and which source it came from.
  • Google lowest price, the merchant who has it, and the number of offers.
  • The full merchant offer list captured for the item.
  • Skroutz price and link for the matched variant.
Pythonasyncio + aiohttpSize-aware fuzzy matchingScraperAPI proxy layerResumable runs

Brand discovery made easier for a large catalog.

The All Brands page gives shoppers a cleaner way to find a beauty house quickly, move through alphabetized brand groups, and jump from discovery into the right product collection.

For a marketplace-style beauty store, that page matters because many customers already know the brand they want. The interface keeps that path direct instead of forcing them through search.

Beauty Corner all brands discovery page