Yasmos Automation
Filling a WooCommerce catalog with code and AI
Two tools I built to populate the Yasmos Electro store fast: a TypeScript CLI that scrapes competitor listings and imports them into WooCommerce with full SEO, and a Python + Claude-vision web app that writes complete, SEO-tuned product listings straight from a product photo.
A store needs hundreds of listings
A serious WooCommerce store needs a lot of product pages, and each one has to be written properly to rank: title, description, attributes, keywords, images with ALT text. Doing that by hand for an appliance catalog is slow and mind-numbing. So I built two tools to do it, both integrating through the WooCommerce REST API and the WordPress REST API, both writing full Rank Math SEO.
A TypeScript scraper-importer
The first tool (yasmosimport) is a ~5,000-line TypeScript CLI. You point it at a competitor's store and it discovers products via their sitemaps, scrapes each listing, maps it onto our own categories and brands, and imports it into WooCommerce, fully SEO-optimized.
Scrapes 5 platforms
Detects WooCommerce, Shopify, PrestaShop, Magento or custom sites and extracts products with a JSON-LD → meta → DOM cascade that survives messy markup.
Fuzzy taxonomy mapping
Maps scraped categories and brands onto the real store taxonomy with Fuse.js and a synonyms table; anything low-confidence goes to a human review queue instead of a wrong guess.
Idempotent, dedup-safe
A SQLite state layer hashes every source product, so re-runs update existing items by hash or SKU instead of creating duplicates.
Writes Rank Math SEO
Every imported product gets a localized SEO title, meta description, focus keywords and schema.org Product JSON, written through the WordPress REST API.
It is a real pipeline, not a script: a SQLite job/state layer, concurrency control withp-queue, robots.txt compliance and exponential backoff, plus a CLI with dry-run, review and mapping commands.
Listings written by AI, from a photo
The second tool is a Python + Flask web app that turns product photos into finished listings using Claude vision. You drag in appliance images and the model reads the product and writes the whole listing: SEO title, slug, meta description, five keywords, a long HTML description, attributes, tags and per-image ALT text, all in French and tuned for Google Morocco.
Behind a no-framework drag-and-drop UI, it compresses images to the model's limits with Pillow, uploads them to the WordPress media library with AI-written ALT text, classifies each product into the store's real shipping classes, and sets the brand as a proper WooCommerce attribute. The heart of it is a hand-tuned ~360-line SEO prompt that enforces exact character budgets and per-category keyword banks.
Two angles on the same problem
Together they show two ways to solve “fill this store fast”: one by structured scraping and fuzzy mapping, one by LLM vision and generation. Both power the real catalog behind Yasmos Electro.