Before you start
- A Meta business portfolio (Business Manager) that owns at least one product catalog, created in Commerce Manager. Fluid sends products to an existing catalog; it doesn’t create one.
- A person who is an admin of that business portfolio.
- A Fluid API token for the company, or your own sign-in with
fluid login. It needs company admin access: Company settings permission to connect and disconnect, and Products permission to choose and fix products. - Install and sign in to the CLI:
fluid channels command prints JSON. Failures print a JSON error on stderr and exit with a non-zero code.
Steps
1
Start the connection
url and, with --open, opens it in your browser. Nothing changes in Fluid until someone approves it in the next step. Without --open, send the url to the person who will approve it. The link works once and expires after 10 minutes; run connect again for a new one.2
Approve Fluid in Meta
Sign in to Facebook as an admin of the business portfolio and approve the access Fluid asks for. Fluid connects the first business you manage and every catalog it owns, and lists products in the first. If Meta says the app isn’t available to you, contact Fluid support.Meta then sends the browser back to Fluid admin. The address ends in The step is done when
connect=ok when the connection saved, or connect=error&reason=... when it didn’t. Whatever the page shows, check the result from the CLI:connection.status is connected. connection.account names the catalog Fluid connected.3
Choose the products
This changes live configuration: it sends products to Meta. Decide first between the whole catalog and selected products; see Whole catalog or selected products.To send only some products, name them instead:The output’s
added counts the products sent. Each one starts as a draft and publishes in the background.4
Check the sync
listings.byStatus counts the listings in each state and listings.issues counts the ones that need you. Publishing and Meta’s review take from minutes to a few days. Check again later, backing off between checks, rather than in a loop.5
Fix rejected products
action and a hint that says what to fix. Fix the product in Fluid, then:- For
action: retry, retry every failed publish at once. This changes live configuration:fluid channels issues meta --retry --yes. - For
action: fix_and_relist, remove the product and add it again so the corrected version is sent:fluid channels catalog meta --remove 4127 --yes, then--add 4127 --yes. - For
action: resolve_on_channel, Meta took the listing down. Check the reason in Meta.
count is 0.Whole catalog or selected products
Fluid lists the products you send, one listing per product. There’s no setting that keeps the whole catalog in step with Meta on its own, so the choice is about which products you send now and how you add new ones later.
Start with a few products if you haven’t sold on Meta before. You’ll see what Meta rejects before you send everything.
Each product needs, before it’s sent:
- A SKU on every active variant, unique across the products you list on Meta.
- At least one active variant.
- A title, description, price, and image. A product with no image of its own is sent with your company’s fallback image, which Meta’s review may reject.
fluid channels issues meta.
Meta reviews each product for every surface it’s tagged for, such as Facebook shops, Instagram, and WhatsApp. review shows each surface’s result. auditStatus rolls them up: audit_failed if any surface rejected it, auditing while any is pending, and approved once all approve.
Edits you make in Fluid after a product is sent, including price changes, aren’t sent to Meta. Remove the product and add it again to send the current version. Fluid sends every product as in stock, whatever its inventory.
To take products off Meta, use --remove with product IDs, or --remove-all for every listed product. Removing a product deletes it from the Meta catalog.
What the status means
Troubleshooting
connectfails with422. Fluid couldn’t start the connection, usually because the channel isn’t set up for your company yet. Contact Fluid support.- The address after approving ends in
connect=error. Thereasonsays why.invalid_statemeans the link was used twice or expired: runconnectagain for a new one. - The reason is
no_business. The Facebook account you approved with doesn’t manage a business portfolio. Sign in as an admin of one and runconnectagain. - The reason is
no_catalogs. The business portfolio owns no product catalog. Create one in Commerce Manager, then runconnectagain. - A command fails with
404. The company has no Meta connection. Run step 1. - A command fails with
403. Your token lacks the permission that command needs: Company settings for the connection, Products for products. - Adding or removing products fails with
422. The connection isn’t active. Checkconnection.statusand reconnect if it isn’tconnected.
Disconnect
stillListed counts the products left on Meta.
Use the API directly
The CLI calls these company operations, all authenticated with a Bearer token:- Start the Meta business-login connect flow, which returns the sign-in
url. - Get the company’s Meta commerce connection.
- Publish Fluid products to the connected Meta catalog.
- List the company’s Meta catalog listings.
- Retry a failed Meta catalog listing publish.
- Unpublish a Meta catalog listing.
- Disconnect the company’s Meta commerce connection.