Skip to Content

Top seller on the Odoo Apps Store Browse 100+ Odoo Apps

Customer success story

How a US Auto Parts Retailer Manages 600,000 Shopify Products into Odoo

A US online auto parts retailer sells tires, wheels, brakes and other parts through a Shopify Plus store and needed to import more than 600,000 Shopify products into Odoo. TeqStars set up its Shopify Connector, built a resumable batch import that works within the Odoo.sh time limit, and later moved the whole database to the retailer's own server.

US online auto parts retailer

Automotive United States Published

Line drawing of a wheel and stacked parts boxes: a large Shopify catalog imported into Odoo

The resultThe full Shopify catalog lives in Odoo with its images, and new orders bring any missing product with them.

Shopify products imported into Odoo
600000
products per import batch
2,000
between scheduled import runs
15 min

What challenge was the customer facing?

The retailer needed its whole Shopify catalog in Odoo, and the catalog was far bigger than a standard import could handle. More than 600,000 active products, with their images, had to come across before orders could run through Odoo.

The company sells auto parts online, from tires and wheels to brakes, suspension and engine parts, through a Shopify Plus store, and orders placed on eBay reach Shopify too. Around ten people work in Odoo, which ran on Odoo.sh when the project started. The team bought the TeqStars Shopify Connector on the Odoo App Store, but the first installation failed because the module files had been uploaded in the wrong structure.

Once the connector was running, the first import stopped at about 23,000 products. Two limits met there: the Shopify API returns at most 250 products per call, and Odoo.sh ends any process that runs longer than 15 minutes, so one import of the full catalog could never finish in a single run.

Images made every batch slower. The import also had to survive Odoo's own housekeeping: the standard Auto-vacuum internal data job cleared queued products that were still waiting, and Odoo.sh switched the scheduled import off when it ran without a break.

Part of the catalog also changed while the import ran: duplicate SKUs with wrong prefixes were being cleaned up in Shopify at the same time.

A second project followed once the catalog was in. The retailer decided to run Odoo on its own server under an on-premise license, which meant moving a database of more than 55 GB, filestore included, out of Odoo.sh, where a downloadable backup stays available for only a few hours.

What did the business need to achieve?

The retailer wanted every active Shopify product in Odoo, with its images, so that Shopify orders could be processed there. It asked for:

  • the full catalog imported despite the API page size and the Odoo.sh time limit
  • an import that picks up where it stopped instead of starting over
  • products deleted in Shopify removed from the Odoo listings
  • orders that bring in any product still missing from Odoo
  • paid Shopify orders confirmed as sales orders, not left as quotations
  • later, Odoo on a server of its own instead of Odoo.sh

How did TeqStars help?

TeqStars installed its Shopify Connector and then built a custom import module for this catalog. Instead of one long run, the import moves through Shopify page by page, saves its place after every batch and continues on the next scheduled run, so neither the API limit nor the Odoo.sh time limit can stop it for good.

  • Set up in a day. TeqStars got collaborator access to the Odoo.sh project and its GitHub repository, uploaded the connector in the right structure and installed it the same day.
  • Batches of 2,000. The import reads 250 products per Shopify API call and turns every 2,000 into a processing queue, saved to the database before the next batch starts.
  • Resumable by design. The position of the next Shopify page is stored after each batch, so a run that Odoo.sh stops after 15 minutes loses nothing and the next run carries on.
  • A job every 15 minutes. A dedicated Import Large Product scheduled job runs every quarter hour and keeps working through the catalog without anyone starting it.
  • Images kept with the products. Leaving images out would have been faster, but a later image export from Odoo would then have overwritten the photos in Shopify, so every product came across with its images.
  • Watched until the end. TeqStars checked the import every day, switched the job back on whenever Odoo.sh deactivated it, and queued again the products that the auto-vacuum job had cleared.
  • Import by product ID. Single products can be imported by their Shopify ID, and a listing whose product no longer exists in Shopify is removed from Odoo and written to the log.
  • Deletes and orders in step. With the product delete webhook on, products removed in Shopify leave the Odoo listings, and an order with an unknown product or customer imports it on the way in.
  • Paid orders confirmed. A marketplace workflow turns paid Shopify orders into confirmed sales orders, and the order import job ran once the instance's salesperson had the access it needed.
  • A server of its own. TeqStars moved Odoo from Odoo.sh to the retailer's own server on AWS, with Nginx, SSL, workers sized to the machine and nightly backups kept for 30 days.

Batch by batch, the import worked through the entire catalog on its own schedule, and after every interruption it picked up exactly where it had stopped. When the retailer later found SKUs in its own list that did not match Odoo, TeqStars compared the two, traced the difference to duplicates that had been cleaned up in Shopify while the import was running, and gave the team a two-step fix it could run itself: delete those products by SKU, then import them again by their Shopify product IDs.

For the move to the retailer's own server, TeqStars installed Odoo on a new Ubuntu server, restored the Odoo.sh database with its filestore and let the team test the copy before the switch. On the agreed morning the team stopped entering data in Odoo.sh, TeqStars moved the latest database across, and the retailer carried on from its own domain the same day.

Key capabilities delivered

  • eCommerce Integration
  • Data Migration
  • Custom Development
  • API Integration

Challenges we solved

  • Shopify returning only 250 products per API call
  • Odoo.sh ending processes after 15 minutes
  • More than 600,000 products, each with images
  • Queued products cleared by Odoo's auto-vacuum job
  • SKU mismatches after duplicates were cleaned in Shopify
  • Products deleted in Shopify left in Odoo
  • Paid orders arriving as quotations
  • Moving a database of over 55 GB off Odoo.sh

What business processes improved?

Before

The connector could not be installed from the uploaded files, and once it ran, a standard import stopped after about 23,000 products. Each run met the API limit of 250 products per call and the 15-minute limit of Odoo.sh, and Shopify orders arrived as quotations.

After

A scheduled import worked through the catalog in batches of 2,000 and resumed after every interruption until all products were in Odoo. Paid orders now become confirmed sales orders, missing products arrive with their orders, and Odoo runs on the retailer's own server.

Which integrations were involved?

What results did the project achieve?

Shopify products imported into Odoo
600000
products per import batch
2,000
between scheduled import runs
15 min
database moved off Odoo.sh
55 GB+

Every active product in the retailer's Shopify store, more than 600,000 of them, reached Odoo with its images through the batch import TeqStars built, and the same import still serves single products by their Shopify ID whenever one needs refreshing.

Orders now flow from Shopify, including those placed on eBay, into the retailer's own Odoo server. Paid orders are confirmed by the marketplace workflow, and an order that contains a product not yet in Odoo brings that product with it, so the team never has to reload the catalog to take an order. TeqStars shared its order import guide and short videos, and the team set up order imports and product exports to spreadsheets on its own.

Odoo runs on a server the retailer controls, with nightly backups kept for 30 days and workers sized to the machine. The Shopify Connector and the import module came along from the Git repository, so the team kept the same screens and the same scheduled jobs after the move.

Customer testimonial

Great module! Fantastic level of support! The Teqstars team helped set everything up in no time, very quick response to our problems, super detailed answers

US online auto parts retailer Review on the Odoo Apps Store Approved by the customer

Planning a similar Odoo project?

Tell us what you are trying to improve and our team can discuss the right implementation approach.