Skip to Content
Menu
You need to be registered to interact with the community.
This question has been flagged
2 Odgovori
2260 Prikazi

In the French localisation, there is a module that prevents fraud on POS orders by allowing them to not be modified, as this is a requirement by law. The issue is that this is implemented in such a way that it really disrupts the user experience in the store. 

Several downsides:

  • Ongoing orders can not be deleted, making the ongoing order list increase in size over time with "garbage" orders.   
  • Products cannot be removed from the order entirely. There will always be an order line for every product that was at one point added to the order. If the product is removed from the order, it will still be there with a quantity of 0. Any misclick by the store employee or a change of product by the customer during the shopping process will therefore always be reflected on the final order. This makes the final order way contain irrelevant information, less clear to both the store employee and the customer. 

I understand the reasoning behind the inalterability of an order once it has been validated/paid, but what is the reasoning behind not allowing these operations for ongoing orders? 


Avatar
Opusti
Best Answer

The reason for the restrictions on ongoing orders in the French localization of Odoo's point of sale is to comply with French tax regulations and prevent fraud. In France, it is required by law that POS orders cannot be modified after they have been validated, in order to prevent any fraudulent activity such as changing the order to avoid taxes or changing prices after the fact.

To ensure compliance with these regulations, Odoo has implemented restrictions on ongoing orders in the French localization of the point of sale module. This means that once an order has been created, it cannot be deleted or modified in any way, in order to ensure the integrity of the transaction and prevent fraud.

However, as you have pointed out, these restrictions can be disruptive to the user experience and can lead to issues such as an increase in the ongoing order list and irrelevant information on the final order.

To address these issues, you may want to consider the following options:

Educate your store employees about the restrictions on ongoing orders and how to avoid mistakes that can lead to irrelevant information on the final order.

Use the "Cancel" button on the ongoing order to cancel it instead of trying to delete it. This will remove the order from the ongoing order list and prevent it from being added to the final order.

Use the "Discount" button to adjust the price of the product instead of removing it entirely. This will ensure that the product remains on the order but with a reduced price, instead of being removed entirely and causing confusion on the final order.

Overall, while the restrictions on ongoing orders in the French localization of Odoo's point of sale module may be disruptive to the user experience, they are necessary to comply with French tax regulations and prevent fraud. By educating your store employees and using the available tools in the POS system, you can mitigate the impact of these restrictions on your business operations.

Avatar
Opusti
Avtor

Some remarks:

I am not sure I am following you on the "Cancel" button. Do you mean the "Cancel" button in the backend? As these are ongoing orders, there is no data in the backend. These are orders that only exist in the cache of your browser.

The "Discount" button won't work for this purpose, as this only works for price adjustments of the product. Let's say a customer comes to the checkout requesting product X and Y. Then, before the order is validated, the customer decides to only buy product Z. In a case like this, in the French POS there would be 3 order lines, with a 0 qty for product X and Y.

How does this make sense?

As you said:
"In France, it is required by law that POS orders cannot be modified after they have been validated, in order to prevent any fraudulent activity such as changing the order to avoid taxes or changing prices after the fact"
You clearly state "after they have been validated", but the current workflow is blocking certain modifications on unvalidated POS orders as well.

My apologies for any confusion my previous response may have caused.

Regarding the "Cancel" button, I was referring to the "Cancel" button on the order screen in the Odoo POS front end. If the orders only exist in the cache of the browser, then cancelling the order should remove it from the cache and effectively cancel it.

Regarding the "Discount" button, you are correct that it is not suitable for this purpose as it only adjusts the price of the product and not the tax. My apologies for the confusion.

Regarding the requirement that Odoo POS orders cannot be modified after they have been validated, I apologize for any confusion I may have caused. I should have clarified that this is a general practice in many countries, including France, to prevent fraudulent activity. However, the exact rules and regulations may vary depending on the jurisdiction. If the current workflow is blocking certain modifications on unvalidated POS orders as well, then this may be due to specific configuration settings or customizations in your instance of Odoo.

Avtor

I am still not sure which "Cancel" button you are referring to in the POS front end.
Am I missing something? In the video below of native Odoo 16 there is also no "Cancel" button anywhere to be seen.
https://www.youtube.com/watch?v=APRA-PBRLBw&ab_channel=OdooMates

Regarding the order modification restrictions on unvalidated orders, unless you can explain me otherwise, I can say with guarantee that there is no circumvention of this behavior when the FR anti-fraud module is installed. The module just checks if the POS is for a French country, and if so, it does not allow items to be removed from the order, and the deletion of the order itself. There is no order status check whatsoever in the code that would allow these operations on an unverified order

Best Answer

I have exactly the same issue. The workflow is not good. Modifying an order that has not been validated yet should definitely be possible. There is a misunderstanding of the french law here. All the other POS system allow removing order lines on a ticket if the ticket has not been validated yet.

Also, I don't see a cancel button neither.

Christoph, did you find a workaround?

Avatar
Opusti

Hi Nicolas,
if this implementation is wrong, could you provide a document stating the same so that we can update/fix the current behavior in the core showing the correct the law.

thanks

Hi Niyas,
The rules are described here :
https://bofip.impots.gouv.fr/bofip/10691-PGP.html/identifiant%3DBOI-TVA-DECLA-30-10-30-20210519

The important part start at the chapter 50, it describes which data are concerned and when. Basically, once a transaction is done, everything need to be logged and nothing can be erased anymore. But the process of creating the ticket is not subject to inalterability. You can definitely remove, modify and add some lines to a ticket. But as soon as the transaction happens (through a payment, or a ticket printed and given to the client, or even any agreement for a post-payment), things can't be modified anymore.

I used several certified POS systems, and I never saw it implemented the way it's implemented in Odoo. Inalterability is very important, but not during the process of creating the ticket. Printing lines with quantities at 0 and prices at 0, then a new quantity on an other line, is something clients don't understand and never see elsewhere, plus the vendor experience is horrible.

Thanks,

Nicolas

Avtor

Hi Nicolas

We've just written some code to adjust this logic, and allow these modifications for unconfirmed orders. I am not a lawyer, so I don't want to make strong claims about the legal implications. However, our customer (with contacts to a legal dept.) had let us know that this would be still in conformance with the law.

Kind regards

Christoph, Co-founder of Diginav

Related Posts Odgovori Prikazi Aktivnost
1
jul. 25
2315
1
maj 25
1634
0
maj 25
813
4
avg. 25
3694
1
apr. 25
2077