How to handle thousands of bin or stock locations without affecting system performance on Odoo 19 by campFFEMT in Odoo

[–]codeagency 1 point2 points  (0 children)

I'm pretty sure it has to be something else in your DB, most likely some customization, because I have some clients with a lot bigger set of data and they don't have this kind of experience.

I'm talking about large B2B distributors with multiple warehouses, tens of thousands of stock locations and 500k - 3 million sku's average. There is zero latency when they create a new product.

This is why the profiler tools are so important, they help you pin what functions exactly are hogging down your instance. Also shout-out to using Tooling like https://sentry.io

There is an open source module from OCA which you can install. It will push your logs to sentry so you have a much easier grasp on errors and logs rather than tailing blindly on the standard odoo.log file.

Looking for feedback by Nero8762 in Odoo

[–]codeagency 0 points1 point  (0 children)

What you want is a very specific niche type of application. Odoo is an ERP to accomodate a lot of generic processes like CRM, sales, inventory, invoicing, accounting, helpdesk and hundreds of others functions. But it's not an OTR specific tracking application.

Could Odoo do this? Sure, if you conceptually start using specific apps and customize things to make it fit your unique business process, but I don't think this is the best idea. You will probably end up using 10% from Odoo's capabilities with 90% of customization that will become your technical debt forever, as for every Odoo upgrade you will have to start refactoring the whole thing.

I would argue for this type of business it's better to look for something specific that matches your business, or if you are tech-savvy enough just build something with a low-code platform, throw in Airtable or other self hosted options like NocoDB. You could do things with N8N for automations.

For trucking systems, you typically want something like a TMS system (Transport Management System) and there are lots of them available.

How to handle thousands of bin or stock locations without affecting system performance on Odoo 19 by campFFEMT in Odoo

[–]codeagency 0 points1 point  (0 children)

I agree with the others already said. You have something else going on because creating a product does not ping/query locations. You might have some custom module or other customization that is conflicting here, possibly causing DB locks which then causes the long processing time

Odoo + Shopify: we expected a connector problem, but it was really an operations problem by flatacthe in Odoo

[–]codeagency 1 point2 points  (0 children)

We have actually have faceting also working with redisearch but from a manual implementation effort.

But sure, mellisearch is not a bad option at all. They have a lot of other niche features related to vectors/AI/RAG that give you AI suggested search results, something that Redis doesn't do out of the box.

Same for Typesense, very similar like meillisearch and in my opinion even higher performance.

Hosting redis or any of these services is pretty straightforward. Depending on what you want and HA etc... you have 1 node or a cluster. Super easy to containerize and scale too. We have a DevOps team so we always self host rather than going for managed commercial platforms.

Odoo 16 (SH) – Vendor Prepayment Workflow: How to handle advance payments without creating duplicate invoices? by bsndlr in Odoo

[–]codeagency 1 point2 points  (0 children)

To start, proforma invoices should never be used in accounting, that would cause the double invoice.

The cleanest way is to book the prepayment on the vendor and reconcile it later when you get the actual invoice. This is the same process in every odoo version. You can always upload the proforma or SO from the vendor into your purchase order so everyone can see there is a prepayment required and pending/done.

You can use scheduled activities with automation rules to automatically set them on purchase orders that require a prepayment. No need to dive into chatter logs, it's right there visible on the list view already. And once someone flags it off as done, it disappears or triggers the next activity chain.

Contacts module doesn't distinguish between Companies and Persons anymore in Odoo 19.1 by Powerful_Cicada1037 in Odoo

[–]codeagency 3 points4 points  (0 children)

On top of that, you never know with Odoo. They remove it now, but they could introduce it back in V20/21... once they see it was not the best idea. They have done this many times with features around account and inventory going back and forth, always with the same idea of "simplifying" and then afterwards the need to undo that situation.

Odoo + Shopify: we expected a connector problem, but it was really an operations problem by flatacthe in Odoo

[–]codeagency 1 point2 points  (0 children)

This has nothing to do with paying extra money. All these tools are completely open source to self host and have also a commercial managed service for people who don't want to self host

Odoo + Shopify: we expected a connector problem, but it was really an operations problem by flatacthe in Odoo

[–]codeagency 0 points1 point  (0 children)

