Passa al contenuto

10 errori tipici nella migrazione da Sage a Odoo nel retail · come evitarli davvero

30 maggio 2026 di
Nextdoo
In summary. The ten most expensive mistakes when migrating from Sage to Odoo in retail are: not cleansing data before migrating, not training the team in advance, keeping both systems in parallel, not testing the POS with the real catalogue, ignoring VeriFactu, importing unbalanced balances, mixing Sage accounting with Odoo POS, forgetting fiscal series, not documenting new workflows, and launching during peak season. Avoiding them requires phased planning and genuine commitment from the company's team, not just the partner.

Migrating from Sage to Odoo in retail is not a copy-and-paste process. It is an operational redesign that, if done well, transforms the daily life of your shop. If done badly, it can cost you customers, tax penalties, and weeks of chaos. This guide compiles the ten most common errors we have seen in real projects of Sage to Odoo migration in Spanish retail, with enough context so you don't repeat any of them.

The migration from Sage to Odoo in retail primarily fails due to lack of preparation in data, training, and point-of-sale validation before the change.


Why does migrating from Sage to Odoo in retail have its own rules?

10 typical errors when migrating from Sage to Odoo in retail · how to really avoid them · Error 1: Underestimating prior data cleansing
10 typical errors when migrating from Sage to Odoo in retail · how to really avoid them · Error 1: Underestimating prior data cleansing

Sage has been in the Spanish market for decades. For many retail SMEs, it has been the primary ERP since the nineties or early two thousands. That means the database you are going to migrate is not one or two years old: it has accumulated history, accounting criteria from different advisers and, almost always, more dirt than it appears at first glance.

Odoo is an ERP with a different architecture. It's not just accounting: it integrates POS, eCommerce, warehouse management, CRM, and invoicing in a single environment. That integration is the main reason to migrate, but it also explains why the transition requires a different approach than a simple accounting software change.

In retail, the added demand is the point of sale. Every minute of POS downtime is a lost sale. That is why errors in this type of migration hurt more than in other sectors, and why it is worth spending time understanding what they are and how to prevent them.

Added to this is the regulatory context of 2026: VeriFactu is already mandatory for most Spanish companies according to Royal Decree 1007/2023. Any migration that does not consider this obligation from day one is an incomplete migration.


Why is underestimating prior data cleansing the first serious error?

Sage accumulates years of duplicates. Customers with the same NIF registered twice, discontinued products that no one deleted, unreconciled entries, price tariffs that no longer exist. If you migrate all of that without filtering, Odoo inherits the chaos and amplifies it because it makes it visible on more screens at once.

Prior cleansing is not optional. It is the foundation of the project. Before exporting anything from Sage, it is advisable to perform a minimum audit: duplicates in the customer master, product references without stock or movement in the last two years, accounting accounts without balance or activity.

The time you invest in this phase is more than recovered during the launch. A clean database reduces incidents in the first weeks of use, facilitates team training and prevents errors in the first fiscal closings in Odoo.

A practical tip: export the Sage item master to a spreadsheet and pass it to the person who best knows the current catalogue. Let them mark what is migrated and what is not. That human filter is worth more than any automatic script.


Why is not training the team before going live a critical error?

The team that has used Sage for years has automated every click. In Odoo, the workflows are different: returns are managed differently, cash closing has a different process, B2B customer invoicing follows a different process. Without prior training, day one is guaranteed chaos.

Training cannot be the day before launch. It is reasonable for the team to work with real data in a test environment for a sufficient period before go-live. This way, they identify their own doubts with time to resolve them, not in the middle of a customer queue.

Special attention to the cashiers' team. They are the ones who will notice the change the most and who experience the most pressure daily. A practical session on cash closing, returns with a receipt, and sales with an invoice is enough for them to start confidently, not fearfully.

The administration or accountancy firm manager also needs specific training: bank reconciliation, preparation of Modelo 303, monthly closing. These are different workflows from Sage, and it is advisable that they have practised them before the actual submission date arrives.


Why is keeping Sage and Odoo in parallel for weeks an error?

The intention is to protect oneself: if something fails in Odoo, Sage always remains as a backup. The problem is that maintaining two active systems forces data entry into both, and that generates discrepancies within days. After two weeks, neither of the two systems reflects the complete reality.

