Fabric documentation

Destinations

Where Fabric can send a catalog, who approves each publish, and the download cap.

A destination is somewhere Fabric sends enriched catalog content: a storefront, a product feed, or a file. Every destination has a kind, and the kind decides who has to approve a publish and whether it changes the state of your products.

Note

Fabric does not publish to ChatGPT, Perplexity or Gemini. Those AI channels read content that is already published on the web, so you publish to a destination they can read.

Available destinations

GET /v1/publishing/destinations returns this list, and it is the same for every organization.

DestinationKindOutputDefault deliverySupports delta mode
fabric_canonicalfileCSVDownloadNo
source_roundtripfileCSVDownloadNo
schema_orgfileJSONDownloadNo
google_feedfeedCSVHosted fileYes
ucp_googlefeedCSVHosted fileYes
acp_stripefeedCSVStripe APIYes
shopify_apistorefrontJSONLShopify Admin APIYes
sfcc_xmlstorefrontXMLSFTPYes

fabric_canonical is your catalog in Fabric's own format. source_roundtrip returns it in the format of the file you imported. schema_org is the structured data as JSON-LD documents.

google_feed and ucp_google add Fabric's content to products already in your Google Merchant Center account. Fabric never creates products there, so an offer with no match is skipped. ucp_google is the same feed plus the attributes a shopping agent reads under the Universal Commerce Protocol.

Approval and status by kind

KindNeeds an approverMoves products to Published
fileNoNo
feedYesNo
storefrontYesYes

A file destination needs no approval, because it only returns a file to the caller and changes nothing anywhere else. Approval is required where content reaches somewhere a shopper can see it.

A feed needs approval but does not move products to Published. The destination may not have fetched the feed yet, and only a storefront confirms that the content arrived.

Who may approve

RoleCanCannot
memberCreate and test connections, preview a mapping, start a dry run, download a file exportApprove a publish to a feed or storefront, activate a mapping version, cancel a running publish
ownerEverything

Only an owner can cancel, for the same reason: stopping an approved storefront write halfway leaves the store partly updated.

A dry run needs no approval. You run it to see the changes before you approve them.

An owner's approval covers every product in the run's scope, including products still in review. Ready to publish helps you choose the scope, but the run does not check it.

Connections

A connection links one destination to one brand and holds the credential Fabric uses to deliver.

  • The credential is encrypted before storage and is never returned. Only its last four characters are readable afterwards, which is enough to tell two keys apart.
  • A connection is disabled until a test succeeds, so a destination Fabric has never reached cannot be selected for a publish.
  • A brand can have two connections to one destination, such as two stores, or a staging bucket and a live one. If both are enabled, a run cannot tell which to use, so Fabric refuses the run instead of publishing to the one created last. Disable all but one, or archive the ones the run should not use.
  • An archived connection can still be looked up, so past runs still show where they published.

Only an organization owner can create, test or archive a Google Merchant Center connection. The connection reserves the Merchant Center account so no other brand can use it, and a publish rewrites that account's data source rules.

Downloading rather than publishing

POST /v1/publishing/export builds a file destination's output and returns it in the same request. The default cap is 5,000 products, and your organization or brand may have a different cap. Above the cap the request returns too_large with both numbers. Start a run instead: a run streams its output, can resume, and leaves a record. A direct download does none of these.

A feed or storefront destination is refused here at any size. Those need an approver and an audit trail, and a synchronous download can record neither.