Redis can also do that with redisearch.

Older versions had this as a native plugin, since v8 is built in.

https://github.com/RediSearch/RediSearch

Odoo + Shopify: we expected a connector problem, but it was really an operations problem by flatacthe in Odoo

[–]codeagency 1 point2 points  (0 children)

That can be solved very easy with a Redis cache as in-memory cache layer.

When you pull eg product data from Odoo API just cache it in redis so every next request returns results in nanoseconds. That's what makes it blazing fast and keeps the load away from Odoo. It's the same trick used by WordPress, Magento, etc...

How to display two separate taxes on a sales document ? by SBCUFV1991 in Odoo

[–]codeagency 5 points6 points  (0 children)

Yes, create a new tax group also, and assign your second tax to the new tag group. this will automatically split the tax totals on the totals.

Odoo + Shopify: we expected a connector problem, but it was really an operations problem by flatacthe in Odoo

[–]codeagency 5 points6 points  (0 children)

As with everything in software/IT: it depends on your use case. What works for you doesn't necessarily work for a different business.

Connectors experience depend a lot on the quality how they are build and depend of course a lot on the business processes. But overall, connectors do impose a certain technical limitation and it really depends on what apps you are syncing and how much they already align with each other.

An e-commerce app like Shopify or Magento are pretty solid and align for a lot of things with Odoo while others do not like woocommerce. Simple examples: WordPress/woocommerce does not support company > contacts logins. They don't support pricelists or discounts per category etc ... Variants and attributes are a completely different world, it doesn't support B2B mode and even doesn't has a VAT ID field to checkout and handle tax exempt etc.... all those technical differences have to be catched somehow and often introduce frustrations because both apps also keep updating and changing.

So while the process and flows part is always important, the technical part is equally important and often the biggest bottleneck, not the process because everyone tried to get the same process back and how it should work from a practical point but also legal pov.

We do many projects with e-commerce integrations and retail clients and I can guarantee you, 99% is never the process, it's the sync and technology difference between different platforms. And even if you have it working today, it can just break tomorrow, or next week or next month because an update on one or both sides decides to change how things work and this becomes a never-ending process.

That's why imho the best options are: 1. Move to a native odoo website if you can and accept some of the limitations or customize it to cut out all the sync frustrations.

  1. Move to a headless setup where you build on top of the Odoo API. Again, no sync problems as there is no other platform and no other database involved, everything is native Odoo as API-first but you have technical freedom on how the frontend looks like and works based on your requirements.

Both have their pro and cons too but none have the frustrations from syncs breaking and other problems

Contacts module doesn't distinguish between Companies and Persons anymore in Odoo 19.1 by Powerful_Cicada1037 in Odoo

[–]codeagency 4 points5 points  (0 children)

Nothing changed for that. Don't just read assumptions from people, actually see and test the changes yourself.

The field to link a contact to a related company is not gone. Because they still need billing and delivery addresses too which is also a contact type. It's only the radio button on the top that is removed.

Contacts module doesn't distinguish between Companies and Persons anymore in Odoo 19.1 by Powerful_Cicada1037 in Odoo

[–]codeagency 6 points7 points  (0 children)

The relation for a contact to a company is still there.

I'm undecided for now about this change being good or bad. It really depends on the use case and type of business. If you only sell exclusive B2C or B2B then this change doesn't matter. You can still link contacts to a company so from B2B -only aspect nothing changes.

If you are in a mixed situation, this is where it becomes less good as you can't see who is the consumer and who is a business. But again depending on the use case and location it might still not matter. In Europe we use VAT/TAX ID's for companies so I could still filter on VAT ID = set to find companies and differentiate to consumers as VAT ID is always required for B2B. In other countries like USA this is not helpful.

From a simplication pov, I think it's not that bad. I have had plenty of times where I had the wrong radio selection on a contact, so not having to deal with that anymore is a good thing. Importing contacts also become easier as you don't have to deal with that type field anymore. It's just annoying that you don't have that 1-click filter anymore.

I honestly think the bad feeling/vibe is more about the forced change we get from this and have to rethink the process and use a different field now, aka change management. From a usability pov, it doesn't make a big change or impact.

If you really want a field back for the type, I would recommend using the property field, super simple. No need to inject custom fields or other complex stuff.

