Saltar a contenido

Product Information Management (PIM) — Fix Catalog#

What this is and why it matters#

Fix Catalog analyzes a store's product catalog, tells you exactly which data problems are hurting your search and sales, and lets you fix or enrich fields with AI — then download a CSV to apply the changes back on your commerce platform or ERP.

Two reasons this matters for the business:

  • Search and AI shopping agents only work as well as your data. A product with no brand in its title can't match "brand + product" searches. A product with no description gives semantic search nothing to embed. A catalog full of these problems is the single most common reason a store's search "feels bad" even when the search engine itself is working correctly.
  • Channel feeds (Google Shopping, Amazon, AI shopping agents) have hard requirements. Titles over their length limit get truncated or rejected, missing GTINs get products excluded from feeds, and incomplete structured data measurably loses placement — sites with complete product markup win price snippets on 60–75% of commercial queries, versus 10–20% for bare-minimum data.

Fix Catalog is also the tool used for new client onboarding (quickly finding and fixing data problems before a store goes live) and as a lead magnet (a prospect uploads their catalog and immediately sees, in numbers, why their current search underperforms).

How it works#

  1. Create an analysis from an already-indexed catalog of the store, or from a catalog URL (any supported connector: Fenicio, Shopify, VTEX, WooCommerce, XML feeds…). The catalog is snapshotted so every run after this reviews the exact same data, even if the live feed changes.
  2. Field mapping is detected automatically. Every check and recipe below is written against a role (title, brand, price…), not a literal field name — because "name" in Fenicio is "title" in Shopify is "nombre_producto" in a client's CSV. The mapping is inferred from the catalog type, the store's existing search configuration, or field-name heuristics, and can be corrected by hand if needed.
  3. Catalog health runs in two layers:
    • A deterministic profile over every single product — exact counts and percentages for completeness and format problems (missing brand, missing description, invalid GTIN, oversized titles…). Free and instant, no AI involved.
    • AI findings — a language model reviews a representative sample of products against a checklist (see below) and reports judgment-based problems a simple rule can't catch, each with a ready-to-use fix suggestion.
  4. Fix & enrichment recipes rewrite or fill in fields using AI, one field at a time or combined. Every recipe run always previews on a small sample first, so nothing is applied to the whole catalog by surprise.
  5. Every fixed value is validated against the recipe's rules (length limits, must-contain-brand, no ALL-CAPS…) before it's accepted; a value that still fails after one retry is flagged for manual review instead of being silently applied.
  6. Download the CSV with old and new values side by side, and apply it on your platform. Every analysis and every run stays saved and reviewable at any time — nothing here is a one-off script.

To keep this affordable to run at catalog scale, identical AI calls are cached, so re-running an analysis or fixing overlapping products doesn't repeat the same (billed) work.

AI findings — what we check#

"AI findings" are produced by asking a language model to review a sample of your catalog against a fixed checklist. These are the checks currently in that checklist.

Titles must contain the brand#

What it does: flags products whose title never mentions the product's brand.

Why it matters: "brand + product" (e.g. "nike remera dri-fit") is one of the most common ways shoppers search. A title that omits the brand simply cannot match those queries, no matter how good the search engine is.

Example

Field Value
❌ Before title: "Remera Dri-Fit", brand: "Nike" — title never says "Nike"
Finding "Titles missing the brand — 'brand + product' searches for this item will not match it."
✅ Suggested fix Apply Title: "{brand} {articleName}" (search-optimized) or a vertical title recipe

Titles free of color/size/promo noise#

What it does: flags titles that enumerate colors, sizes, genders, or promotional words instead of a clean product name.

Why it matters: noise in the title dilutes the keyword and semantic signal used by search — "CHAMPION TOPPER BORO III - AZUL TALLE 35" buries the actual product identity ("Topper Boro III") under attributes that belong in structured fields, not free text. It also reads as spammy in shopping feeds.

Example

Field Value
❌ Before "CHAMPION TOPPER BORO III - AZUL TALLE 35"
Finding "Titles are stuffed with color and size — this buries the actual product name and hurts keyword match quality."
✅ After fix "Topper Boro III"

Descriptions are informative and objective#

What it does: flags descriptions that are purely promotional, contain internal codes, or repeat the title without adding any real information.

Why it matters: a description that adds zero information wastes the text search embeds for that product and gives shoppers (and AI shopping assistants summarizing your catalog) nothing to work with when deciding if the product matches what they're looking for.

Example

Field Value
❌ Before description: "champion" (title already says "Champion...", description adds nothing)
Finding "Description duplicates the title and provides no additional information."
✅ Suggested fix Apply Description: short, objective, SEO-friendly

Fix & enrichment recipes#

These recipes rewrite an existing field ("fix") or fill in a field that's usually empty ("enrichment"). Every recipe can be previewed on a handful of products before running on the whole catalog.

Title recipes#

Titles get five recipe options because the "right" title format depends on your goal: pure search relevance, or channel-feed compliance for a specific vertical. Only one title recipe can be active per run.

Title: "{brand} {articleName}" (search-optimized)#

What it does: rewrites the title as {brand} {articleName}, dropping color, size, material, gender, and promotional words entirely.

Why it matters: the shortest, cleanest signal usually wins for on-site search — "Topper Boro III" matches far more query variations than a title cluttered with attributes that belong in structured fields.

