WooCommerce
What Shuttio reads from WooCommerce, where it lands in Odoo, which permissions it needs and why, and what does not move.
Last updated: 7 Nov 2026
Type your store's https address and choose Approve on your store's own page; WooCommerce creates a read-only key for Shuttio. Shuttio only reads. You can delete the key in WooCommerce, Settings, Advanced, REST API at any time.
Object by object: What objects are supported for WooCommerce migrations.
What Shuttio reads and moves
The list below describes the move into Odoo. Where Clarify or Odoo differ, the destination's own article says so.
- Customers: Registered customers as Odoo contacts, with the billing address and its state, phone, company, role and paying-customer tags. A customer already in Odoo with the same email is linked to instead of duplicated. Username, creation date, avatar link, a billing email that differs, and every custom field (VAT number, newsletter opt-in, points) are in the contact's internal note.
- Customer addresses: A shipping address that differs from the billing address becomes a delivery contact under the customer, with its own name, company, phone and state.
- Products: A simple product is one Odoo product. A variable product is one Odoo product with its attributes and options, and each variation is a real variant with its SKU, barcode, weight, picture and published status; a price difference between options becomes the option's extra, and combinations the store does not sell are archived. The product picture and the other pictures are copied into Odoo (the others as product images where the eCommerce app is installed); a picture that cannot be copied is listed with the reason. Regular price, type, the category with its parent categories (made in Odoo when missing) and the tags as Odoo product tags. Drafts and private items arrive archived. The internal note holds what Odoo has no field for: sale price and dates, tax class, stock settings, dimensions, shipping class, attributes shown but not used for variations, download links, upsells, purchase note and every custom field.
- Orders: As Odoo sales orders with their lines, the customer, the date and the discount on each line; the transaction id is the customer reference. Pending, processing, on-hold and completed orders arrive as Sales Orders; cancelled, refunded and failed orders as Cancelled; abandoned checkouts as quotations. The note holds the exact status, payment, coupons, shipping, fees, taxes, refunds with their items and reasons, both addresses, the source of the order and every custom field. Options a shopper picked on a line are in the line's name. Needs the Sales app in Odoo.
- Coupons: Each coupon as an Odoo discount-code program (Discount & Loyalty app): its code, a percentage or fixed discount, the products or categories it is for, the minimum spend, the end date and the usage limit (one use per customer on Odoo 20), and free shipping where Odoo has the free-shipping reward. A code Odoo already has is linked, not changed. Conditions Odoo's programs cannot hold (individual use, sale items, maximum spend, email restrictions) are listed in the store contact's note.
- Tax rates: Each distinct name and percentage as an Odoo sales tax (Invoicing app). A tax with the same name and amount is used as it is; only the missing ones are created, and a rollback removes them again unless your records use them. Nothing is posted. Where each rate applies (country, state, postcode, class) is in the store contact's note: Odoo does that with fiscal positions.
- Shipping methods: Each method of each shipping zone as an Odoo delivery method (Delivery app) with its price and the zone's countries and states. A price that is a formula, or a zone Odoo cannot express (a postcode or continent), is created archived or at price 0 and said in the summary.
- Product reviews: Each review as an Odoo rating on the product with its stars, text and reviewer (where the eCommerce app lets products be rated), else as a message in the product's chatter. A review the store did not show is kept but not counted.
- Refunds: With accounting history switched on: each refund as a draft credit note for the order's customer, naming the order and linked to the order line it gives back. Never posted. Needs the Invoicing app and your Odoo API key.
- Order notes: The customer's comment at checkout, the notes people wrote and WooCommerce's own system notes (status changes, stock, gateway messages, labelled "System note") become internal notes on the sales order.
- Store contact and its notes: One contact, "your-store.com (WooCommerce store)", holds internal notes only for what no Odoo model holds: coupon conditions, where tax rates apply, shipping method settings, shipping classes, product categories with descriptions, tags, attributes with their terms, payment gateways (no keys), webhooks and the store's settings and plugins. A part the key cannot read gets a note that says so.
- Guest orders: An order from a guest checkout is linked to the contact in Odoo that has its billing email. With none, the order is left out and listed with the reason.
Where each thing lands
| WooCommerce object | In Odoo |
|---|---|
| Customers | Partners (contacts) |
| Products | Products |
| Customer addresses | Not written |
| Orders | Sales orders |
| Store | Partners (companies) |
| Coupons | Not written |
| Tax rates | Not written |
| Shipping methods | Not written |
Notes, tasks, meetings, calls, files, owners and lists depend on the destination. This is the row for WooCommerce, generated from the same tables the runner uses:
Into Odoo
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| WooCommerce | Customers, Products, Customer addresses, Orders, Store, Coupons, Tax rates, Shipping methods | Yes | No | No | No | No | No | No | No |
Each destination's own article says how its data is written: Odoo.
Permissions and why
| Key setting | Why Shuttio needs it |
|---|---|
| Read access (scope read) | Lets Shuttio read your customers, products with their variations, pictures and reviews, orders with their notes and refunds, and the store's coupons, tax rates, shipping zones and methods, categories, tags, attributes, payment gateways and settings. A Read key cannot change anything in your store. |
| A key named "Shuttio - API" | You type your store's https address, sign in to WordPress as an administrator or shop manager and choose Approve on your store's own page; the store then creates the key and sends it to Shuttio. Nothing to copy or paste. |
Shuttio only reads and never writes to WooCommerce, and it sends the key to the store address you typed only. Shuttio stores the key encrypted and deletes its copy 14 days after the migration finishes. WooCommerce gives apps no way to delete a key, so the key stays in your store until you delete it: WooCommerce, Settings, Advanced, REST API.
Known limits
- Invoices and payments: Shuttio copies orders as records only. It creates no invoices or payments in Odoo and posts nothing; refunds are draft credit notes when accounting history is on.
- Deliveries and stock: No stock moves are created: an order never starts a delivery in Odoo.
- Payment gateways as Odoo payment providers: A provider created without the gateway's keys would be an empty shell, and the keys are never read. The gateways are listed in the store contact's note for you to set up in Odoo.
- Tax places and fiscal positions: Odoo applies taxes by fiscal position, which Shuttio does not create. The taxes exist; where each applies is in the store contact's note. Where Odoo adds a product's default tax to a line, the totals can differ from WooCommerce's.
- Subscriptions, memberships, bookings and custom order statuses: Their plugins keep data outside the WooCommerce REST API Shuttio reads. Orders in a status a plugin added, and trashed orders, are not read.
- Rate limits: WooCommerce sets no limit of its own, but hosts throttle. Shuttio keeps at most three requests in flight, backs off when the store answers with 429 or 503, and pauses the run if the store keeps pushing back; Resume carries on. A store on slow hosting with many thousands of orders takes hours.
- Emails: Shuttio reads no emails from WooCommerce.
Not answered here? Email help@shuttio.com.