Fabric documentation

Changelog

What shipped in Fabric, newest first.

Notable changes to Fabric, newest first. Each entry lands here when its release ships.

0.18.1

Changed

  • Attribute coverage is measured against each category's full list of expected attributes. Some categories were compared with a shorter list, so attributes shoppers ask about were left out of the coverage number. A category's coverage can now rise or fall, because it is measured against more attributes. This is rolling out category by category.

0.17.0

Added

  • Fix incoming catalog data with a rule written in plain language. Fabric previews the rule on your whole file before the import runs, and keeps your original values.
  • BigCommerce exports import with their variants grouped correctly. The upload card names the platform your file came from.
  • When an import can't tell whether some rows are variants of one product or separate products, it no longer guesses. It keeps them separate and asks you in the Queue; merge them or keep them apart, and a re-import keeps your answer.
  • One Queue in the navigation, with two tabs: Needs mapping and Needs classification.

Changed

  • An import now files products into your existing categories instead of creating new ones. A product that doesn't match a category is placed by AI, marked "Picked by AI", or waits in Needs mapping. A catalog with no categories yet still builds its tree on the first import.
  • Category matching on import is more accurate, and refuses to guess when it isn't confident.
  • The product descriptions Fabric writes, and you review, now reach AI channels: your Shopify product pages' structured data, the Google, UCP and ACP feeds, and the catalog export.
  • Product descriptions with formatting keep their paragraphs, and are read and shown safely.

0.16.0

Added

  • The catalog tells you when it has stopped updating. If the connection drops, a "Not live" badge shows until updates resume.
  • Drag products onto a list to add them, and take them back out.
  • Manage a view or list from its tab, without switching to it first.
  • Shift-click a checkbox to select a range of products, select a whole group from its banner, or select with the keyboard.
  • Sort by more than one column, turn a sort off, and fit a column to its content.

Changed

  • Attribute columns are grouped by confidence (low and high), and each group starts collapsed.
  • Catalogs with many attribute columns scroll and load faster.

Fixed

  • Keeping your catalog open in more than one tab no longer stops it updating. Edits made by a teammate, or in another browser or tab, appear within about a second, without reloading.

0.15.2

Added

  • Publishing documentation, and an API reference that matches the API. New guides for connecting Shopify, publishing over the API, and the destination catalog reference, now in the developer docs alongside the API reference. The /v1 reference also describes the errors you actually receive: publishing operations answer 400 refused and name the role, while 403 is reserved for configuration writes and operations your organization is not entitled to.

Changed

  • Clearer tooltips on Results charts. Tooltips on your Results charts now carry a colour swatch matching the bar or line they describe, list the series in the order the chart draws them, and name the metric in the label instead of trailing it after the number. The header names the full week, and the click-through-rate chart no longer shows a share row it never had data for.

Fixed

  • Shopify storefronts are readable again. If your storefront is hosted on Shopify, Fabric could not read it: storefront discovery and the shopping agent both turned it away. Fabric now judges a storefront address by where it actually routes, so Shopify-hosted stores are reachable again.
  • Printing an assessment gives you the assessment. Printing or saving a scorecard now produces the assessment page you are looking at, rather than a second, different document.
  • Run summaries count every attribute that came back empty. When the model declined to produce an attribute, nothing was recorded, so a product that filled one field in nine could still report that nothing was missed. Those attributes are now counted. You will see higher "missed" numbers than before, because these attributes were undercounted until now. Enrichment quality has not changed.
  • Wiping a catalog now clears its publish history. Wiping a brand's catalog left every past publish run listed under Publishes, pointing at products, views and lists that no longer existed. The history now goes with the catalog it described.

0.14.1

Added

  • Ask Fabric on Results. Results now offers Ask Fabric, so you can ask about the figures on the page, such as why a category moved or what changed, without leaving it.
  • Runs report what was removed. A run summary now names every value Fabric removed, with its confidence and the reason. Previously a run could report nothing missed on a product that had lost most of its new attributes.

Changed

  • Enrichment keeps more of what it finds. When Fabric was unsure about an attribute it had generated, it deleted it. It now keeps the value and flags it for review. Only a value that doesn't belong in the field is removed. Attributes drawn from your own product copy are no longer discarded without a trace, and you decide what to keep.
  • The review step now sees your product photographs. Attributes that are only visible in an image (colour, material, pattern, silhouette, closures) were being checked against the product text alone, and dropped for lack of evidence they were never shown. Both the attribute and FAQ review steps now get the images the values were generated from.
  • "What Fabric changed" is easier to scan. Each row's state badge now lines up in a single column instead of sitting after the field name, so a long list of changes can be read straight down.

Fixed

  • Shared attributes are judged by their real name. An attribute that several product families share, such as "Best Use" or "Weight", is stored internally under one family's key. Fabric was reading that key as the field's name when checking a generated value, so on a running shoe it could see a key naming climbing shoes, conclude the field did not belong to the product, and remove a correct value. It now reads the field's own name, which is the one you see in your catalog.
  • Shopify attributes are grouped by the family they belong to. For catalogs imported from Shopify, every metafield was being grouped under a single family, so attributes from unrelated products (a cross-country ski's weight, a running shoe's colour) were treated as related. They are now scoped to the family their metafield actually names.

0.12.0