What works is a clear cut-off date. Sage closes with its balanced accounts on that date. Odoo starts with those imported balances and all new operations are entered only into Odoo from that moment.

Sage does not disappear: it remains available in query mode to review historical data if necessary. But it is not operated on. That distinction between query and operation is what avoids the trap of the dual system.

If the team asks to keep Sage active for peace of mind, the answer is to invest that time in better training and a more comprehensive testing environment. Real peace of mind comes from knowing how to use Odoo well, not from having Sage as a safety net.


Why can not testing the POS with the full real catalogue be expensive?

Odoo POS in demo with ten references works wonderfully. The real test is with the full catalogue: five thousand references, EANs from different suppliers, size and colour variants, products with reduced VAT mixed with standard ones. That's where the details that can compromise the launch appear.

The most common problems in this phase are slow searches due to a poorly indexed catalogue, duplicate EANs that Sage allowed but Odoo did not, incorrectly assigned VAT in the migration, and price rates that were not loaded correctly for certain customer groups.

All these issues have a simple solution if detected in the testing environment. If they are detected on the go-live day with customers waiting, the cost is much higher, not only financially but also in terms of team image.

The POS test with a real catalogue must include at least: a normal sale, a sale with a discount, a return with a receipt, a cash desk closing, and a sale with an invoice to a B2B customer. If these five flows work with real data, the POS is ready.


Why is ignoring VeriFactu until the eve of launch a risk?

VeriFactu is the invoicing registration obligation established by Royal Decree 1007/2023. From 2026, it will be generally applicable to most companies obliged to keep accounts in Spain. It is neither optional nor postponable.

Correctly configuring the system to comply with VeriFactu requires time: digital certificates, AEAT environment configuration, and invoicing record chaining tests. It's not something that can be resolved in an hour the evening before the launch.

Odoo Enterprise includes the Spanish localisation with support for VeriFactu, but this configuration must be done, validated, and tested in advance. If the go-live occurs without VeriFactu being correctly activated, the first invoices issued may not comply with the regulation.

The recommendation is to treat VeriFactu as an independent milestone within the migration project, with its own configuration and validation deadline, not as a last-minute detail.


Why does importing unbalanced accounting balances generate serious problems?

This error generates the most problems in the first fiscal closings. If the balances exported from Sage are not balanced before being loaded into Odoo, the opening balance in the new system is already incorrect from day one.

The consequences arise when preparing the Modelo 303 VAT form or the year-end closing. Imbalances drag on and, if not detected in time, require manual corrections that consume hours of accounting.

Before migration, the accounting manager or consultancy must validate that the Sage balance on the cut-off date balances: assets equal to liabilities plus equity, input and output VAT accounts consistent with the declarations submitted, and verified customer and supplier balances.

This preliminary work is the client's responsibility, not the implementation partner's. The partner migrates what they receive; if what they receive is unbalanced, the result in Odoo will also be unbalanced.


Why is mixing Sage Accounting with Odoo POS via a connector a mistake?

Some retailers request a hybrid solution: Odoo for the point of sale because the experience is better, and Sage for accounting because the accountant already knows it. Technically, it is possible with a connector that synchronises POS sales to Sage.

The reason it is not recommended is that it eliminates Odoo's main advantage: native real-time integration between sales, stock, invoicing, and accounting. With the connector, that integration becomes a periodic synchronisation with potential mapping errors, duplicates, and time lags.

Furthermore, the total cost of maintaining two systems with licences, maintenance, and support is usually higher than consolidating everything in Odoo. And the administrative team continues to work in two different environments, with the consequent reconciliation effort.

If resistance to change comes from the accountant or the consultancy, the solution is specific training in Odoo accounting, not maintaining Sage. The Spanish chart of accounts, VAT models, and SII are natively integrated into Odoo Enterprise.


Why is forgetting fiscal series and invoice numbering a serious mistake?

Invoice numbering must be continuous and without gaps according to IRPF and VAT regulations in Spain. If Sage closed the financial year with a specific invoice number, Odoo must start with the next number, either in continuity of the same year or with a new series for the following year according to company policy.

