BambooForge Sylius Connector
A real, two-way connector between Odoo 19 and Sylius — the open-source Symfony commerce platform. Sync products (with variants & images), customers, orders and refunds over the Sylius Admin API (API Platform) — with a resilient queue, signed webhook push, dry-run safety and full source you can audit.
Verified live against a running Sylius
We don't just claim a vague version range. The connector was installed on Odoo 19 and pointed at two live, locally-run Sylius stores — 1.13 and 1.14 — importing products (variants & taxon over Hydra IRIs), customers and orders with 0 errors on both.
| Sylius version | API | Live result |
|---|---|---|
| 1.14.x | Admin API (API Platform / JWT) | ✔ Live-tested — 0 errors |
| 1.13.x | Admin API (API Platform / JWT) | ✔ Live-tested — 0 errors |
| 1.x line | Admin API (API Platform) | ✔ Supported (same schema) |
| 2.x line | Admin API (API Platform) | Supported — validate on your build |
The live test imported a seeded product (with its variants and main taxon resolved over Hydra IRIs), a customer, and an order with its line items through the state mapping — all green. Sylius stores money as integer minor units in channel pricings; the connector converts to Odoo floats automatically.
Built to actually sync — not to look busy
Sylius exposes API Platform (JSON-LD) endpoints; this connector follows the Hydra IRIs to assemble a product from its variants and taxon, and converts channel prices cleanly. Every model ships with verifiable sync logic, covered by tests — no fake dashboards, no “readiness score” with nothing behind it.
What you actually get
Everything below ships in the box — including the Sylius webhook subscriber companion and a bundled mock Sylius API so you can demo without a live store.
Products, variants & options
Sylius optionGroups become Odoo product.attribute lines and variants are generated automatically. Variant prices (minor units) are converted; assets and the featured image are captured.
Customers & addresses
Each Sylius customer becomes a res.partner; their addresses become child partners with billing / delivery type inferred from the default-billing flag.
Orders with state machine
Orders import with line items, shipping and tax totals, and the payment method. Sylius order state maps to Odoo confirm / cancel / draft through an editable mapping table per instance.
Refunds → credit notes
Sylius refunds (under an order's payments) become draft Odoo account.move credit notes linked to the order. Optional auto-post for hands-off workflows.
Signed webhook subscriber
A bundled Sylius Symfony event subscriber POSTs HMAC-SHA256-signed events on product / customer / order changes. Real-time — no polling cron required.
API Platform JSON-LD client
Authenticates with the administrators/token endpoint (JWT; admin needs ROLE_API_ACCESS) or a pre-issued token, follows Hydra IRIs to assemble products, with retry/backoff and clean API error surfacing.
Sync Control Tower
A live operations dashboard — a kanban of your instances surfacing per-instance health, circuit-breaker state, queue depth, dead-letter count, conflict count, 24h throughput and 24h failure rate as clickable stat cards that drill into the queue, dead-letter and conflict views. At-risk instances are coloured.
Bulk Dead-letter Console
A dedicated view of exhausted-retry jobs grouped by error type, with bulk requeue or discard actions — clear a backlog in one pass instead of job by job.
Conflict-Resolution Workbench
A triage list with a side-by-side Odoo-vs-Sylius snapshot diff, and bulk resolve actions: Odoo-wins, remote-wins or mark-reviewed. See exactly what diverged before you decide.
Conditional branching in flows
The multi-step flow engine walks true/false branches from a condition step's boolean result (true_step_id / false_step_id), with a loop guard against cyclic links. Flows with no branch links fall through to the next step in sequence — fully backward-compatible.
Field-Mapping Studio
A payload-test wizard: paste a sample JSON payload and see exactly how each field mapping transforms it. A consolidated mapping studio view plus one-click mapping suggestions get you from raw API shape to clean Odoo fields fast.
Two-way stock service
A cron delta-reconcile pushes Odoo on-hand for every bound product to Sylius via a targeted PUT /api/v2/admin/product-variants/{code} (only onHand + tracked=true, the store's native stock API). A 3-layer oversell guard (instance clamp + safety buffer + final clamp to ≥0) means the store never oversells, and only changed quantities are pushed. An opt-in guarded import writes platform stock into real Odoo inventory as an adjustment.
A live walkthrough inside Odoo 19
Recorded in a real Odoo 19 connected to a live Sylius 1.14 — the connection cockpit, a synced product and order, the state mapping and the flow engine, all on real data.
Every screen, from a live install
Captured from a running Odoo 19 connected to a live Sylius 1.14 — real data synced through the connector, not mockups.








Run every Sylius store from one Control Tower
A short walkthrough of the operations tooling on real data: the Control Tower board, the side-by-side conflict workbench and the bulk dead-letter console.
Production safety, by default
Resilient queue
Retry with exponential backoff, rate-limit awareness, dead-letter handling and conflict capture for every job.
Circuit breaker
Auto-pauses sync after N consecutive failures so a broken endpoint can never flood your data.
Dry-run mode
Default-ON for every new instance — preview the exact write before anything touches live records.
Pre-flight validation
Blocking and warning findings surfaced before go-live, with auto-fix suggestions.
Rollback snapshots
Capture record state before risky writes and roll back cleanly when needed.
SSRF-safe by default
Internal / loopback hosts are blocked unless you explicitly opt in for a trusted self-hosted Sylius.
Honest feature matrix
No asterisks, no fake checkmarks. Here is exactly what version 1 does — and what is on the v2 roadmap.
| Capability | Status |
|---|---|
| Product import (name, description, enabled, slug) | ✔ Included |
| Variants captured (price + stock per variant, via IRIs) | ✔ Included |
| Variant channel prices, minor-unit → float conversion | ✔ Included |
| Product images (Sylius media paths) | ✔ Included |
| Main taxon → Odoo product category | ✔ Included |
| Customers | ✔ Included |
| Orders + line items + state mapping | ✔ Included |
| Auth: admin JWT (administrators/token, ROLE_API_ACCESS) · pre-issued token | ✔ Included |
| Signed webhook (Symfony subscriber companion) | ✔ Included |
| Variant option values → Odoo attribute grid | Roadmap v2 |
| Refunds → draft credit notes (live REST endpoint) | Roadmap v2 |
| Queue: retry · backoff · dead-letter · circuit breaker | ✔ Included |
| Pre-flight validation · rollback snapshots · dry-run | ✔ Included |
| Schema introspection & field mapping (JSON path + transforms) | ✔ Included |
| Sync Control Tower dashboard (health · queue · dead-letter · conflicts · throughput) | ✔ Included |
| Bulk dead-letter console (requeue / discard, grouped by error) | ✔ Included |
| Conflict-resolution workbench (side-by-side diff, bulk resolve) | ✔ Included |
| Conditional branching in the flow engine (true/false steps, loop guard) | ✔ Included |
| Field-Mapping Studio (payload-test wizard + mapping suggestions) | ✔ Included |
| Two-way stock: cron delta push (native variant onHand API) + 3-layer oversell guard | ✔ Included |
| Opt-in stock import into real Odoo inventory (guarded adjustment) | ✔ Included |
| Product export Odoo → Sylius (create / update) | Beta — validate on your catalog |
| Asset binary upload Odoo → Sylius | Roadmap v2 |
| Multi-channel / multi-language sync | Roadmap v2 |
Live in four steps
A guided quick-setup wizard and onboarding checklist walk you from credentials to first safe sync.
Connect
Enter your Sylius URL + admin username/password (or a bearer token). One click tests credentials and reachability.
Map
Run schema introspection and generate suggested field mappings automatically.
Dry-run
Preview exact writes with dry-run + validation on. Clear any blocking findings.
Go live
Register the webhook subscriber and let the resilient queue keep both systems in sync.
Buy with full clarity
In the box today
- Two-way sync: products, customers + addresses, orders, refunds
- Two-way stock: cron delta push to Sylius (native variant onHand API) with a 3-layer oversell guard, plus opt-in import into real Odoo inventory
- Sync Control Tower — live kanban of instance health, queue depth, dead-letters, conflicts and 24h throughput
- Bulk dead-letter console + conflict-resolution workbench (side-by-side diff, bulk resolve)
- Conditional branching in the flow engine + Field-Mapping Studio payload-test wizard
- Sylius webhook subscriber — included, not sold separately
- Bundled mock Sylius API — demo without a live store
- 35 automated tests (unit + HttpCase, all green)
- Full source included — audit and extend every line for your own use
Deferred / beta
- Product export Odoo → Sylius is in beta (import is the primary path)
- Asset binary upload Odoo → Sylius (asset import is read-only today)
- Multi-channel / multi-language sync
- Sylius 2.x is supported — validate on your build
Frequently asked
Which versions are supported?
Odoo 19.0 on the Odoo side. On the store side, the connector was live-tested on Sylius 1.14 (Admin API (API Platform)) and supports the 3.x line on the same schema; 2.x is supported — validate it on your specific build.
Do I need to install Sylius to evaluate it?
No. A mock Sylius API ships inside, so you can install, explore and demo the full import flow before connecting a real store.
How does authentication work?
Two modes: admin username + password exchanged for a bearer token via the login mutation (auto-refreshed on expiry), or a pre-issued bearer token. Sylius's tokenMethod must include 'bearer' (the default config does).
Is the webhook companion extra?
No. The HMAC-SHA256 signed Sylius Symfony event subscriber ships inside this package under phase2/sylius_plugin/, with install instructions.
Is it safe to run against production data?
Dry-run mode is ON by default for new instances, validation blocks risky writes, and rollback snapshots let you undo. You decide when to go live.
What support and refund policy do I get?
Every request is answered within 24 hours, setup help included. If you report a bug within 2 months of purchase and it isn't resolved within 15 days, you're entitled to a full money-back refund.
Connect Odoo and Sylius the honest way
24-hour support · Report a bug within 2 months — unresolved in 15 days = full refund · Full source included
bambooforge.labs@gmail.comMore from BambooForge Labs — one vendor, the same standard: tested, source included, supported.
BambooForge Sylius Connector
A two-way bridge between Odoo 19 and your Sylius store: import products (with variants and images), customers and orders, push product changes back, and discover refunds — over the Sylius Admin API (API Platform / JSON-LD, JWT auth), with a resilient job queue, dry-run safety, validation and rollback so you stay in control.
This page is the complete manual. If you follow it top to bottom you can install, connect, run your first sync, automate it, and fix the common issues without contacting support.
- Overview
- Requirements
- Installation
- Step 1 — Create a Sylius Admin API user (JWT)
- Step 2 — Create the connection in Odoo
- Step 3 — First sync (dry-run, then live)
- Order status mapping
- Field mapping & customization
- Automation (scheduled actions & webhooks)
- Safety features
- Troubleshooting
- Frequently asked questions
- Data, privacy & limits
- Support & updates
- Upgrading & version compatibility
- Uninstallation
- Changelog
Overview
The connector keeps Odoo and Sylius in sync over the official Sylius Admin API (API Platform, JSON-LD / Hydra). It covers:
- Products — import Sylius products into Odoo product templates, following the Hydra variant and taxon IRIs to assemble each product (optionally with stock, images and tax group), and export Odoo product changes back to Sylius.
- Customers — import Sylius customers (and their addresses) into Odoo contacts.
- Orders — import Sylius orders into Odoo sale orders, mapping each order's Sylius state to a sale-order action (keep draft, confirm, cancel, or ignore).
- Refunds — optionally discover Sylius order slips (credit notes) on an order and create matching draft customer credit notes in Odoo.
Direction of sync: Odoo ↔ Sylius (import is the primary flow; product export and webhook-driven updates are supported).
Sylius prices are stored as integer minor units (cents) inside the channel pricing; the connector converts them to Odoo floats. Every remote call goes through a queue: nothing is written to Odoo until a job runs, jobs retry with back-off on transient failures, and a circuit breaker pauses an instance that keeps failing.
Requirements
- Odoo: 19.0, Community or Enterprise.
- Sylius: targets the Sylius Admin API v2 (API Platform, JSON-LD) under /api/v2/admin. Sylius must be reachable from the Odoo server.
- Python: no extra libraries beyond a standard Odoo 19 install.
- Odoo access: any internal user can use the connector screens. Sylius credentials are stored in system-only fields, so only the Settings / Administration user can read or change the admin password or bearer token.
- Network: outbound HTTP(S) from Odoo to your Sylius server. By default the connector refuses internal/loopback/private hosts as an SSRF safeguard (see Safety features).
Installation
- Copy bambooforge_sylius_connector into your Odoo addons path.
- Restart the Odoo service.
- Open Apps, click Update Apps List, search for Sylius, and press Activate / Install. Dependencies (Sales, Contacts, Invoicing, Product) install automatically.
No Sylius store is required to evaluate the connector: a mock Sylius Admin API ships inside the module at <your-odoo-domain>/sylius/mock_api, so you can install, explore and run the full import flow against sample data before pointing it at a real store.
Step 1 — Create a Sylius Admin API user (JWT)
The connector talks to the Sylius Admin API and authenticates with a JSON Web Token (JWT). You provide the connector with an admin email and password; it calls the Sylius administrators/token endpoint, receives a JWT, and sends it as a Authorization: Bearer header on every request. The token is cached and automatically refreshed when Sylius returns a 401.
In your Sylius back office:
- Open the Administrators section and create (or pick) an admin user the connector will log in as, e.g. odoo@your-store.com.
- Make sure that admin user holds the ROLE_API_ACCESS role. Without it, Sylius accepts the password but refuses to issue an API token.
- Note the admin email and password — that is all the connector needs.
Alternatively, if your deployment already issues JWTs out of band, you can paste a pre-issued bearer token instead of an email/password (see Step 2). A pre-issued token is not auto-refreshed; when it expires you must paste a new one.
Step 2 — Create the connection in Odoo
Open Sylius Connector ▸ Configuration ▸ Instances and create a record.
Key fields:
| Field | What to enter |
|---|---|
| Name | A label for this store, e.g. My Live Store. |
| Base URL | Your Sylius server root, e.g. https://store.example.com (or http://localhost:9000 for a local store). |
| Authentication | Admin Email + Password (JWT) for the usual login flow, or Bearer Token to use a pre-issued JWT. |
| Admin Email | The Sylius admin email from Step 1 (must hold ROLE_API_ACCESS). |
| Admin Password | The Sylius admin password (visible to administrators only). |
| Bearer Token | Only for the Bearer Token auth type: a pre-issued JWT (admin-only field). |
| Admin API path | Leave the default api/v2/admin unless your deployment differs. |
| Default locale | Locale used to flatten Sylius translations into Odoo single-language fields, default en_US. |
| Default channel code | Optional Sylius channel code used to pick the variant price (e.g. FASHION_WEB). Empty = first channel pricing found. |
| Verify SSL | Keep on for production. Turn off only for self-signed test certificates. |
| Allow internal host | Off by default. Turn on only to reach a Sylius on localhost or a private network (lowers the SSRF guard — see Safety features). |
Then click Test Connection. A green Connected state means the credentials and URL are correct (the first successful connect also seeds the default order-state mappings). If it fails, the exact error is shown on the form and recorded in Logs (see Troubleshooting).
Tip: use Quick Setup (button on the instance) to pick a use case (catalog only, B2C full sync, …), seed default field mappings and order-state rules, and apply a recommended schedule in one step.
Step 3 — First sync (dry-run, then live)
New instances start with Dry-run ON. In dry-run, import and delete jobs simulate writes: instead of changing data they produce Validation Results you can review under Sylius Connector ▸ Operations ▸ Validation Results. This lets you confirm what would happen before anything is written.
To run a first import:
- On the instance, click Import Products (and/or Import Customers, Import Orders). This enqueues jobs; it does not block the UI.
- Jobs are processed by the Sylius Queue Processor scheduled action (every minute), or immediately if you run it manually from Operations ▸ Queue Jobs.
- Review Validation Results while still in dry-run.
- When satisfied, open the instance, turn Dry-run OFF, and run the imports again to write the records for real.
Imported records land in the standard Odoo apps: Sales ▸ Products, Contacts, and Sales ▸ Orders. Each carries its Sylius reference so re-imports update the same record instead of duplicating it.
Order status mapping
Sylius represents an order's lifecycle with a string state slug. Under Configuration ▸ Order State Mappings each instance gets a default table that decides what happens to the Odoo sale order when an order arrives in a given state:
| Sylius state | Default Odoo action |
|---|---|
| cart | Keep draft |
| new | Confirm sale order |
| fulfilled | Confirm sale order |
| cancelled | Cancel sale order |
Change any row to Ignore (do nothing), Keep draft, Confirm sale order or Cancel sale order. Unknown/custom states default to Ignore, so a state you have not mapped never triggers a destructive transition. Add a row for any custom state your shop introduces (use the exact Sylius state slug).
Field mapping & customization
- Field Mappings (Configuration) map Sylius fields to Odoo fields per model. Use Generate suggested mappings on the instance to seed the business-critical ones, then adjust. The mapping board flags fields that need attention.
- Schema Fields lists the discovered Sylius fields per resource. Run Schema Introspection on the instance to refresh it from your live store.
- Stock / images / tax are opt-in toggles on the instance: Sync stock, Sync images (and max images), Upload images on export, Sync taxes (with optional Auto-match taxes on import), Sync refunds (with optional Auto-post refund). They are off by default; turn on only what you need.
Automation (scheduled actions & webhooks)
The module ships these scheduled actions (Settings ▸ Technical ▸ Scheduled Actions):
| Scheduled action | Default | Purpose |
|---|---|---|
| Sylius Queue Processor | every 1 min | Processes queued import/export/delete jobs. |
| Sylius Reconciliation | every 15 min | Pulls recent remote changes for enabled models. |
| Sylius Maintenance | every 1 hr | Recovers stale/locked jobs and trims old logs. |
| Sylius Flow Scheduler | every 5 min | Runs scheduled sync flows. |
| Sylius Flow Metrics | every 1 hr | Aggregates flow-run metrics. |
| Sylius Auto Recover | every 15 min | Reopens a tripped circuit breaker once the store is healthy. |
Turn on Auto import / Auto reconcile per model on the instance to let the scheduled actions keep things in sync hands-free.
Real-time webhooks (optional): point a Sylius webhook (or your own emitter) at:
- Delivery URL: https://<your-odoo-domain>/sylius/webhook
- Signature header: X-Sylius-Signature — an HMAC-SHA256 hex digest of the raw request body, keyed with the instance Webhook Secret (admin-only field on the instance).
Each payload must include a signed emitted_at timestamp. Odoo verifies the HMAC-SHA256 signature, rejects stale or replayed deliveries, and enqueues a safe import (or delete). Without webhooks the scheduled reconciliation still keeps data current.
Safety features
- Dry-run mode — simulate writes and review Validation Results before going live. ON by default (Dry-run field).
- Business validation profiles — Minimal / Standard / Strict gate risky writes.
- Resilient queue — every remote action is a job with retry and exponential back-off (configurable Retry limit, Backoff policy).
- Circuit breaker — after repeated failures an instance auto-pauses (Tripped); the Auto Recover action reopens it once Sylius responds again.
- Rollback snapshots — when Rollback is enabled, imports capture a snapshot so you can undo a batch from Operations ▸ Rollback Snapshots.
- SSRF guard — the connector refuses internal/loopback/private hosts unless Allow internal host is explicitly enabled.
- Signed, fail-closed webhooks — a webhook with no secret, no signature, or a bad signature is rejected; stale/replayed deliveries are dropped.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| Test Connection fails with "login failed" | Wrong admin email/password, or the admin user lacks ROLE_API_ACCESS. Re-check Step 1; Sylius returns 400/401/403 for any of these. |
| Token works once then 401 later | The JWT expired. With Admin Email + Password auth the connector re-logs-in automatically on a 401. With Bearer Token auth it cannot — paste a fresh token, or switch to email/password auth. |
| "Bearer token is missing" | Auth type is Bearer Token but the Bearer Token field is empty. Paste a token, or switch to Admin Email + Password. |
| "Refused internal/private host" | Base URL points at localhost/private IP. Enable Allow internal host on the instance (test/self-hosted only). |
| SSL errors on Test Connection | Self-signed certificate. Use a valid cert, or turn off Verify SSL for testing only. |
| Orders import but never confirm | The order's Sylius state is mapped to Keep draft or Ignore. Adjust Order State Mappings. |
| Webhook returns 401 "Invalid signature." | The instance Webhook Secret is empty, or the X-Sylius-Signature HMAC-SHA256 of the raw body does not match. Set the secret on both sides. |
| Webhook returns 400 "Stale webhook" / "in the future" | The signed emitted_at is more than 15 min old or 5 min ahead. Sync the clocks on the Sylius and Odoo hosts. |
| Jobs stay in Pending | The Queue Processor is off or the instance is paused. Check Scheduled Actions is active and the instance is not Paused. |
| Instance shows Tripped | Circuit breaker tripped after repeated failures. Fix the store/credentials; Auto Recover reopens it, or click Resume. |
| Records imported twice | Imports are keyed by the Sylius reference, so this should not happen. If it does, check that two instances do not point at the same store. |
| Nothing happens after Import | You are in Dry-run. Review Validation Results, then turn dry-run off and re-run. |
For anything else, Operations ▸ Logs records every API call, payload and error with a timestamp.
Frequently asked questions
Which versions are supported? Odoo 19.0 on the Odoo side. On the store side the connector targets the Sylius Admin API v2 (API Platform, JSON-LD) under /api/v2/admin. Validate your exact build with the bundled mock first.
Do I need Sylius installed to evaluate it? No. A mock Sylius Admin API ships inside at <your-odoo-domain>/sylius/mock_api, so you can install, explore and demo the full import flow before connecting a real store.
How does authentication work? The connector calls the Sylius administrators/token endpoint with an admin email and password to obtain a JWT, then sends it as Authorization: Bearer on every request. The admin user must hold ROLE_API_ACCESS. The token is cached and refreshed automatically on a 401. You can also paste a pre-issued bearer token instead.
How does real-time sync work? Point a Sylius webhook at /sylius/webhook with the shared Webhook Secret and the X-Sylius-Signature HMAC-SHA256 header; Odoo verifies the signature, guards against replays, and enqueues a safe import. Without it, scheduled reconciliation keeps things in sync.
Is it safe to run against production data? Dry-run is ON by default, validation blocks risky writes, and rollback snapshots let you undo. You decide when to go live.
What support and refund policy do I get? Every request is answered within 24 hours, setup help included. If you report a bug within 2 months of purchase and it is not resolved within 15 days, you are entitled to a full money-back refund.
Data, privacy & limits
- The connector reads products, customers, orders and order slips (refunds) from your Sylius store and writes the corresponding Odoo records. Credentials (admin password / bearer token / webhook secret) are stored in admin-only fields.
- In scope today: product/customer/order import, product export (incl. optional image upload), order-state mapping, refund discovery, scheduled sync, signed webhooks.
- Out of scope / best-effort: tax auto-matching (off by default, name-based, never auto-creates taxes); multi-warehouse stock routing; subscription/booking order types.
Support & updates
- Support: bambooforge.labs@gmail.com — answered within 24 hours, setup help included.
- Refund: report a bug within 2 months of purchase; if unresolved within 15 days, full refund.
- Full source is included. Updates track the supported Odoo 19 / Sylius Admin API v2 line.
Upgrading & version compatibility
This build targets Odoo 19.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.
Patch upgrades (same series, e.g. 19.0.1.0.0 → later)
Back up your database and filestore first.
Replace the module folder with the newer build.
Restart Odoo with the module updated:
./odoo-bin -c your.conf -u bambooforge_sylius_connector -d your_db
Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.
Cross-version migration (e.g. Odoo 17 → 18)
Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.
After any upgrade the module's scheduled actions resume on their normal cadence — no manual re-activation is required.
Uninstallation
You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.
What is removed
- The module's own tables and every record in them (20 models, prefixed sylius.*) — this is the data this module created.
- The menus, actions, views and reports this module installed.
- Its scheduled actions (cron jobs) — they stop immediately on uninstall.
- Connection records, credentials, field mappings, queue jobs and sync logs stored in Odoo.
What is preserved
- Your remote platform is never touched. Uninstalling only removes the Odoo-side connector; products, customers and orders on the external store/service are untouched.
- Records already imported into standard Odoo models (e.g. contacts, products, sales orders) remain — they are ordinary Odoo records once created.
- Attachments and chatter messages on standard records are kept.
As always, take a database backup before uninstalling in production.
Changelog
19.0.1.0.0
Current release for Odoo 19.0. This build includes:
- Two-way Odoo 19 <-> Sylius connector: products, variants, customers, orders and refunds over the Sylius Admin API (API Platform / JWT).
- Two-way stock sync, live Sync Control Tower, resilient queue and dry-run safety.
Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module