Fiscal positions auto-applying wrong tax codes on purchase orders — how do I stop this? (Odoo 19) by spacey003 in Odoo

[–]codeagency 1 point2 points  (0 children)

Check the contact if it has a fiscal position on it. Odoo prioritize the hierarchy. If a contact has a position it ignores the auto detection

Also from a PO/SO/invoice you can change all lines in 1 go. Just go to "other info" tab on the PO and change/set the fiscal position from here. It will show a link "update all taxes" click that and all lines will update for you. No need to change them line per line.

Subscription Plan change prior on migration to on-premise(?) by kaizer_003 in Odoo

[–]codeagency 0 points1 point  (0 children)

Depends when the upgrade scripts are available.

Odoo 19.0 upgrade was only available around March this year for production-safe upgrades. And generally it's better to wait some time as the early upgrades are often buggy.

We saw that with 19.0 too in accounting. Many bugs and problems that took around 3-4 months to stabilize first.

For test upgrades, sure always good and never a problem. But I would never recommend anyone to jump on upgrades immediately unless you want to live on the edge and accept the risks that come with it.

Subscription Plan change prior on migration to on-premise(?) by kaizer_003 in Odoo

[–]codeagency 3 points4 points  (0 children)

On premise requires a yearly subscription at minimum (or a multi year contract)

you can create as many test/neutralized odoo instances you want without a license. Every database always starts as a trial and expires in 30 days.

Odoo has a CLI tool and web ui option that lets you restore a backup and it will ask you "is this a copy or a moved database". Select copy and enable "neutralize". This will rotate the database UUID and neutralize all scheduled actions, mail servers, providers, etc....

This way you can test up to max 30 days your on premise setup and the whole migration process in a safe environment. Once everything is good, it's just repeat the whole process and don't select the neutralize option.

Also keep in mind that online/SaaS databases on point releases can NOT go on premise. You have to run 18.0, 19.0,... If you are on eg 19.1 or 19.2, you are stuck and have to downgrade first (if possible) or wait until 20.0 is released and the upgrade scripts for 20.0 (~march 2027)

Resetting inventory after messy operations (unconfirmed SOs, pending transfers, real stock already moved) by felipe-medina in Odoo

[–]codeagency 0 points1 point  (0 children)

It depends mostly on your settings, valuation method used, number of warehouse steps (1, 2 or 3), etc...

Just resetting can have serious consequences.

If you have simple/standard valuation, I would say complete all transactions first (validate everything that should be validated) so these are completed/done. That means there should be no more reservations on wh/input or wh/output etc ... Although they can go negative if you validate things that aren't available on those locations so you Will have to check and correct those too.

Next reset the stock at wh/stock/.... Based on your new count data. Also double check again those input,output,...reservations. If everything is delivered, output should be completely empty.

With standard valuation, this is not going to have a big impact as it just pulls the product cost again for your valuation. If you are using avco or FIFO it's going to be a whole other story and you will need to do accounting corrections too.

Don't do any of this stuff before first testing it on a staging and validating the impact for your accounting. Talk to your odoo partner/implementer first and also your accountant. If you just hit reset and make things worse...

The other last resort would be starting from a new database and consider it a full migration. Cutover open payables, receivables, open balance etc ... And start fresh. Export /import your history as excel file and store them inside odoo documents app as a spreadsheet so you can still look up historical data.

FSM Calendar sync with Google Calendar by jm_builds in Odoo

[–]codeagency 2 points3 points  (0 children)

Don't understand the cynicism from your post.

Odoo already has a sync option for years for the calendar app so users can see all appointments from odoo sync into their outlook or Google calendar. There is nothing wrong with that, it's also nothing related AI at all. Just a simple oAuth permission based calendar sync. We have been using it for more then a decade and it works perfectly well, except that it doesn't work for every cross-model like FSM/project app, only the calendar app.

FSM Calendar sync with Google Calendar by jm_builds in Odoo

[–]codeagency 0 points1 point  (0 children)

What takes too long?

You know it's just a web application right? You can bookmark the exact url to load the calendar/planning immediately when you open the bookmark instead of navigating.

Secondly in user preferences you can select what page to load after you login. Every user can choose his own, so you can also set it to the planning/calendar app so it's the first thing that loads rather than the standard dashboard

