Extensiones de precios¶
En Odoo, el precio se determina a partir del Precio de venta de un producto y de las tarifas. Los módulos eYssen de esta página amplían ese mecanismo con etiquetas de tarifa, un orden de reglas explícito, una segunda divisa de precio, una tabla de pares de divisas fijos, los precios de tarifa mostrados en el propio producto, importaciones desde hojas de cálculo y un historial de precios completo.
Cinta de la tienda web a partir de una etiqueta¶
eyssen_product_pricelist_tag_ribbon vincula una etiqueta de tarifa a una cinta de la tienda web: un campo Cinta en la etiqueta indica la cinta a mostrar, y asignar la etiqueta a un producto establece automáticamente la cinta de ese producto en el sitio web. Dos botones de ajustes mantienen sincronizados los productos existentes: Actualizar todo vuelve a aplicar la cinta de la primera etiqueta de cada producto, y Limpiar todo elimina la cinta de todos los productos.
- menu
- Sales ‣ Configuration ‣ Pricelist Tags ‣ (a tag)
- shows
- A pricelist tag form with the "Ribbon" field selected.
- highlight
- The "Ribbon" field (red frame).
- data
- Tag "Winter sale" linked to the ribbon "Sale".
- module
- eyssen_product_pricelist_tag_ribbon
- notes
- English UI, light theme, 1440px width, crop to the form.
Orden de las reglas de tarifa¶
eyssen_product_pricelist_sequence añade una Secuencia a las reglas de tarifa, de modo que el orden en que se evalúan puede establecerse explícitamente arrastrando el asa en la lista de reglas, en lugar de depender del orden natural de las reglas. Esto importa en cuanto varias reglas puedan coincidir con el mismo producto, por ejemplo una regla de etiqueta y una regla de categoría.
Precios de tarifa en el producto¶
eyssen_product_show_pricelist_price lleva los precios de tarifa al propio producto, de modo que un vendedor no tiene que abrir cada tarifa para compararlos.
En una tarifa (), tres interruptores deciden dónde se muestra el precio de esa tarifa:
Mostrar en el formulario del producto;
Mostrar en la lista de productos; y
Mostrar en el kanban de productos.
Activar Mostrar en la lista de productos o Mostrar en el kanban de productos crea una columna de precio para esa tarifa, disponible desde el selector de columnas opcionales. El formulario del producto muestra además un resumen Todos los precios que enumera el precio actual del producto en cada tarifa, calculado para la fecha de hoy.
- menu
- Sales ‣ Products ‣ Pricelists ‣ (a pricelist)
- shows
- A pricelist form with the "Display on Product Form", "Display on Product List" and "Display on Product Kanban" switches.
- highlight
- The three switches (red frame).
- data
- Pricelist "Public (HUF)" with all three enabled.
- module
- eyssen_product_show_pricelist_price
- notes
- English UI, light theme, 1440px width, crop to the switches.
- menu
- Inventory ‣ Products ‣ Products ‣ (a product)
- shows
- The "All Prices" summary on a product form, listing each pricelist with the price it currently gives for this product.
- highlight
- The "All Prices" block (red frame).
- data
- Three pricelists with different prices for the same product.
- module
- eyssen_product_show_pricelist_price
- notes
- English UI, light theme, 1440px width, crop to the block.
Precio de venta en una divisa extranjera¶
product_currency_price permite mantener el precio de venta de un producto en una divisa de proveedor o de tarifa, mientras que el precio en la divisa de la compañía se deriva de ella, lo que mantiene un catálogo importado alineado con el tipo de cambio.
Primero, marque las divisas que se van a ofrecer ():
Mostrar en el producto — permite introducir en un producto un precio de venta en esta divisa.
Margen del precio de venta (%) — el porcentaje que se añade al importe convertido. Un margen de
2.5significa que el precio de venta en la divisa de la compañía es el importe convertido multiplicado por 1.025.
- menu
- Accounting ‣ Configuration ‣ Currencies ‣ (a currency)
- shows
- A currency form with the "Show on Product" checkbox enabled and the "Sales Price Markup (%)" field filled in.
- highlight
- The two fields (red frame).
- data
- Currency EUR, markup 2.5%.
- module
- product_currency_price
- notes
- English UI, light theme, 1440px width, crop to the fields.
En el formulario del producto, elija la Divisa de precio extranjera e introduzca el Precio de venta extranjero. El Precio de venta en la divisa de la compañía se calcula entonces a partir de él con el tipo de cambio actual y el margen de la divisa, y se recalcula automáticamente cada vez que se añade, cambia o elimina un tipo de cambio para esa divisa, o se edita el margen.
- menu
- Inventory ‣ Products ‣ Products ‣ (a product) ‣ General Information tab
- shows
- A product form with the "Foreign Price Currency" set to EUR, the "Foreign Sales Price" entered, and the company-currency "Sales Price" computed from it.
- highlight
- The "Foreign Price Currency" and "Foreign Sales Price" fields (red frame).
- data
- Foreign price 100.00 EUR, markup 2.5%, resulting HUF sales price computed from the current rate.
- module
- product_currency_price
- notes
- English UI, light theme, 1440px width, crop to the price fields.
Nota
Solo se puede establecer un precio en divisa extranjera por producto, y la divisa de la compañía nunca se ofrece como divisa extranjera.
Nota
Requiere el módulo de tipos de cambio en vivo de eYssen (eyssen_currency_rate_live_community) para mantener los tipos actualizados; sin tipos de cambio actuales, el precio derivado no cambia.
Pares de precios fijos¶
Convertir con el tipo de cambio diario no siempre es lo deseado: una tarifa acordada con un cliente a menudo asocia un precio base fijo a un precio fijo por divisa (por ejemplo, que 100 EUR sean siempre 39 900 HUF, sin importar el tipo de cambio de hoy). eyssen_pricelist_price_pair implementa exactamente eso como un nuevo cálculo Par de precios en una regla de tarifa.
Una regla configurada como Par de precios contiene una tabla de Pares de precios: cada par tiene un Precio base en la divisa de la compañía y, debajo, una línea por Divisa con el Precio que se usará en esa divisa.
Tres opciones controlan lo que ocurre cuando ningún par coincide:
Par ausente — Usar tipo de cambio recurre a la conversión normal, Usar cero da como resultado un precio de cero.
Usar par global — cuando la regla no tiene un par propio que coincida, se usa un par global (uno no vinculado a ninguna regla) con el mismo precio base y una línea en la divisa de destino.
Reutilizar pares de — usa la tabla de pares de otra regla en lugar de copiarla en cada regla, lo que mantiene una única tabla compartida para muchas reglas de etiqueta.
- menu
- Sales ‣ Products ‣ Pricelists ‣ (a pricelist) ‣ (a rule)
- shows
- A pricelist rule whose "Price Computation" is "Price Pair", showing the "Missing Pair", "Use Global Pair" and "Reuse Pairs From" options and the "Price Pairs" table with one base price and its per-currency lines.
- highlight
- The "Price Pairs" table (red frame).
- data
- Base price 100.00 EUR with lines for HUF and RON.
- module
- eyssen_pricelist_price_pair
- notes
- English UI, light theme, 1440px width, full form.
Los pares también pueden cargarse de forma masiva: un asistente de importación lee un Archivo CSV o copia todas las líneas de par y divisa de una Regla de tarifa de origen, sustituyendo opcionalmente los pares ya existentes en la regla de destino.
- menu
- Sales ‣ Products ‣ Pricelists ‣ (a rule) ‣ (import price pairs)
- shows
- The "Import Price Pairs" wizard with "Mode" set to "Import from file", the File field, the target rule and the "Replace existing pairs on target" checkbox.
- highlight
- The "Mode" field (red frame).
- data
- A CSV file of base prices and per-currency prices.
- module
- eyssen_pricelist_price_pair
- notes
- English UI, light theme, 1440px width, crop to the wizard.
Importación de líneas de tarifa¶
eyssen_pricelist_import rellena una tarifa a partir de una hoja de cálculo. En el formulario de la tarifa, Importar líneas abre un asistente que toma un Archivo de datos (un libro de Excel cuya primera hoja indica la referencia interna del producto en la primera columna y el precio fijo en la segunda) y crea o actualiza una regla de precio fijo por producto. Eliminar líneas vacía en un solo paso la lista de reglas de la tarifa.
- menu
- Sales ‣ Products ‣ Pricelists ‣ (a pricelist) ‣ Import Items
- shows
- The "Import Items" wizard with the target pricelist and the "Data file" upload field, and the "Import Items" and "Delete Items" buttons visible on the pricelist form behind it.
- highlight
- The "Data file" field and the two buttons (red frames).
- data
- An .xlsx file with internal references and fixed prices.
- module
- eyssen_pricelist_import
- notes
- English UI, light theme, 1440px width, crop to the wizard and the buttons.
Importante
Eliminar líneas elimina todas las reglas de la tarifa sin pedir confirmación. Exporte antes la tarifa si las reglas pueden necesitarse de nuevo.
Nota
La importación de Excel necesita la librería de Python openpyxl en el entorno de Odoo.
Historial de precios¶
product_price_history registra todos los cambios de precio, de modo que más adelante se pueda saber qué costaba un producto en un momento dado y por qué cambió.
Cada cambio se almacena como un evento con el Tipo de precio (Precio de venta, Precio de coste o Precio de tarifa), la Tarifa a la que pertenece (para un precio de tarifa), el Precio anterior y el Precio nuevo, la Fecha efectiva en la que se aplica el nuevo precio, la fecha en que se registró, el usuario que hizo el cambio y una descripción de su causa.
Una pestaña Historial de precios en el formulario del producto enumera los eventos propios del producto, y abre los mismos registros con todas las opciones de búsqueda y agrupación.
- menu
- Inventory ‣ Products ‣ Products ‣ (a product) ‣ Price History tab
- shows
- The "Price History" tab of a product form, listing the price events with their Effective Date, Price Type, Pricelist, Old Price, New Price, source description and user.
- highlight
- The "Old Price" and "New Price" columns (red frame).
- data
- Five events: two sales-price changes, one cost change and two pricelist-rule changes.
- module
- product_price_history
- notes
- English UI, light theme, 1440px width, crop to the tab.
Los eventos con fecha efectiva en el futuro se registran como previstos y se vuelven efectivos automáticamente cuando llega su fecha; dos acciones programadas realizan este trabajo, una que procesa la cola de eventos cada pocos minutos y otra que materializa los eventos previstos. Una acción puntual, Generar precios base ausentes, disponible para los administradores del sistema desde la lista Historial de precios, crea los eventos iniciales para un catálogo que ya tiene precios en el momento de instalar el módulo.
Nota
Como los eventos se registran a partir de los propios cambios de precio, el historial solo cubre lo ocurrido después de instalar el módulo, más lo que haya creado la acción de inicialización.