Conviro for Magento 2 — release notes 1.4.0
Status: released 2026-09-26 (repo.conviro.io), commit 8214a08ee; superseded by 1.4.1 on 2026-09-27 — see RELEASE-NOTES-1.4.1.md. These notes describe the code on feat/magento-10-10 as of 2026-09-25 (release gate R3 included). Everything below was measured on local test stacks — Magento 2.4.7-p4, and in the version matrix of 2026-09-26 also 2.4.4-p13 and 2.4.9 (+ Hyvä) — never on a merchant store.
In short
- Connect in a few clicks. A new setup wizard (Stores › Settings › Conviro Setup) connects the store through the Conviro dashboard — no API key to copy — and walks you through store views, data sync and AI permissions.
- Checkout never waits on Conviro. Events are queued inside Magento and delivered in the background every minute, with retries. With Conviro down, an order was placed normally and its events arrived later, once.
- Signed and least-privilege. Conviro now uses Magento's own OAuth 1.0a to read your store, with only the permissions it needs; everything exchanged in either direction is signed.
- See what works. An Integration Health card tells you, row by row, whether the connection, authentication, webhooks, catalog, orders, cron, version and environment are fine — and exactly what to do when not.
- Your data in Conviro from day one. Initial sync of catalog, stock, recent order history (30 / 90 / 365 days) and, if you choose, customer accounts — kept without names, addresses or phone numbers, e-mails only as a one-way hash.
- You decide what the AI may do. In Conviro: every order action is off until you switch it on, and then the customer confirms and your team approves. Answers show your team which live store facts they were based on.
What's new
| Area | New |
|---|---|
| Setup | Setup wizard with browser-mediated connect, store-view selection, data sync choices, AI permissions and a live verify step; Reconnect and Disconnect. |
| Reliability | Local event outbox, background delivery, retries, held and failed events you can retry or repair. |
| Data | Stock updates as they happen (one per product), historical order and customer sync, re-sync buttons, a repair job. Progress in Magento and in the Conviro dashboard. |
| Accuracy | Prices and stock in the shopper's store view, currency and language; MSI salable quantity instead of the raw source quantity; configurable variants. |
| Visibility | Integration Health card, Test connection, Send test event, diagnostics download. |
| Trust | Trust layer with source classes and a grounding indicator in the Conviro inbox; AI action policy with approvals and an audit log; an "AI Answers and Revenue" card in the Magento admin. |
| Revenue | Revenue influenced by Conviro — by conversation, product link and recovered cart, per currency, "influenced", never "caused" — with consent-gated first-party cookies (Privacy). |
| Help at the right moment | Payment assist: after a failed payment the chat offers help once, in the shopper's language; your team sees the failure on the conversation. Cart-recovery e-mails in the shopper's language, linking to your own cart page. |
| Privacy | customer.deleted propagates customer deletions; order.placed sends only what Conviro uses; retention for the module's own tables; Disconnect can take the widget off the storefront. |
What changes when you upgrade
- Commands. In production mode run both compile steps — 1.4 changed class constructors — as the owner of the Magento files (not root), in maintenance mode from the first step to the last (corrected in the 1.4.1 docs; each step, the locales to name, and the release-directory method: Installation › Upgrading):
bin/magento maintenance:enable composer update conviro/module-aichat bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy -f en_US <your store locales> bin/magento cache:flush bin/magento maintenance:disable - Magento cron is required. Events and syncs are delivered by cron. If it is not installed:
bin/magento cron:install. - Your connection moves to OAuth 1.0a by itself within minutes (cron). If a proxy in front of Magento terminates HTTPS, the health card may ask you to pass
X-Forwarded-Proto; until then the old connection keeps working. - Cart recovery and payment assist are held if you had switched them on: nothing is sent until you confirm in the wizard (step 5) or the configuration page. They never actually sent data in 1.3.x.
- Custom admin roles: the wizard needs the new permission
Conviro_AiChat::setup— check the roles that should connect or disconnect the store. - Store views: all are selected by default; untick any Conviro should not see (wizard step 4).
- In Conviro: AI order actions are off until you enable them, so flows that used the Magento cancel / return / quote nodes stop writing until you do.
- Some settings are now installation-wide only (API key, AI capabilities); values saved per website in 1.3.x are ignored.
- Save Config now talks to Conviro (in 1.3.x the observer never ran): an unreachable Conviro makes a save show a warning, never lose your settings.
- Disconnect removes the chat widget from the storefront unless you tick Keep the chat widget on my storefront.
- Returns and B2B quotes asked for by the AI or a flow need Order-action assistance on (and Adobe Commerce); otherwise they become tasks for your team.
- Revenue attribution needs a consent signal (security review, 2026-09-25). Without Cookie Restriction Mode, a consent platform the widget reads or Google Consent Mode, the attribution cookies are no longer written. If your region does not require consent for analytics cookies, set Attribution cookies without a consent signal = Yes (website scope).
- New signing secrets. The first Save Config (or reconnect) after the upgrade fetches one secret per direction; nothing to do.
- In Conviro: Customer confirms for an AI action now means the customer types a code sent to the order's checkout e-mail, and only the workspace owner can choose that mode; the store's order, customer and sync-job history is kept 24 months / 90 days and deleted 30 days after a disconnect (or at once with Delete store data now).
Full guide: Upgrade 1.3.x → 1.4.0.
Required versions
- Minimum secure module version: 1.3.5 (anything older shows SECURITY UPDATE REQUIRED).
- Magento 2.4.4 or later (
magento/framework ^103.0.4), PHP 7.4 or 8.1–8.4. Install-tested (fresh and upgrade from 1.3.5, the full dev suite): 2.4.4-p13 on PHP 8.1, 2.4.7-p4 on PHP 8.3, 2.4.9 on PHP 8.4, with Luma, and Hyvä 1.5.2 on 2.4.9. Details: Supported versions.
Release order (for Conviro)
The exact commands, checks and undo steps: docs/plans/MAGENTO_1_4_0_RELEASE_RUNBOOK.md in the Conviro repository (2026-09-26).
- Apply migrations 0219–0230 (idempotent, pre-SQL, in number order: 0226 after 0134, 0221 and 0225; 0228 after 0134, 0220–0222, 0225 and 0226; 0229 after 0224) and deploy the backend (and the web dashboard) first — an older backend rejects the new registration (
oauthfield,forbidNonWhitelisted), and 1.4.0 posts to/v1/api/magento/events, which only the new backend serves. That deploy also publishes the release candidate 1.4.0-RC1 in the registry; stores with Composer's defaultminimum-stability: stabledo not pick it up by themselves. - Pilot: install
1.4.0-RC1on one store (composer require conviro/module-aichat:1.4.0-RC1+ the four commands above) and watch the Magento SLOs for 24–48 h. (2026-09-26: the owner skipped the pilot and released 1.4.0 directly — only one store uses the module.) - Set the module to 1.4.0, build the registry (
node scripts/build-composer-registry.mjs), commitsrc/assets/composer/, deploy the API, and check the zip answers 200 fromrepo.conviro.io. - Only then bump
MagentoService.MODULE_LATEST_VERSIONto 1.4.0 and deploy, so the in-admin update notice never points at a version the registry cannot serve.
(apps/api/src/modules/magento/COMPOSER-REGISTRY.md, "Cutting a new release" and "Release candidates".)
Known limitations
- Install-tested on Magento 2.4.4-p13, 2.4.7-p4 and 2.4.9 (Luma; Hyvä 1.5.2 on 2.4.9); 2.4.6-p15 and 2.4.8-p5 statically verified only; Hyvä Checkout not tested (licensed). Backend deployed 2026-09-26 (
b70ea541); no merchant store measured on 1.4.0 at release time. - Payment assist needs the shopper's chat visitor id (the shopper chatted, gave cookie consent where required, Revenue attribution on); without it a failed payment is only recorded. Declines inside a payment provider's own widget never reach Magento's order submission and are not seen.
- Product knowledge is one entry per SKU in the default store view's language; store-specific price and stock come from live reads.
- Products changed by Magento's catalog import or the Update attributes mass action are not sent as events — use Re-sync catalog.
- Tracking numbers added to an existing shipment are not sent as an event (the assistant reads tracking live).
customer.deletedmatches hashed rows only under Conviro's current hash key; conversations and contacts are handled with Conviro's GDPR tools, not by it.- Order actions without a Magento API (modify, address, exchange, coupon) become tasks for your team; RMA and B2B quotes on Adobe Commerce are untested (no licence) — the ACL ids follow Adobe Commerce's webapi.xml.
- The Documentation URL default is
https://repo.conviro.io/docs/magento2: Conviro's API serves these pages there (English only, read-only, cached). To host them yourself, point it elsewhere withbin/magento config:set conviro_aichat/general/docs_url <url>. - The legacy bearer connection and the pre-1.4 event endpoints remain available during the migration window.
Shipped in 1.4.0 as well: revenue attribution, customer.updated, checkout.started and the Magento admin grounding / revenue card (514d99b0, 101ed33d, f9e583f6, c3374a58, 240e8e3e), and the release gate R3 fixes (ceaaac4d, c26b8965, ee07b4fc, 8791cdc4) — see the Changelog.