Added

  • Search your catalog from the top bar, and filter by title or SKU.
  • Review an enrichment run product by product, with every flagged value shown, then publish or export the run's products straight from the run card.
  • See what Fabric changed on each product, before and after.
  • Narrow an enrichment guideline to a single category from Settings.
  • Choose which Specs & FAQ sections open on your published product pages.
  • Map your own Vendor SKU during catalog import.

Changed

  • The Catalog Assessment and the report you download now read as the same document, with the same sections and wording in the same order.
  • "What to fix first" names the action to take, instead of repeating the finding above it.
  • The readiness score has a redesigned gauge.
  • The website-structure card describes how much of your site it read in words (nearly every, most, many, some) rather than quoting a page count.
  • Run summary and publish now open as a side panel instead of taking over the screen.
  • Publishing to UCP and to Google Merchant Center is now set up in one place.
  • A finished publish appears in Notifications & Activities.

Fixed

  • Catalog files that are not UTF-8 keep their characters on import instead of losing them.
  • A finished enrichment run no longer overwrites a value you had just corrected.
  • More of your catalog is matched to a category: your categories now map onto any level of Fabric's category taxonomy, not only its deepest levels.
  • The same catalog now produces the same categories on every run.
  • A matched category is no longer reported back to you as unmatched.
  • Attribute coverage now appears for categories that have no standard attribute set, measured against the attributes the category itself uses.
  • Catalogs with unknown stock levels, and products without a GTIN or MPN, are now accepted when you publish to Stripe.
  • The AI-enriched mark is readable in dark mode.

0.4.0

Added

  • Live catalog updates. Edits from teammates and results from a running enrichment now appear as they happen, without a refresh.
  • Filter, sort and group the whole catalog, whatever its size. Fabric previously worked over the 5,000 most recent products and sorting was unavailable above that. Both limits are gone.
  • A public API. Create a key in Fabric and read or write products, attribute values, imports, exports, enrichment runs, guidelines, saved views and lists from your own systems.
  • Webhooks. Subscribe to events and receive signed, automatically retried deliveries.
  • Connect Fabric to an AI assistant. Fabric now supports MCP, so an assistant can work with your catalog directly.
  • Publish enriched products to Shopify from a connected store.
  • Connect a Shopify store through a guided install rather than by hand.
  • Catalog Builder. Build a catalog from your suppliers' own pages and review everything found before any of it reaches your products.
  • A "Needs mapping" queue. Products that cannot be graded yet now sit in one place with a count, and can be mapped in bulk.
  • Change a product's category from the grid, the product panel, or a selection.
  • Resizable catalog columns, remembered per tab.
  • Attribute coverage by category, so you can see which parts of the catalog are thin.

Changed

  • A category mapping now attaches only to a specific category, never to one that has sub-categories. Products are graded against the attributes on the exact category they sit in, so a mapping on a parent graded nothing. Mapping happens one level down, and the Needs mapping queue shows what is waiting.
  • Enrichment and publishing now skip products Fabric cannot grade instead of processing them against the wrong expectations. Skipped products say why.

Fixed

  • The catalog no longer becomes unresponsive on large catalogs. Switching tabs and working the grid are substantially faster.

0.3.0

Changed

  • A rebuilt blog. Fabric's blog has been rebuilt. The latest writing leads the page in a featured carousel, and you can now browse by topic or search for a post rather than scrolling the whole archive. Every view has its own link, so a topic or a search can be shared and bookmarked. Images load at the size they are shown, so pages open faster.
  • Clearer links when you are reading. Links inside articles and documentation now use a colour that meets contrast guidelines, so they stand out from the surrounding text instead of blending into it.

0.2.0

Added

  • Write and edit enrichment guidelines, and scope a guideline to a single attribute, so a wording rule applies exactly where you want it instead of across the whole catalog.
  • Every enrichment run reports the fields it was asked for and did not produce, so a gap is visible instead of silent.
  • Category matches now show why they matched, and can be reviewed and corrected instead of taken on trust.
  • Attribute history is now tracked per variant, so you can see what changed on which variant.
  • Rename views and lists, with duplicate names rejected up front.
  • A saving mark on a view tab tells you when its configuration has been written.
  • Fabric now generates FAQ content and search keywords for your products, editable entry by entry.
  • New Shopify blocks put your enriched attributes on your product pages: a specifications table for shoppers and schema.org markup for AI crawlers, with no theme code and no JavaScript.
  • Member management, plus organization and brand archiving.

Changed

  • Applied guidance now rewrites the imported value rather than sitting beside it, so what you export is what the guideline asked for.
  • Your categories map only to a specific end category, never to a broad parent, because shoppers ask about specific categories.
  • The category badge counts products instead of sub-categories, so the number means what it looks like.
  • Every attribute is reachable in settings, and the attribute badge reports the real count.
  • Clearer import wizard wording, with unavailable sources marked as such.
  • Catalog data is now isolated between organizations at the database level, not only in application code.
  • Hardened sign-in: unauthenticated requests are rejected on internal routes, redirects to look-alike domains are blocked, and the email check is rate-limited.

Fixed

  • Products with nested variants import as variants instead of being discarded, and stay grouped under the right parent.
  • Product images are read with the same rule that wrote them, so images no longer go missing on import.
  • Exported SKUs are derived the way the import derived them, so a catalog round-trips.
  • Enriched values are written back into nested product structures instead of being lost.
  • Export downloads and column mapping work again.
  • Review actions are guarded against a double click.