Son permisos explícitos: deben marcarse uno por uno en Integraciones externas; las integraciones existentes no los reciben automáticamente.
Listas de precios
is_default: true) y luego el resto por nombre. Errores: 404 Branch not found (sin branch_id o de otro negocio).
Precios de una lista
Ordenado por nombre de producto. Errores:
404 Price list not found (inexistente o de otro negocio); 422 validación.
Actualizar precios
Crea o actualiza en lote los precios de una lista (sincronización desde la tienda). Requierepricing.write.
- Si el producto ya tiene precio en la lista se actualiza; si no, se crea.
- Los productos que no pertenecen a la sucursal de la lista (o no existen) no se aplican y se devuelven en
rejected; el resto sí se guarda. - Si un
product_idse repite en el arreglo, se toma el último.
Promociones
Ordenadas de mayor a menor
priority. Errores: 404 Branch not found.
Calcular promociones de un carrito
Reglas
- Solo se evalúan promociones activas cuya fecha de inicio y fin incluyen el día de hoy.
- Por ítem gana una sola promoción: la de mayor prioridad que aplique al producto (por producto, categoría o marca) y cumpla
min_quantity. percentagedescuenta un porcentaje;fixed, un monto fijo (sin superar la base);override_price, la diferencia hasta el precio especial.- Un combo aplica cuando están en el carrito todos sus productos: descuenta la suma de sus precios unitarios menos
combo_price. - Si la sucursal no tiene promociones vigentes, los ítems se devuelven sin campos de promoción y
order_discountsvacío. - El cálculo no guarda nada: úsalo para mostrar el precio final y luego envía los descuentos al crear la venta.