Odoo addons personalizados por Criptomart
Find a file
GitHub Copilot e625b0c2f3 [IMP] website_sale_aplicoop: pay on the checkout page, not a step later
The separate /eskaera/<slug>/payment step is gone. Members review the
summary, choose home delivery and pick a payment method on the checkout,
in one screen; the old URL redirects there so bookmarks and sessions that
were mid-flow do not hit a 404.

The checkout now renders the member's draft sale.order instead of the
localStorage cart. That is what fixes the products appearing "out of
nowhere" between the two pages: the summary was a snapshot of localStorage
taken at page load, and `_autoLoadDraftOnInit` then pulled the draft back
into localStorage without re-rendering. Deleting a product in the shop
removed it from the cart but left the line on the draft, so the autoload
resurrected it, the confirm button sent it back, and it only became
visible one page later. The checkout no longer auto-loads the draft — it
renders it, and what it shows is what the payment form charges.

"Proceed to Checkout" pushes the cart to that draft before navigating.
Saving is idempotent: `_merge_or_replace_draft` reuses the cycle's draft
and, through the new `_draft_matches_lines`, rewrites `order_line` only
when the lines actually differ — replacing them unlinks and recreates
every one of them, which is pure churn when nothing changed.

The home delivery checkbox goes through the new /eskaera/set-home-delivery
so the delivery line moves on the order itself. Writing only to
localStorage would have changed the summary and left the amount alone,
which with online payment on is the amount being charged.

Also fixes the confirmation notice nobody ever saw: saving answered with
the payment step URL and the frontend followed it immediately, destroying
the toast in the same tick. Saving no longer navigates; the caller decides
whether it is staying or moving on.

Along the way: checkout_labels.js and the eskaera_checkout_summary /
eskaera_payment templates are removed, superseded by the server-rendered
summary and checkout, and the stale sessionStorage delivery preference no
longer overrides the checkbox the order just rendered.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 19:14:49 +02:00
.claude [IMP] website_sale_aplicoop: accessibility and responsive polish — phase 8 2026-08-16 11:34:38 +02:00
.github [ADD] website_sale_disable_cart: extract cart restriction from website_sale_aplicoop 2026-08-06 11:34:59 +02:00
.vscode build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
account_banking_mandate_batch acción de servidor para crear mandatos bancarios en lote 2026-08-07 16:38:15 +02:00
account_invoice_triple_discount_readonly iconos 2026-02-25 18:41:16 +01:00
docs [IMP] website_sale_aplicoop: accessibility and responsive polish — phase 8 2026-08-16 11:34:38 +02:00
l10n_es_edi_tbai_reagyp_recibidas Revert "[FIX] l10n_es_edi_tbai_reagyp_recibidas: fix chaining within same invoice series" 2026-07-31 19:11:49 +02:00
l10n_es_partner_ccpae addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
membership_expiry_reminder cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
membership_monthly_invoicing create monthly recurring membership lines 2026-06-02 14:22:13 +02:00
membership_payment_date #2 #3 add membership_payment_date: membership start date -> payment date. Don't overlap membership periods on renewals 2026-07-14 11:56:57 +02:00
portal_event_registration cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
pos_account_payment_order_sepa paso a pos.sessions más natural, los apuntes están ahí. 2026-06-26 19:57:07 +02:00
pos_full_refund addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
pos_order_reorder addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
pos_payment_method_cashdro_fix [IMP] docker-compose: host paths in .env, override merged in 2026-08-17 13:57:25 +02:00
pos_payment_method_cashdro_rounding [ADD] pos_payment_method_cashdro_rounding: migration to 18.0 2026-08-11 13:30:49 +02:00
product_origin_char [I18N] website_sale_aplicoop, product_origin_char: add Catalan translation 2026-08-13 11:52:54 +02:00
product_price_category_supplier iconos 2026-02-25 18:41:16 +01:00
product_pricelist_total_margin iconos 2026-02-25 18:41:16 +01:00
product_sale_price_from_pricelist [ADD] product_sale_price_from_pricelist: server action to bulk-correct purchase price from supplierinfo 2026-06-12 16:30:15 +02:00
purchase_rappel Ecocentral/ecocentral#172: migrate purchase_rappel to 18.0 2026-06-23 14:30:03 +02:00
scripts [I18N] website_sale_aplicoop: Limpieza de traducciones y etiquetas UI en inglés por defecto 2026-02-26 14:33:44 +01:00
setup build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
sort_lines_by_product_name addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
stock_picking_batch_custom [IMP] stock_picking_batch_custom: allow deleting operator lines, show picking reference 2026-07-15 16:26:14 +02:00
stock_picking_report_undelivered_product addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
website_membership_associate add website_membership_associate 2026-07-28 09:29:14 +02:00
website_membership_signup_required website_membership_signup_required: fix reset_password form 2026-07-27 11:25:19 +02:00
website_sale_aplicoop [IMP] website_sale_aplicoop: pay on the checkout page, not a step later 2026-08-17 19:14:49 +02:00
website_sale_disable_cart [ADD] website_sale_disable_cart: extract cart restriction from website_sale_aplicoop 2026-08-06 11:34:59 +02:00
.editorconfig build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
.env.example [IMP] docker-compose: host paths in .env, override merged in 2026-08-17 13:57:25 +02:00
.flake8 cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
.gitignore [REM] CLAUDE.md: untrack it, ignored like the rest of the agent config 2026-08-11 13:32:36 +02:00
.isort.cfg build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
.pre-commit-config.yaml cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
.prettierignore [FIX] product_sale_price_from_pricelist: Actualizar tests para Odoo 18 2026-02-12 19:23:29 +01:00
.prettierrc.yml [REF] website_sale_aplicoop: Mejorar legibilidad del XML (reformatear con mejor indentación) 2026-02-26 14:59:34 +01:00
.pylintrc cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
.pylintrc-mandatory cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
check_addon.sh build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
check_tax_config.sh Revertir cambio: eliminar cálculo duplicado de impuestos 2026-02-11 19:54:28 +01:00
docker-compose.yml [IMP] docker-compose: host paths in .env, override merged in 2026-08-17 13:57:25 +02:00
eslint.config.js [CHORE] Add ESLint configuration file 2026-02-17 01:29:17 +01:00
Makefile build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
oca_dependencies.txt build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
odoo.conf docker test files 2026-02-11 15:33:31 +01:00
pyproject.toml cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
README.md [DOC] actualizar y sincronizar documentación de todos los addons 2026-05-20 16:27:17 +02:00
requirements.txt build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00

Odoo Addons — Criptomart

Colección de addons Odoo 18.0 para Criptomart / Elika Bilbo. Incluye addons OCA incluidos como dependencias y addons custom desarrollados internamente.

Addons OCA (dependencias incluidas)

Addons del ecosistema OCA incorporados al repositorio. No se modifican salvo hotfixes puntuales.

Addon Versión Descripción
account_invoice_triple_discount 18.0.1.0.0 Triple descuento en líneas de factura
product_get_price_helper 18.0.1.1.0 Helper para obtener precios de producto respetando tarifas
product_main_seller 18.0.1.0.0 Campo "proveedor principal" en producto
product_origin_char 18.0.2.0.0 Campo de texto libre para origen del producto
product_price_category 18.0.1.0.0 Categoría de precio en producto + aplicación masiva vía tarifas
purchase_triple_discount 18.0.1.0.0 Triple descuento en líneas de pedido de compra

Addons Custom

Addons desarrollados por Criptomart para necesidades específicas del proyecto.

Addon Versión Descripción
account_invoice_triple_discount_readonly 18.0.1.0.0 Corrige bug de acumulación de descuentos y pone descuento total en solo lectura
membership_expiry_reminder 18.0.1.0.0 Recordatorio por email de membresías próximas a vencer
portal_event_registration 18.0.1.0.0 Vista portal de inscripciones a eventos con adjuntos al chatter
product_price_category_supplier 18.0.1.0.0 Categoría de precio por defecto en proveedor + actualización masiva de productos
product_pricelist_total_margin 18.0.1.2.0 Margen aditivo (no compuesto) en tarifas encadenadas, con límites globales
product_sale_price_from_pricelist 18.0.2.7.0 Calcula precio de venta desde último precio de compra vía tarifa configurable
stock_picking_batch_custom 18.0.1.0.0 Columnas extra en operaciones detalladas de lotes: partner, categoría, recogido
website_sale_aplicoop 18.0.1.9.0 Sistema de pedidos colaborativos para grupos de consumo (reemplazo de Aplicoop)

Dependencias entre addons custom

website_sale_aplicoop
  └── product_sale_price_from_pricelist
        └── product_pricelist_total_margin
              └── product_price_category
  └── product_main_seller
  └── product_price_category_supplier
        └── product_price_category

account_invoice_triple_discount_readonly
  └── account_invoice_triple_discount
  └── purchase_triple_discount

Desarrollo

Instalación / actualización de un addon

docker-compose exec -T odoo odoo -d odoo -u <nombre_addon> --stop-after-init

Tests

docker-compose exec -T odoo odoo -d odoo --test-enable --stop-after-init -u <nombre_addon>

Linters

# Python
black . && isort . && flake8 . && pylint --load-plugins=pylint_odoo <addon>/

# JS
npx eslint <addon>/static/src/

Ver docs/LINTERS_README.md para configuración completa.

Traducciones

Ver docs/TRANSLATIONS.md.

Documentación técnica

Ver carpeta docs/ para documentación transversal (instalación, lazy loading, QWeb, etc.).