This detail is often overlooked in the rush of go-live and generates issues with the AEAT when declarations are submitted or during an inspection. A mid-year change in numbering without documentary justification is a red flag for tax agency auditors.

Fiscal series for different document types must also be reviewed: simplified POS invoices, full B2B invoices, credit notes, and corrective invoices. Each must have its own series and correlative numbering from the Odoo launch.


Why is it a mistake not to document the new operative procedures?

Odoo changes workflows. Returning an item, managing an order with partial delivery, closing a cash register with a discrepancy, issuing a corrective invoice: all these processes have a path in Odoo that is not identical to Sage's. Without internal documentation, within a few weeks, each team member will do things their own way.

This operational divergence generates accounting problems: stock discrepancies, incorrectly issued invoices, cash register closings with different criteria depending on who closes it. All of this is reflected in reports and tax declarations.

The documentation doesn't have to be a hundred-page manual. One or two-page process sheets per critical flow are sufficient: how to make a return, how to close the cash register, how to issue a B2B invoice. These sheets, accessible to the whole team, are the basis for coherent operations.

The best time to draft these sheets is during the training phase, when the flows are fresh and questions are specific. Leaving them until after the launch means they will never be written.


Why should you not launch Odoo during peak season or on Black Friday?

The temptation exists: “let’s take advantage of Black Friday to debut the system and see how it responds under maximum load.” This is the most expensive mistake on this list. Any configuration issue that under normal conditions is a minor problem becomes a crisis on the day of the highest sales volume of the year.

Go-live during peak season allows no room to calmly resolve issues. The team is under pressure, support has less availability to attend in detail, and every minute of POS downtime means lost sales and frustrated customers.

A go-live during a quiet period is advisable: January if the strong campaign is summer or Christmas, September if the campaign is autumn-winter. This period allows operations to be consolidated, minor incidents to be calmly resolved, and the peak season to be reached with a well-established system.

Once the team has completed a full cycle in Odoo, with daily cash closing, bank reconciliation, and preparation of a VAT declaration, confidence in the system is real. That confidence is what allows facing a Black Friday without scares.


How to structure the project to avoid these errors

A well-structured Sage to Odoo migration project in retail has differentiated phases; it is not a single block of work. Each phase has its deliverables and validation criteria before moving to the next.

Typical phases are:

  • Data audit and cleansing: review of customer master, items, and accounting accounts in Sage. Validation of balances before the cut-off date.
  • Odoo configuration and parametrisation: Spanish localisation, VeriFactu, fiscal series, price lists, POS configuration.
  • Data migration: loading clean master data and balanced opening balances.
  • Real data tests: POS validation with full catalogue, critical flow testing, review of accounting reports.
  • Team training: practical sessions with real data in a staging environment, operational documentation.
  • Go-live and immediate support: launch on cut-off date, intensive support during the first days of real operation.

Each phase requires client involvement, not just the partner's. The data audit must be performed by someone who knows the business. Balance validation is the responsibility of the administration or accountancy firm. Training requires real team availability.

Projects that fail usually don't fail due to technical problems: they fail because the client didn't dedicate time to the phases that correspond to them.


Sage vs Odoo in retail: why the difference matters in migration

10 typical errors when migrating from Sage to Odoo in retail · how to truly avoid them · Error 2: Not training the team before go-live
10 typical errors when migrating from Sage to Odoo in retail · how to truly avoid them · Error 2: Not training the team before go-live

Understanding the architectural differences between Sage and Odoo helps anticipate where friction will arise during the migration and why certain errors are so frequent.

Sage originated as accounting software and gradually added functionalities over time. The result is an architecture where accounting is the core and the rest are added modules. This works well if the business revolves around accounting, but in retail, the operational core is the point of sale and stock management.

Odoo originated as an integrated ERP. The POS, eCommerce, warehouse, and accounting share the same database and are updated in real-time. This architectural difference is why a sale at the Odoo POS automatically generates the accounting entry, updates stock, and can trigger a supplier purchase order proposal, all without manual intervention.

This integration is also why the migration is not just a data transfer: it's a redesign of flows. And this redesign requires time, training, and documentation. The ten errors in this guide are, ultimately, consequences of not having dedicated enough attention to one of these three elements.