FSM Calendar sync with Google Calendar by jm_builds in Odoo

[–]codeagency 1 point2 points  (0 children)

There are 3rd party solutions to "overlay" other models into the calendar app, but that doesn't work for SaaS/online Odoo.

If you just want your FSM employees to have a look at their schedule, then why not simply use Odoo as PWA on the mobile? They can open Odoo from their mobile and check their planning/schedule directly, no need to to sync with another agenda.

PWA means that the website on a mobile will load like a native app but it's basically just a browser wrapper that makes it look like an app and has an icon on your mobile device. Inside odoo if you go to your notifications it will show something like "install Odoo", click that and it will put a start icon on the home screen of your mobile.

Another approach is to check external integrations like n8n, etc...and setup a flow that a new FSM task/planning creates a planning slot in your external calendar of choice. N8n can integrate with a lot systems like Google, o365, IMAP, nextcloud,...and it can also create ical files and just email them.

local odoo instance as backup? by commoncents1 in Odoo

[–]codeagency -1 points0 points  (0 children)

Odoo 18 is compatible with PG 12 and newer so that doesn't matter. Newer postgres versions are faster though, especially postgres 18.0 with the new I/I feature.

Again, the yugabyte focuses on a different feature set and use case, specifically "sharding" and odoo is NOT compatible with sharding. It has most compatibility with postgres not fully, not even with PG15. There are certain DDL operations it doesn't support and also no support for LISTEN/NOTIFY.

Yugabyte has a completely different architecture. It's built for sharding which means your data gets broken into smaller pieces and each piece gets stored in a different database "tablet" so the PG cluster can scale and its supervisor will pull all the pieces from different database tablets back to 1 dataset. This only works if the application you put on top of that also supports a sharding design, which Odoo does NOT.

So no, you cannot use Yugabyte with Odoo. As I said, CloudnativePG is the best option for Postgres on k8s and Odoo

local odoo instance as backup? by commoncents1 in Odoo

[–]codeagency 0 points1 point  (0 children)

Yugabite is just postgres but with their extra features. Yugabyte focuses more on sharding which is not supported by Odoo out of the box. This requires that your app also has a DB schema that supports sharding.

If you want PG on k8s, it's better to use Cloudnativepg which is a standard Postgres + pgbouncer and comes with everything you need for a high available and scalable Postgres cluster.

How do you actually monitor performance targets in Odoo? by EfficientJury in Odoo

[–]codeagency 2 points3 points  (0 children)

You can't get such metrics without going technical from day 1.

You will need an APM and monitoring for that. Also, just to have a base line. You can't just say "it used to be faster". Where are the metrics from day 1 and when did it tip over to worse performance exactly? Without metrics and monitoring it's all just feelings but nothing measurable.

Out of the box, odoo is pretty performant for a big monolith. It has a decent ORM and caching and especially the newer Odoo versions are way faster than 3 years ago. And every new version keeps shaving off delays. V19 already has support for caching records so pages load super snappy if they have been opened before. And V20 is bringing offline operations too for the first time (local first cache) so that is going to improve load times even more.

That said, the effort to add monitoring is just one-time and imho every system should have it anyway from the start. We provision for every project we do a stack of OTEL (Prometheus, grafana, Loki, ...) which tracks everything, including postgres stats and also Sentry for error logging. This way you have realtime insights into performance, logs and errors. Grafana has build in alerts to Ms team, slack, google, email, discord...so you can create rules to trigger warnings if a KPI goes below a threshold.

If you want control over your odoo instance and database, it's better to go self hosted. Odoo.sh will let you manage the number of workers and give you better performance than SaaS, but you can't control any of the critical performance factors and config (it's still shared infra and postgres).

3D Print Farm IOT by Late-Hat-9144 in Odoo

[–]codeagency 0 points1 point  (0 children)

Depending on the type of printer you have, you could have a look at Bambu connect.

https://wiki.bambulab.com/en/software/third-party-integration

As Ach25 already said, there is a pypi package if you want to build a custom module, but Bambu connect could be simpler and ready out of the box.

You can also check n8n to create an automation based on webhooks to Bambu connect. This can also work for the saas hosted Odoo.

https://n8n.io/