# Facebook Catalog

**Category:** Marketing  ·  **Min plan:** Free  ·  **Slug:** `facebook-catalog`

Auto-generate a Facebook/Instagram product feed (XML) for your store. Just copy the feed URL into Facebook Commerce Manager.

## Video tutorial

[Facebook Catalog](https://www.youtube-nocookie.com/embed/rgylbE23l-8)

## Features

* Auto XML feed
* Facebook Commerce Manager
* Instagram Shopping
* Auto sync
* Zero coding
* Product images included

## What this add-on does

This page covers the **add-on mechanics** — where the feed lives, what it contains, what settings it exposes. For how to actually *use* the feed in Meta Commerce Manager and run Dynamic Product Ads, see [Marketing → Facebook Catalog](https://dzbuild.com/docs/marketing/facebook-catalog.md).

DZBuild generates a Facebook-compliant XML feed for your store. Every active, visible product in your catalog appears in the feed, with images, prices and stock status. You paste the feed URL into Meta Commerce Manager and Facebook re-fetches it automatically.

## There is nothing to activate

Facebook Catalog is on for every store and cannot be turned off. Its card sits in the **Management Tools** section at the top of [`/dashboard/addons`](https://dzbuild.com/dashboard/addons), with a single **Manage catalog** button that opens `/dashboard/addons/facebook-catalog`. It never appears in the sidebar.

## The Facebook Catalog page

`/dashboard/addons/facebook-catalog` shows:

* your **feed URL**, with a copy button,
* a **Preview** link that opens the XML,
* a **Clear cache** button that clears the cached copy,
* counts of products, images and categories, plus the last-sync time.

Your feed URL depends on your domain

The feed lives at `https://<your-store-address>/feed/facebook.xml`, on your store's primary address. When your own domain is live and set as the primary address, the feed URL shown on this page moves to that domain: copy the new URL into Commerce Manager. While your free address is the primary one, the URL does not change.

## Settings

The add-on exposes three settings:

| Setting               | Default         | What it controls                                                                                                                                                                                     |
| --------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Brand name**        | Your store name | The `g:brand` field on every product in the feed. Empty falls back to store name.                                                                                                                    |
| **Product condition** | `new`           | A dropdown — `new`, `refurbished` or `used`. Anything else is coerced back to `new`.                                                                                                                 |
| **Currency**          | `DZD`           | A 3-letter ISO code. Letters are uppercased when you save, and anything that is not 3 letters is set back to `DZD`. It only changes the currency label appended to the price; no conversion happens. |

## What's in the feed

One item per product — variants are **not** exported and there is no `item_group_id`, so a product with variants appears once, at its base price. Each item carries:

* `g:id`, `g:title`, `g:link`
* `g:description` — the short description first; if empty, the long description with HTML stripped; if that is empty too, the product name. Truncated at 9,999 characters.
* `g:price`, and `g:sale_price` when the product has a compare-at price higher than its current price (the original goes in `g:price`, the current in `g:sale_price`, so Facebook shows the discount)
* `g:availability` — `in stock` or `out of stock`
* `g:brand`, `g:condition`
* `g:mpn` — from the product SKU, when set
* `g:product_type` — from the product's primary category
* `g:image_link` (cover image) and up to 10 `g:additional_image_link` entries

Draft (non-active) and hidden products are excluded. **Out-of-stock products are included**, exported with availability `out of stock` — Facebook decides whether to show them.

## Facebook re-fetch

The feed is cached on DZBuild for one hour. If you force a re-fetch in Commerce Manager inside that window, Facebook is served the cached copy and your change will not appear.

To publish a change immediately: click **Clear cache** on `/dashboard/addons/facebook-catalog` to clear the cache, then re-fetch in Commerce Manager.

## Tips

* Set **Brand name** to a real brand if you sell branded items — Facebook uses it for product matching across sellers.
* The feed ignores query parameters — adding `?lang=ar` or `?lang=fr` returns exactly the same XML.
* The add-on is free; running ads against the catalog is paid (your ad spend on Facebook).
* See the marketing-side guide for [DPA setup, retargeting strategies and Instagram Shopping](https://dzbuild.com/docs/marketing/facebook-catalog.md).
