Connect your Adobe Commerce store
The Bruxel_Sync module keeps your Adobe Commerce catalog and your Bruxel content on the same page: the store sends the products, Bruxel returns the descriptions.
Chapters
Video transcript
In this video, you connect an Adobe Commerce store to Bruxel, with the module you install in your Magento.
First, an API key for the store. Someone with the administrator role creates it.
It gets five permissions: read and write the catalog, read and write attributes, and export.
The key is shown only once: copy it and paste it into your Magento.
In the Magento admin, the Bruxel_Sync module installs turned off. With the key pasted, you enable it.
“Test connection” confirms the key responds and which Bruxel account it's using.
Each language maps to its store views: here, English to the English store view.
And you choose which Bruxel field is written to which Magento attribute: the description, the short one and the metadata.
The store sends its products: SKU, name, category and the attributes you choose. Here, three arrived.
Your store owns the catalog; Bruxel only sends back the generated content.
In Bruxel, you generate the description as usual.
As soon as it's published, it's ready to go back to the store.
The module brings down what's published: with the real-time notice or with its hourly check. Here you can see what it wrote.
For the first sync it has brakes: a test mode, and not overwriting fields that already have text.
And in the store, the product page already has Bruxel's description, in its language view.
In the next video: webhooks, the real-time notice your system receives from Bruxel.
How it works
You install a module in your store. It calls Bruxel; Bruxel never reaches into your Magento. Two things travel, each one way:
- From your store to Bruxel: the products — SKU, name, category and the attributes you choose. That is the raw material for generating.
- From Bruxel to your store: the already published content, written into the product page, in the store view that matches each language.
Your store owns the catalog. What it sends (name, brand, category, attributes) overwrites whatever is in Bruxel; if you edit those fields in Bruxel, the next push from the store overwrites them. What Bruxel sends is the generated content, and nothing else.
What you need
- Adobe Commerce or Magento Open Source 2.4.7, 2.4.8 or 2.4.9 — Cloud PaaS or your own server.
- A Bruxel API key (Account → API keys) with catalog, attributes and export permissions. Someone with admin or owner role creates it.
- Someone with technical access to the store: the module is installed with Composer and configured from the Magento admin panel.
- The languages Bruxel syncs are Spanish, English, French and Portuguese.
The four configuration steps
Everything happens in the Magento panel, under Stores → Configuration → Bruxel → Sync. The module installs disabled: nothing moves until you enable it.
- Paste the API key. The «Test connection» button confirms it responds and tells you which account it is reaching.
- Map each language to its store views. A language with no store views mapped simply is not written: that is not an error, it is a decision.
- Choose which catalog attributes travel to Bruxel as context for generating.
- Map the content fields: which Bruxel field is written into which Magento attribute. The field names are the ones in your own generation setup.
The real-time notice
So the store finds out the moment you publish content, you register a webhook in Bruxel (Account → Webhooks) pointing at the module address, subscribed to the description-updated event. That registration is manual in this version.
The first sync, without surprises
The first time Bruxel writes into a catalog that already has descriptions is the delicate moment. The module ships with two brakes on:
- A preview mode that shows exactly what would change — product, field, store view, current and new value — writing nothing.
- An option, on by default, that does NOT overwrite fields that already have text and that Bruxel never touched. You turn it off once you reviewed the diff and decided.
On top of that, before writing a field for the first time, the module saves the value that was there. There is a restore command that puts it back, exactly as it was.
Which products travel
The ones enabled and visible in the catalog. That deliberately leaves out the hidden variants of a configurable product: generating content for them would burn credits on pages your store does not show. The parent configurable does travel, and a variant that is visible on its own travels too, stating which its parent is.
What it writes in your store, and what it does not
- It writes only the attributes you mapped, and only if they are text and their scope is «store view» — a global attribute cannot hold one value per language.
- It never writes the product URL. Changing it from here would leave the previous address with no redirect, and that is a silent way to lose traffic.
- It never deletes. A field that arrives empty, a product with no published content or one unpublished in Bruxel all leave your page as it is.
What this version does not cover
- Stores with several websites: the module writes per store view, so that mapping needs a manual review.
- Adobe Commerce as a Cloud Service (the SaaS version).
- Images do not travel toward the store.
When something does not add up
The module ships two diagnostic screens in Magento, under System, and its own log file. Almost everything is explained there:
| What you see | What it usually is | What to do |
|---|---|---|
| Nothing reaches Bruxel | The module is disabled, or the Magento cron is not running | Check the switch and that cron is active |
| The queue fills up and nothing moves | The key stopped working and the module paused itself | Fix the key, test it and resume with the queue command |
| One row fails and the rest keep going | That language has no store views mapped | Map it, or ignore it if you do not sell in that language |
| Every row fails with the same error | The field mapping has an attribute that does not exist, is not text, or is not per store view | The message says which line and what to change |
| Content arrives but is not visible in the store | Reindexing or a cache flush is pending | Wait for the indexer cron or run it by hand |
| Notices stopped arriving days ago | Bruxel disabled the webhook after several failures | Reactivate it in Account → Webhooks; the module warns you on its queue screen |