Indicative information. Actual timelines, costs, and scopes are confirmed after a personalised analysis. JLM Business Solutions SL · B16842831.

Frequently Asked Questions

Are Sage and Odoo equivalent in functionality for retail?

They are not equivalent: they are distinct architectures. Sage is an ERP with an accounting origin to which management functionalities have been added. Odoo is an integrated ERP where POS, eCommerce, warehouse, and accounting share the same database in real-time. For retail, Odoo's native integration is the decisive advantage. The migration is not just a technical transfer: it involves redesigning operational flows, which requires specific training and documentation for the team.

How long can a migration from Sage to Odoo take in a medium-sized retail store?

The timeline depends primarily on the quality and volume of data in Sage and the level of client team involvement. As an indicative sector reference, projects of medium complexity have a reasonable duration, which is confirmed after an initial analysis. The variable that most impacts the timeline is prior data cleansing: a clean database can significantly reduce the total time. Exact timelines are confirmed after personalised analysis.

Is it mandatory to comply with VeriFactu when migrating to Odoo in 2026?

Yes. Royal Decree 1007/2023 establishes the obligation for invoicing systems to comply with the integrity, preservation, accessibility, readability, traceability, and unalterability requirements defined by VeriFactu. From 2026, this obligation is of general application for most Spanish companies. Odoo Enterprise includes the Spanish localisation with support for this obligation, but it must be configured and validated correctly before go-live, not left until after the launch.

Yes. Accounting entries for the current financial year on the cut-off date are migrated to Odoo as opening balances. Historical data from previous financial years are exported from Sage in PDF or Excel format and archived according to the retention period established by AEAT regulations, currently four years for fiscally relevant documentation. Sage remains available in query mode to access these historical records if necessary, but it is not operated.

What happens if the accountancy firm prefers to continue using Sage for accounting?

It's a common resistance. The most efficient solution is not to maintain Sage in parallel with a connector, because that architecture duplicates costs and eliminates Odoo's integration advantage. The recommended alternative is specific training in Odoo Enterprise accounting for the accountancy firm: the Spanish chart of accounts, VAT forms 303 and 390, bank reconciliation, and SII are natively integrated. In practice, accountancy firms working with several clients on Odoo adapt their operations quickly.

How is invoice numbering managed when changing from Sage to Odoo?

Numbering must be continuous and without gaps, as required by Spanish invoicing regulations. If Sage closed on a specific invoice number on the cut-off date, Odoo must start with the next number, respecting the series and the corresponding fiscal year. If the change occurs at the beginning of the financial year, it is usual to start a new series from number one of the new year. In any case, the decision must be made before go-live and documented to justify it to the AEAT if necessary.

Jeanlouis Boulanger · CEO

Frequently Asked Questions

Dirty data in Sage is replicated in Odoo and generates errors in inventory, accounting, and reports that are costly to correct after launch. Prior cleansing prevents you from having to stop operations to fix it.

How long before go-live should the store team be trained?

Training should begin at least 4-6 weeks before launch, with practical sessions on the real system and documentation of new processes. Leaving training until the last minute is one of the errors that generates the most chaos on the first day.

Is it mandatory to keep Sage and Odoo running in parallel during the migration?

It is not mandatory and is usually counterproductive because it duplicates team work and generates confusion about where to record each operation. A well-planned phased migration allows Sage to be shut down without the need for prolonged parallelism.

What is VeriFactu and why can't I ignore it in an Odoo migration?

VeriFactu is the Spanish Tax Agency's invoice validation system that has been mandatory in Spain since January 2024. Ignoring it until the last moment can result in tax penalties or invoice rejection in Odoo.

VeriFactu is the Spanish Tax Agency's invoice validation system that has been mandatory in Spain since January 2024. Ignoring it until the last moment can result in tax penalties or invoice rejection in Odoo.

What is the best time to launch Odoo in a retail store?

Avoid peak seasons like Black Friday, Christmas or sales. Launch in a quiet week so the team can resolve problems without sales pressure and without affecting the customer experience.

Hardware omologato per Odoo POS nel 2026: la guida completa per il retail spagnolo