diff --git a/website_sale_aplicoop/__manifest__.py b/website_sale_aplicoop/__manifest__.py
index b0cf8d3..296b487 100644
--- a/website_sale_aplicoop/__manifest__.py
+++ b/website_sale_aplicoop/__manifest__.py
@@ -42,6 +42,20 @@
"views/portal_templates.xml",
"views/load_from_history_templates.xml",
],
+ "demo": [
+ # Demo: Account Taxes (must be loaded first)
+ "demo/account_tax_demo.xml",
+ # Demo: Partners (Groups and Members)
+ "demo/res_partner_demo.xml",
+ # Demo: Suppliers
+ "demo/res_partner_suppliers_demo.xml",
+ # Demo: Products and Categories
+ "demo/product_demo.xml",
+ # Demo: Group Orders
+ "demo/group_order_demo.xml",
+ # Demo: Sale Orders
+ "demo/sale_order_demo.xml",
+ ],
"i18n": [
"i18n/es.po",
"i18n/eu_ES.po",
diff --git a/website_sale_aplicoop/demo/README.md b/website_sale_aplicoop/demo/README.md
new file mode 100644
index 0000000..03ca16e
--- /dev/null
+++ b/website_sale_aplicoop/demo/README.md
@@ -0,0 +1,247 @@
+# Demo Data - Website Sale Aplicoop
+
+Este directorio contiene datos de demostración completos para el addon `website_sale_aplicoop`, diseñados para mostrar todas las funcionalidades del sistema de pedidos colaborativos (eskaera) para cooperativas de consumo.
+
+## Contenido de los Archivos Demo
+
+### 1. `res_partner_demo.xml` - Grupos y Miembros
+
+**Grupos de Consumo (3 grupos):**
+- **Garaialde Kooperatiba** (Bilbao)
+ - Grupo activo con pedidos semanales
+ - 3 miembros activos
+
+- **Lamiakada Kontsumoko Taldea** (Donostia)
+ - Grupo con pedidos quincenales
+ - 2 miembros activos
+
+- **Eko Auzolan** (Gasteiz)
+ - Grupo con pedidos mensuales
+ - 2 miembros activos
+
+**Total Miembros:** 7 personas distribuidas entre los 3 grupos
+
+### 2. `res_partner_suppliers_demo.xml` - Proveedores
+
+**6 Proveedores Locales:**
+- **Baserritarra SL** - Productos frescos locales y de temporada
+- **Bio Zikloa Kooperatiba** - Productos ecológicos certificados
+- **Artizarra Esnea** - Lácteos artesanales del País Vasco
+- **Hiruki Kontserbak** - Conservas y productos elaborados artesanales
+- **Ekotalde Barazkiak** - Verduras eco de km 0
+- **Auzoko Okindegia** - Pan artesano y repostería tradicional vasca
+
+Todos los proveedores tienen `supplier_rank > 0` y pueden ser asignados a group orders.
+
+### 3. `product_demo.xml` - Productos y Categorías
+
+**Categorías de Producto:**
+- Fruta Fresca
+- Verdura Fresca
+- Lácteos
+- Pan y Repostería
+- Conservas
+
+**13 Productos Demo:**
+
+| Código | Nombre | Categoría | Proveedor(es) | Precio/€ |
+|-------------|-------------------------------|-----------------|------------------------|----------|
+| MANZ-ECO | Manzana Ecológica | Fruta | Baserritarra | 2.50/kg |
+| NARA-VAL | Naranja Valenciana | Fruta | Bio Zikloa | 2.80/kg |
+| PLAT-CAN | Plátano de Canarias | Fruta | Bio Zikloa | 3.20/kg |
+| TOMA-ECO | Tomate Ecológico | Verdura | Baserritarra | 3.50/kg |
+| LECH-KM0 | Lechuga Km 0 | Verdura | Ekotalde | 1.50/ud |
+| PIMI-VER | Pimiento Verde | Verdura | Ekotalde | 4.20/kg |
+| LECH-ENT | Leche Entera Artesana | Lácteos | Artizarra | 1.80/L |
+| YOGU-NAT | Yogur Natural (Pack 4) | Lácteos | Artizarra | 3.20/ud |
+| QUES-IDI | Queso Idiazabal D.O. | Lácteos | Artizarra | 25.00/kg |
+| PAN-INT | Pan Integral Artesano | Pan/Repostería | Auzoko Okindegia | 3.50/kg |
+| POST-GOX | Goxua (6 unidades) | Pan/Repostería | Auzoko Okindegia | 8.50/ud |
+| CONS-BON | Bonito del Norte en Aceite | Conservas | Hiruki | 12.50/ud |
+| CONS-PIQ | Pimientos del Piquillo D.O. | Conservas | Hiruki | 5.80/ud |
+
+**Plus:**
+- `SRV-DELIV` - Servicio de Envío a Domicilio (5.00€/servicio)
+
+Todos los productos incluyen:
+- Configuración de impuestos (IVA 4%, 10% o 21% según corresponda)
+- Información de proveedor (precio, cantidad mínima, plazo de entrega)
+- Unidades de medida apropiadas (kg, L, unidad)
+
+### 4. `group_order_demo.xml` - Pedidos de Grupo
+
+**8 Group Orders con diferentes configuraciones:**
+
+1. **Eskaera Astekaria Garaialde** (ACTIVO)
+ - Tipo: Regular (weekly)
+ - Grupo: Garaialde
+ - Pickup: Viernes / Cutoff: Jueves
+ - Home delivery: SÍ
+ - Proveedores: Baserritarra, Ekotalde, Artizarra, Okindegia
+ - Categorías: Frutas, Verduras, Lácteos, Pan
+
+2. **Eskaera Hamabostaldia Lamiakada** (ACTIVO)
+ - Tipo: Regular (biweekly)
+ - Grupo: Lamiakada
+ - Pickup: Sábado / Cutoff: Viernes
+ - Home delivery: NO
+ - Proveedores: Bio Zikloa, Hiruki
+ - Categorías: Frutas, Conservas
+
+3. **Eskaera Hilabetekoa Eko Auzolan** (ACTIVO)
+ - Tipo: Regular (monthly)
+ - Grupo: Eko Auzolan
+ - Pickup: Lunes / Cutoff: Domingo
+ - Home delivery: SÍ
+ - Productos específicos: Queso Idiazabal, Bonito, Pimientos Piquillo
+
+4. **Eskaera Berezia - Denboraldia** (ACTIVO - Temporal)
+ - Tipo: Special (once)
+ - Grupos: Garaialde + Lamiakada
+ - Duración: 14 días
+ - Productos de temporada: Tomate, Pimiento, Lechuga
+
+5. **Eskaera Promozionala - Gabonak** (FUTURO)
+ - Tipo: Promotional (once)
+ - Grupos: Los 3 grupos
+ - Inicio: +5 días / Fin: +21 días
+ - Productos: Goxua, Queso Idiazabal, Bonito
+
+6. **Eskaera Astekaria (Itxita)** (CERRADO - Histórico)
+ - Ejemplo de pedido histórico finalizado
+ - Útil para testing de históricos
+
+7. **Eskaera Kolektiboa - Ekintza Elkartua** (MULTI-GRUPO)
+ - Los 3 grupos participan
+ - Productos excluidos: Plátano de Canarias (demo de blacklist)
+
+8. **Eskaera Urtekoa - Produktu Iraunkorra** (CON EXCLUSIONES)
+ - Demo de funcionalidad de blacklist
+ - Excluye: Pimientos del Piquillo
+
+### 5. `sale_order_demo.xml` - Pedidos de Venta
+
+**9 Sale Orders** asociados a diferentes group orders y miembros:
+
+**Estado CONFIRMED (sale):**
+- Ane García: 4 líneas (frutas, verduras, leche, pan) - Pickup en tienda
+- Mikel Lopez: 3 líneas + delivery - Con envío a domicilio ✓
+- Jon Fernández: 3 líneas (conservas, frutas)
+- Unai Sánchez: 3 líneas + delivery - Pedido mensual
+
+**Estado DRAFT:**
+- Leire Martínez: 2 líneas (naranjas, queso)
+- Amaia Méndez: 1 línea (naranjas)
+- Ainhoa Rodríguez: 1 línea (conservas)
+- Ane García (especial): 3 líneas - Pedido de temporada
+
+**Características destacadas:**
+- Mezcla de pedidos confirmados y en borrador
+- Algunos con home_delivery=True (incluyen producto de delivery)
+- Diferentes fechas de pickup según el group order
+- Cantidades realistas y variadas
+
+## Instalación y Uso
+
+### Instalación Básica (Sin Demo)
+
+```bash
+docker-compose run odoo odoo -d odoo -i website_sale_aplicoop --stop-after-init
+```
+
+### Instalación con Datos Demo
+
+```bash
+docker-compose run odoo odoo -d odoo -i website_sale_aplicoop --load-language=es_ES --load-language=eu_ES --stop-after-init --demo=True
+```
+
+O desde la UI de Odoo:
+1. Apps > Buscar "Website Sale - Aplicoop"
+2. Asegurarse de que la base de datos tiene demo data habilitado
+3. Instalar el módulo
+
+### Acceso a los Datos Demo
+
+**Backend (Odoo):**
+- Ventas > Órdenes > Consumer Group Orders
+- Contactos > Filtrar por "Is a Consumer Group"
+- Productos > Ver productos demo con prefijos MANZ-, NARA-, etc.
+
+**Frontend (Website):**
+1. Ir a `/shop/eskaera`
+2. Los group orders estarán visibles según permisos
+3. Hacer login como uno de los miembros demo para probar el flujo completo
+
+### Usuarios Demo Recomendados
+
+Para testing, crear usuarios de Odoo asociados a estos partners:
+- `ane.garcia@example.com` (Garaialde - Pedido semanal)
+- `jon.fernandez@example.com` (Lamiakada - Pedido quincenal)
+- `unai.sanchez@example.com` (Eko Auzolan - Pedido mensual)
+
+## Casos de Uso Cubiertos
+
+Los datos demo permiten probar:
+
+✅ **Flujos básicos:**
+- Crear/editar/confirmar pedidos individuales
+- Añadir productos al carrito de eskaera
+- Seleccionar home delivery
+- Ver fechas de pickup y cutoff
+
+✅ **Configuraciones variadas:**
+- Pedidos semanales, quincenales, mensuales
+- Pedidos especiales (one-time)
+- Pedidos promocionales con fechas futuras
+- Multi-grupo (varios grupos en un pedido)
+
+✅ **Filtrado de productos:**
+- Por proveedores
+- Por categorías
+- Por productos específicos
+- Con exclusiones (blacklist)
+
+✅ **Gestión de grupos:**
+- Múltiples grupos de diferentes ciudades
+- Miembros con diferentes patrones de compra
+- Asociaciones grupo-miembro
+
+✅ **Reportes y análisis:**
+- Pedidos históricos (cerrados)
+- Pedidos activos con diferentes estados
+- Datos para testing de lazy loading
+- Datos para testing de date calculations
+
+## Mantenimiento
+
+Para regenerar o actualizar los datos demo:
+
+```bash
+# Limpiar base de datos
+docker-compose run odoo odoo -d odoo --init=website_sale_aplicoop --demo=True --stop-after-init
+
+# O actualizar solo el módulo
+docker-compose run odoo odoo -d odoo -u website_sale_aplicoop --stop-after-init
+```
+
+## Notas Importantes
+
+- Los precios incluyen IVA según categoría de producto
+- Las fechas de group orders usan `eval` con `DateTime.today()` para ser dinámicas
+- Los supplierinfo están correctamente configurados con precios y MOQ
+- Todos los partners tienen direcciones completas en España (Euskadi)
+- Los códigos de producto siguen un patrón coherente para fácil identificación
+
+## Contribuir
+
+Para añadir más datos demo:
+1. Seguir la estructura existente
+2. Usar XML IDs descriptivos (ej: `product_nombre_descriptivo`)
+3. Mantener coherencia en nombres (euskera + castellano)
+4. Documentar en este README
+
+---
+
+**Versión:** 18.0.1.7.0
+**Última actualización:** 2026-02-26
+**Autor:** Criptomart
diff --git a/website_sale_aplicoop/demo/account_tax_demo.xml b/website_sale_aplicoop/demo/account_tax_demo.xml
new file mode 100644
index 0000000..61850f1
--- /dev/null
+++ b/website_sale_aplicoop/demo/account_tax_demo.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+ IVA 4% (Demo)
+ 4.0
+ percent
+ sale
+
+ IVA4
+
+
+
+ IVA 4% Compras (Demo)
+ 4.0
+ percent
+ purchase
+
+ IVA4_P
+
+
+
+
+ IVA 10% (Demo)
+ 10.0
+ percent
+ sale
+
+ IVA10
+
+
+
+ IVA 10% Compras (Demo)
+ 10.0
+ percent
+ purchase
+
+ IVA10_P
+
+
+
+
+ IVA 21% (Demo)
+ 21.0
+ percent
+ sale
+
+ IVA21
+
+
+
+ IVA 21% Compras (Demo)
+ 21.0
+ percent
+ purchase
+
+ IVA21_P
+
+
+
diff --git a/website_sale_aplicoop/demo/group_order_demo.xml b/website_sale_aplicoop/demo/group_order_demo.xml
new file mode 100644
index 0000000..dfec880
--- /dev/null
+++ b/website_sale_aplicoop/demo/group_order_demo.xml
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+
+
+ Eskaera Astekaria Garaialde
+ 10
+
+ regular
+
+
+ weekly
+ 4
+
+ 3
+
+
+
+
+
+
+
+
+
+
+ Eskaera Hamabostaldia Lamiakada
+ 20
+
+ regular
+
+
+ biweekly
+ 5
+
+ 4
+
+
+
+
+
+
+
+
+
+ Eskaera Hilabetekoa Eko Auzolan
+ 30
+
+ regular
+
+
+ monthly
+ 0
+
+ 6
+
+
+
+
+
+
+
+
+
+
+ Eskaera Berezia - Denboraldia
+ 40
+
+ special
+
+
+ once
+ 5
+
+ 3
+
+
+
+
+
+
+
+
+
+ Eskaera Promozionala - Gabonak
+ 50
+
+ promotional
+
+
+ once
+ 4
+
+ 2
+
+
+
+
+
+
+
+
+
+
+ Eskaera Astekaria (Itxita)
+ 100
+
+ regular
+
+
+ weekly
+ 4
+ 3
+
+
+
+
+
+
+
+
+
+ Eskaera Kolektiboa - Ekintza Elkartua
+ 15
+
+ regular
+
+
+ monthly
+ 6
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+ Eskaera Urtekoa - Produktu Iraunkorra
+ 25
+
+ regular
+
+
+ monthly
+ 1
+
+ 0
+
+
+
+
+
+
+
+
+
+
diff --git a/website_sale_aplicoop/demo/product_demo.xml b/website_sale_aplicoop/demo/product_demo.xml
new file mode 100644
index 0000000..292bb24
--- /dev/null
+++ b/website_sale_aplicoop/demo/product_demo.xml
@@ -0,0 +1,365 @@
+
+
+
+
+
+
+
+ Fruta Fresca
+
+
+
+
+ Verdura Fresca
+
+
+
+
+ Lácteos
+
+
+
+
+ Pan y Repostería
+
+
+
+
+ Conservas
+
+
+
+
+
+
+
+
+
+ Manzana Ecológica
+ MANZ-ECO
+
+ consu
+ 2.50
+ 1.20
+
+
+
+
+
+
+
+
+
+ Naranja Valenciana
+ NARA-VAL
+
+ consu
+ 2.80
+ 1.50
+
+
+
+
+
+
+
+
+
+ Plátano de Canarias
+ PLAT-CAN
+
+ consu
+ 3.20
+ 1.80
+
+
+
+
+
+
+
+
+
+
+ Tomate Ecológico
+ TOMA-ECO
+
+ consu
+ 3.50
+ 1.80
+
+
+
+
+
+
+
+
+
+ Lechuga Km 0
+ LECH-KM0
+
+ consu
+ 1.50
+ 0.80
+
+
+
+
+
+
+
+
+
+ Pimiento Verde
+ PIMI-VER
+
+ consu
+ 4.20
+ 2.10
+
+
+
+
+
+
+
+
+
+
+ Leche Entera Artesana
+ LECH-ENT
+
+ consu
+ 1.80
+ 1.00
+
+
+
+
+
+
+
+
+
+ Yogur Natural (Pack 4)
+ YOGU-NAT
+
+ consu
+ 3.20
+ 1.80
+
+
+
+
+
+
+
+
+
+ Queso Idiazabal D.O.
+ QUES-IDI
+
+ consu
+ 25.00
+ 15.00
+
+
+
+
+
+
+
+
+
+
+ Pan Integral Artesano
+ PAN-INT
+
+ consu
+ 3.50
+ 1.80
+
+
+
+
+
+
+
+
+
+ Goxua (6 unidades)
+ POST-GOX
+
+ consu
+ 8.50
+ 4.50
+
+
+
+
+
+
+
+
+
+
+ Bonito del Norte en Aceite
+ CONS-BON
+
+ consu
+ 12.50
+ 7.00
+
+
+
+
+
+
+
+
+
+ Pimientos del Piquillo D.O.
+ CONS-PIQ
+
+ consu
+ 5.80
+ 3.20
+
+
+
+
+
+
+
+
+
+
+ Servicio de Envío a Domicilio
+ SRV-DELIV
+
+ service
+ 5.00
+ 0.00
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.20
+ 10.0
+ 2
+
+
+
+
+
+ 1.80
+ 5.0
+ 2
+
+
+
+
+
+
+ 1.50
+ 10.0
+ 3
+
+
+
+
+
+ 1.80
+ 10.0
+ 3
+
+
+
+
+
+
+ 1.00
+ 20.0
+ 1
+
+
+
+
+
+ 1.80
+ 10.0
+ 1
+
+
+
+
+
+ 15.00
+ 2.0
+ 7
+
+
+
+
+
+
+ 1.80
+ 5.0
+ 1
+
+
+
+
+
+ 4.50
+ 2.0
+ 1
+
+
+
+
+
+
+ 7.00
+ 6.0
+ 5
+
+
+
+
+
+ 3.20
+ 12.0
+ 5
+
+
+
+
+
+
+ 0.80
+ 10.0
+ 1
+
+
+
+
+
+ 2.10
+ 5.0
+ 1
+
+
+
diff --git a/website_sale_aplicoop/demo/res_partner_demo.xml b/website_sale_aplicoop/demo/res_partner_demo.xml
new file mode 100644
index 0000000..b5a59eb
--- /dev/null
+++ b/website_sale_aplicoop/demo/res_partner_demo.xml
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+ Garaialde Kooperatiba
+
+
+ Garaialde Kalea 1
+ Bilbao
+ 48012
+
+ garaialde@kooperatiba.eus
+ +34 944 123 456
+
+
+
+ Lamiakada Kontsumoko Taldea
+
+
+ Lamia Plaza 5
+ Donostia
+ 20004
+
+ info@lamiakada.eus
+ +34 943 234 567
+
+
+
+ Eko Auzolan
+
+
+ Arrasate Bidea 22
+ Gasteiz
+ 01008
+
+ kontaktua@ekoauzolan.eus
+ +34 945 345 678
+
+
+
+
+
+
+
+
+ Ane García Etxebarria
+
+ Autonomia Kalea 15, 3A
+ Bilbao
+ 48012
+
+ ane.garcia@example.com
+ +34 666 111 222
+
+
+
+
+ Mikel Lopez Zubizarreta
+
+ Elcano Kalea 8, 2B
+ Bilbao
+ 48012
+
+ mikel.lopez@example.com
+ +34 666 222 333
+
+
+
+
+ Leire Martínez Galdos
+
+ Uribitarte Kalea 5, 4D
+ Bilbao
+ 48001
+
+ leire.martinez@example.com
+ +34 666 333 444
+
+
+
+
+
+ Jon Fernández Iraola
+
+ Zurriola Hiribidea 12, 1A
+ Donostia
+ 20002
+
+ jon.fernandez@example.com
+ +34 677 111 222
+
+
+
+
+ Amaia Méndez Etxeberria
+
+ Ategorrieta Kalea 33, 5C
+ Donostia
+ 20013
+
+ amaia.mendez@example.com
+ +34 677 222 333
+
+
+
+
+
+ Unai Sánchez Alonso
+
+ Portal de Castilla 18, 2A
+ Gasteiz
+ 01007
+
+ unai.sanchez@example.com
+ +34 688 111 222
+
+
+
+
+ Ainhoa Rodríguez Pérez
+
+ Florida Kalea 7, 1B
+ Gasteiz
+ 01005
+
+ ainhoa.rodriguez@example.com
+ +34 688 222 333
+
+
+
+
diff --git a/website_sale_aplicoop/demo/res_partner_suppliers_demo.xml b/website_sale_aplicoop/demo/res_partner_suppliers_demo.xml
new file mode 100644
index 0000000..98069a7
--- /dev/null
+++ b/website_sale_aplicoop/demo/res_partner_suppliers_demo.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+ Baserritarra SL
+
+
+ Basarte Baserria s/n
+ Zestoa
+ 20740
+
+ pedidos@baserritarra.eus
+ +34 943 147 258
+ Proveedor de productos frescos locales y de temporada
+
+
+
+ Bio Zikloa Kooperatiba
+
+
+ Errekalde Industrialdea 15
+ Irun
+ 20304
+
+ info@biozikloa.eus
+ +34 943 625 789
+ Productos ecológicos certificados
+
+
+
+ Artizarra Esnea
+
+
+ Aralar Etorbidea 33
+ Tolosa
+ 20400
+
+ pedidos@artizarra.com
+ +34 943 654 321
+ Lácteos artesanales del País Vasco
+
+
+
+ Hiruki Kontserbak
+
+
+ Industrialdea 8
+ Gernika
+ 48300
+
+ ventas@hiruki.eus
+ +34 946 257 412
+ Conservas y productos elaborados artesanales
+
+
+
+ Ekotalde Barazkiak
+
+
+ Merkataritza Plaza 2
+ Durango
+ 48200
+
+ info@ekotalde.eus
+ +34 946 234 789
+ Verduras eco de km 0
+
+
+
+ Auzoko Okindegia
+
+
+ Elcano Kalea 44
+ Bilbao
+ 48008
+
+ okindegia@auzokookindegia.eus
+ +34 944 789 123
+ Pan artesano y repostería tradicional vasca
+
+
+
diff --git a/website_sale_aplicoop/demo/sale_order_demo.xml b/website_sale_aplicoop/demo/sale_order_demo.xml
new file mode 100644
index 0000000..eb44b60
--- /dev/null
+++ b/website_sale_aplicoop/demo/sale_order_demo.xml
@@ -0,0 +1,265 @@
+
+
+
+
+
+
+
+
+
+
+
+ 4
+
+
+
+ sale
+
+
+
+
+
+
+
+ 2.5
+
+ 2.50
+
+
+
+
+
+ 1.5
+
+ 3.50
+
+
+
+
+
+ 4.0
+
+ 1.80
+
+
+
+
+
+ 1.0
+
+ 3.50
+
+
+
+
+
+
+ 4
+
+
+ sale
+
+
+
+
+
+
+
+ 2.0
+
+ 1.50
+
+
+
+
+
+ 3.0
+
+ 3.20
+
+
+
+
+
+ 1.0
+
+ 5.00
+
+
+
+
+
+
+ 4
+
+
+ draft
+
+
+
+
+
+
+
+ 3.0
+
+ 2.80
+
+
+
+
+
+ 0.5
+
+ 25.00
+
+
+
+
+
+
+ 5
+
+
+ sale
+
+
+
+
+
+
+
+ 3.0
+
+ 12.50
+
+
+
+
+
+ 2.0
+
+ 5.80
+
+
+
+
+
+ 2.0
+
+ 3.20
+
+
+
+
+
+
+ 5
+
+
+ draft
+
+
+
+
+
+
+
+ 5.0
+
+ 2.80
+
+
+
+
+
+
+ 0
+
+
+ sale
+
+
+
+
+
+
+
+ 1.0
+
+ 25.00
+
+
+
+
+
+ 6.0
+
+ 12.50
+
+
+
+
+
+ 1.0
+
+ 5.00
+
+
+
+
+
+
+ 0
+
+
+ draft
+
+
+
+
+
+
+
+ 4.0
+
+ 5.80
+
+
+
+
+
+
+ 5
+
+
+ draft
+
+
+
+
+
+
+
+ 5.0
+
+ 3.50
+
+
+
+
+
+ 2.0
+
+ 4.20
+
+
+
+
+
+ 3.0
+
+ 1.50
+
+
+
diff --git a/website_sale_aplicoop/models/product_extension.py b/website_sale_aplicoop/models/product_extension.py
index 6fa1134..defc458 100644
--- a/website_sale_aplicoop/models/product_extension.py
+++ b/website_sale_aplicoop/models/product_extension.py
@@ -1,12 +1,10 @@
-# Copyright 2025 Criptomart
+# Copyright 2025 - Today Criptomart
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
from odoo import api
from odoo import fields
from odoo import models
-# Note: translation function _ is not used in this module (removed to satisfy flake8)
-
class ProductProduct(models.Model):
_inherit = "product.product"
diff --git a/website_sale_aplicoop/static/src/js/home_delivery.js b/website_sale_aplicoop/static/src/js/home_delivery.js
index 54676d4..68de98b 100644
--- a/website_sale_aplicoop/static/src/js/home_delivery.js
+++ b/website_sale_aplicoop/static/src/js/home_delivery.js
@@ -20,9 +20,22 @@
var page = checkoutPage || shopPage;
if (page) {
- this.deliveryProductId = page.getAttribute("data-delivery-product-id");
+ var deliveryProductIdStr = page.getAttribute("data-delivery-product-id");
+ // Parse to integer, filter out None/empty/invalid values
+ if (
+ deliveryProductIdStr &&
+ deliveryProductIdStr !== "None" &&
+ deliveryProductIdStr !== ""
+ ) {
+ this.deliveryProductId = parseInt(deliveryProductIdStr, 10);
+ if (isNaN(this.deliveryProductId)) {
+ this.deliveryProductId = null;
+ }
+ }
console.log(
"[HomeDelivery] deliveryProductId from attribute:",
+ deliveryProductIdStr,
+ "-> parsed:",
this.deliveryProductId,
"type:",
typeof this.deliveryProductId
@@ -55,32 +68,49 @@
}
}
- // Get order ID from confirm button
+ // Get order ID from multiple possible sources
var confirmBtn = document.getElementById("confirm-order-btn");
- if (confirmBtn) {
- this.orderId = confirmBtn.getAttribute("data-order-id");
- console.log("[HomeDelivery] orderId from button:", this.orderId);
+ var cartContainer = document.getElementById("cart-items-container");
+ var orderIdElement = confirmBtn || cartContainer;
+
+ if (orderIdElement) {
+ this.orderId = orderIdElement.getAttribute("data-order-id");
}
+ // If still not found, try to extract from URL
+ if (!this.orderId) {
+ var urlMatch = window.location.pathname.match(/\/eskaera\/(\d+)/);
+ this.orderId = urlMatch ? urlMatch[1] : null;
+ }
+
+ console.log("[HomeDelivery] orderId resolved:", this.orderId);
+
+ // Handle checkbox (only exists on checkout page)
var checkbox = document.getElementById("home-delivery-checkbox");
- if (!checkbox) return;
+ if (checkbox) {
+ var self = this;
+ checkbox.addEventListener("change", function () {
+ if (this.checked) {
+ self.addDeliveryProduct();
+ self.showDeliveryInfo();
+ } else {
+ self.removeDeliveryProduct();
+ self.hideDeliveryInfo();
+ }
+ });
- var self = this;
- checkbox.addEventListener("change", function () {
- if (this.checked) {
- self.addDeliveryProduct();
- self.showDeliveryInfo();
- } else {
- self.removeDeliveryProduct();
- self.hideDeliveryInfo();
- }
- });
+ // Check if delivery product is already in cart on page load
+ this.checkDeliveryInCart();
+ }
- // Check if delivery product is already in cart on page load
- this.checkDeliveryInCart();
-
- // Vincular botón Home Delivery en el shop (cart header)
- this.bindShopHomeDeliveryButton();
+ // Vincular botón Home Delivery en el shop SOLO si hay un producto de delivery válido
+ if (this.deliveryProductId && this.homeDeliveryEnabled) {
+ this.bindShopHomeDeliveryButton();
+ } else {
+ console.log(
+ "[HomeDelivery] Shop button NOT bound - no delivery product or disabled"
+ );
+ }
},
bindShopHomeDeliveryButton: function () {