Example: "CHAMPION TOPPER BORO III - AZUL TALLE 35""Topper Boro III"

Title: apparel feed format (Google Shopping)#

What it does: rewrites the title as Brand + Gender + Product Type + Color + Size + Material — deliberately keeps color and size, unlike the search-optimized recipe above.

Why it matters: this is Google's published structure for apparel listings. For Shopping feeds, color/size differentiate variants and are expected in the title; omitting them hurts feed quality scores and can prevent variant products from displaying correctly.

Example: "championes mujer topper""Topper Women's Running Shoes Black Size 8 Mesh"

Title: electronics feed format (Google Shopping)#

What it does: rewrites the title as Brand + Model number + Product Type + Key Specs.

Why it matters: shoppers searching for electronics very often search by exact model number. A title without it is invisible to the highest-intent segment of searches for that product.

Example: "auriculares inalambricos sony""Sony WH-1000XM5 Wireless Noise Cancelling Headphones"

Title: consumables feed format (Google Shopping)#

What it does: rewrites the title as Brand + Product Type + Quantity or Weight.

Why it matters: consumable shoppers compare products by pack size and price-per-unit; a title missing quantity/weight can't compete in those comparisons and often reads as incomplete.

Example: "cafe instantaneo nescafe""Nescafé Instant Coffee 200g"

Title: home goods feed format (Google Shopping)#

What it does: rewrites the title as Product Type + Key Attributes (material, color, dimensions) + Brand — brand goes last, unlike the other vertical recipes.

Why it matters: home/furniture shoppers search by what the product is (a sofa, a queen-size mattress) far more than by brand. Leading with the brand buries the part of the title that actually matches the query.

Example: "sommier ikea""Sommier Queen Size, Espuma de Alta Densidad, IKEA"

Description recipes#

Description: short, objective, SEO-friendly#

What it does: rewrites the description as one short, objective sentence (brand, category, material, use), stripping sales language, emojis, internal codes and HTML markup.

Why it matters: promotional or HTML-laden descriptions pollute the text used to build search embeddings and look unprofessional on the storefront. A clean, factual sentence reads better for both shoppers and search.

Example: "<b>OFERTA!!!</b> hermosa remera 100% calidad ¡ENVÍO GRATIS! cod: 4AP7-N10EN 😍😍""Remera deportiva Nike de algodón, ideal para entrenamiento diario."

Generate missing descriptions#

What it does: writes a factual 2–3 sentence description from the title, brand, category and any known attributes — only for products that currently have none.

Why it matters: missing descriptions are consistently one of the largest completeness gaps in real catalogs (often a quarter or more of SKUs). A product with no description gives semantic search nothing to embed, making it effectively unreachable through natural-language queries.

Example: title "Buzo liso", description empty → "Buzo liso de uso diario, disponible en varios talles. Ideal para looks casuales o para combinar con otras prendas deportivas."

Attribute enrichment#

These recipes turn information that's already buried in free text into structured, filterable attributes — extracting only where the source data actually supports it, never inventing values.

Extract missing brand#

What it does: infers the brand from the title/description when the brand field is empty. Returns nothing rather than guessing when it can't tell.

Why it matters: without a brand value, a product can't be found through brand-scoped search, can't populate a brand facet, and can't be targeted by any of the title recipes above.

Example: title "Zapatillas Topper Boro III", brand empty → brand: "Topper"

Extract color attribute#

What it does: extracts the color mentioned in the title/description into a structured color value.

Why it matters: turns "azul" buried inside a title into a real, filterable facet, and unblocks the apparel title recipe (and any Google Shopping feed) that expects color as its own attribute.

Example: title "Remera Dri-Fit azul talle M" → color: "Azul"

Extract material attribute#

What it does: extracts the fabric or material mentioned in the text into a structured material value.

Why it matters: material is one of the top filters shoppers use for apparel and home goods, and a required attribute in several Google Shopping categories.

Example: title "Camisa de lino beige" → material: "Lino"

Extract gender/audience attribute#

What it does: determines the target audience (mujer/hombre/unisex/niños) from the title, description and category.

Why it matters: gender is one of the most heavily used shopping filters and a required Google Shopping attribute for apparel; without it, "de mujer" / "de hombre" style queries can't reliably filter your catalog.

Example: title "Championes de Mujer Topper Boro III", gender empty → gender: "mujer"

Generate product highlights#

What it does: writes 4–6 short bullet highlights (one concrete feature or benefit per line), based only on what the product data actually supports.

Why it matters: highlights map directly to Google Merchant's product_highlight attribute and to Amazon-style bullet points — a scannable, structured summary that both shoppers and AI shopping assistants can use, instead of forcing them to parse a paragraph.

Example (generated):

Suela de goma antideslizante
Diseño transpirable de malla
Ideal para entrenamiento diario
Disponible en 5 talles

Normalization#

Normalize brand spelling#

What it does: canonicalizes brand casing and spelling against the catalog's own brand vocabulary, so "TOPPER", "topper " and "Topper" all collapse to the same value.

Why it matters: inconsistent spelling fragments a single brand into several buckets in facets and brand search, silently undercounting how much inventory you actually have for that brand and confusing filter UIs.

Example: brand values "TOPPER", "topper", "Topper " across the catalog → all normalized to "Topper"