Ebraheem Hashem How to Hide Product Variants on an Odoo 19 Website Odoo shows every variant on the product page, and the obvious fix does not work: the publish flag lives on product.template, not product.product. Here is why, what the workarounds cost, and the module that curates the storefront without touching the backend. 18/08/2026
Ebraheem Hashem Stop POS Staff Deleting Kitchen-Sent Lines in Odoo 19 In stock Odoo POS, a waiter can clear a line already sent to the kitchen in two taps. Removing delete rights does not help, because the POS syncs an edited order — the ORM sees a write, not an unlink. Here is the mechanism, and the server-verified control that closes it. 18/08/2026
Ebraheem Hashem Odoo 19 Trial Balance: Get Debit and Credit Columns Back In Odoo 17 and 18 the Trial Balance showed Debit and Credit for both the opening and closing position. Odoo 19 shows a single net Balance for each. Here is what changed, why a single column is the wrong shape for a proof, and how to restore the classic layout. 18/08/2026
Ebraheem Hashem How to Generate a Saudi WPS File from Odoo The HRSD specification lets each bank agree its own wage-file layout, which is why a hard-coded exporter never survives a change of bank. Here is what WPS actually requires, and how to build the file from Odoo with only the base HR app installed. 18/08/2026
Ebraheem Hashem One Odoo Digest Email for All Your Companies Odoo's digest email covers a single company, and on Odoo 19 per-company KPI computation silently returns zeros — an open issue since 2021. Here is the exact mechanism, and a module that gives you one email with a block per company and a combined total. 18/08/2026
Ebraheem Hashem Split Odoo's Merged General Ledger Cell Into 3 Columns Odoo's General Ledger concatenates the entry number, the reference and the label into one cell — and truncates it. In an audit report that is missing data, and it stays missing in the export. Here is the fix that does not rewrite the report. 18/08/2026