[ADD] website_sale_disable_cart: extract cart restriction from website_sale_aplicoop
The "shop as a read-only catalog" behaviour lived inside website_sale_aplicoop, so every site that wanted the eskaera flow also lost the standard cart. It now ships as its own installable addon, with the redirect target configurable instead of hardcoded to /eskaera. - website_sale_disable_cart: hides the cart UI (12 header styles + the product card quick-add) and overrides the standard cart endpoints. Redirect URL is configurable in Website settings (default /shop); only site-internal paths are accepted, so a misconfigured value cannot turn the shop into an open redirect nor loop back into a disabled route. - Fixes carried over from the original code: /shop/cart/quantity is the Odoo 18 path (it was /shop/cart_quantity, which never matched), the boxed, sidebar and sales two/three/four headers were not covered (the cart link stayed visible on them), and the routes now override the standard methods instead of registering duplicate ones. - website_sale_aplicoop 18.0.1.12.0: drops the view file and the four redirect routes; installing it no longer touches the standard shop. Upgrade order matters: update website_sale_aplicoop first, then install website_sale_disable_cart in a second Odoo run — both use the same XPaths and obsolete records are only cleaned up at the end of a run. Tests: 8/8 in website_sale_disable_cart, aplicoop unaffected (its 2 failures predate this change). Verified live on a DB clone: /shop/cart returns 303 to the configured URL and no cart markup remains on /shop. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
73660ee226
commit
f2194c5367
28 changed files with 733 additions and 91 deletions
|
|
@ -7,7 +7,8 @@ Sistema de pedidos colaborativos para grupos de consumo. Reemplaza el legacy Apl
|
|||
## Resumen de funcionalidades
|
||||
|
||||
- Gestión completa de órdenes de grupo (draft → confirmed → collected → invoiced → completed)
|
||||
- Carrito separado por grupo de consumo; tienda estándar de `website_sale` deshabilitada
|
||||
- Carrito separado por grupo de consumo (la tienda estándar de `website_sale` se
|
||||
puede deshabilitar aparte con `website_sale_disable_cart`)
|
||||
- Control de catálogo por listas de inclusión (proveedores, categorías, productos) y exclusión (blacklists)
|
||||
- Cron diario de auto-confirmación + creación automática de lotes de picking
|
||||
- Paginación de productos (lazy loading) para cargas rápidas
|
||||
|
|
@ -86,7 +87,9 @@ Todos los endpoints viven bajo `/eskaera/`:
|
|||
| `POST /eskaera/<order_id>/confirm` | Confirmar carrito (sale.order en draft) |
|
||||
| `POST /eskaera/clear-cart` | Limpiar carrito actual |
|
||||
|
||||
Las rutas `/cart` y `/shop` de `website_sale` están redirigidas a `/eskaera`.
|
||||
Las rutas estándar de `website_sale` (`/shop` y su carrito) no se tocan desde
|
||||
este módulo. Para desactivar el carrito estándar y redirigirlo a `/eskaera`,
|
||||
instala `website_sale_disable_cart` y configura la URL de redirección.
|
||||
|
||||
**Seguridad portal:** los usuarios solo ven órdenes de su `consumer_group_id`. La regla `rule_group_order_company_read` incluye guardia `user.share`.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue