Odoo addons personalizados por Criptomart
Eskaera carried its own pricing path: a `website_sale_aplicoop.pricelist_id` setting resolved inside the Eskaera controllers, plus a local reimplementation of the tax and discount maths. The pricelist part meant /shop and Eskaera could quote different prices on the same website, and the maths part had drifted from the original it was copied from. Pricing is now the standard one. The setting is gone (a migration drops the parameter, which would otherwise linger looking like live configuration) and `_resolve_pricelist` is `request.website.pricelist_id`. Scoping a pricelist to a website is already core's job through `product.pricelist.website_id`, so running the plain shop on one website and the co-op on another needs no code here. Taxes are applied by `product.template._apply_taxes_to_price`, which fixes a real defect: it calls `_get_tax_included_unit_price_from_price` first, and this module did not. With a fiscal position remapping a tax-included tax, a product at 121 (100 + 21%) was displayed at 121 instead of 110, because the price was handed to the mapped tax as if it were already that tax's gross amount. The helper is a no-op without a remapping, so ordinary pricing is untouched. It also means the website's `show_line_subtotals_tax_selection` is respected rather than overridden with a hardcoded tax-included display. Listing a page now costs one `_compute_price_rule` call instead of one per product, which matters on the lazy-loading path. Two smaller things found on the way. `_get_product_price_rule` was being passed `target_currency=`, which is not one of its arguments: it fell into **kwargs and was ignored, so the conversion never happened. And `_compute_price_info` resolved `product.product_variant_ids[0]`, but it receives variants, so a multi-variant template was priced from its first variant rather than the one asked for. The delivery display price loses its hardcoded 5.74 fallback and reuses the same helpers as everything else. Kept local, because none of it is pricing: the /Kg and /L suffixes, the 0.1 quantity step for bulk goods, the base unit price and the supplier name. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .github | ||
| .vscode | ||
| account_banking_mandate_batch | ||
| account_invoice_triple_discount_readonly | ||
| docs | ||
| l10n_es_edi_tbai_reagyp_recibidas | ||
| l10n_es_partner_ccpae | ||
| membership_expiry_reminder | ||
| membership_monthly_invoicing | ||
| membership_payment_date | ||
| portal_event_registration | ||
| pos_account_payment_order_sepa | ||
| pos_full_refund | ||
| pos_order_reorder | ||
| pos_payment_method_cashdro_fix | ||
| pos_payment_method_cashdro_rounding | ||
| product_origin_char | ||
| product_price_category_supplier | ||
| product_pricelist_total_margin | ||
| product_sale_price_from_pricelist | ||
| purchase_rappel | ||
| scripts | ||
| setup | ||
| sort_lines_by_product_name | ||
| stock_picking_batch_custom | ||
| stock_picking_report_undelivered_product | ||
| website_membership_associate | ||
| website_membership_signup_required | ||
| website_sale_aplicoop | ||
| website_sale_disable_cart | ||
| .editorconfig | ||
| .env.example | ||
| .flake8 | ||
| .gitignore | ||
| .isort.cfg | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc.yml | ||
| .pylintrc | ||
| .pylintrc-mandatory | ||
| check_addon.sh | ||
| check_tax_config.sh | ||
| docker-compose.yml | ||
| eslint.config.js | ||
| Makefile | ||
| oca_dependencies.txt | ||
| odoo.conf | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
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.).