Es necesario crear un nuevo método en el backend que sea llamado vía RPC desde la interfaz del autopedido. Este método recibirá una cadena de texto (query) y deberá devolver una lista de productos que coincidan con dicho texto en su nombre o en su referencia interna.
La búsqueda debe ser eficiente y considerar solo los productos disponibles para el Punto de Venta actual.
Especificaciones Técnicas:
Módulo: pos_self_order (o un nuevo módulo custom que lo extienda).
Modelo a extender: pos.session.
Nuevo método: Crear un método, por ejemplo search_products_for_self_order, que acepte query como argumento.
Lógica de búsqueda:
Construir un dominio de Odoo que busque la query en los campos name y default_code.
La búsqueda debe ser insensible a mayúsculas y minúsculas (usar ilike).
El dominio debe ser una condición OR entre los dos campos. Ejemplo: ['|', ('default_code', 'ilike', query), ('name', 'ilike', query)].
El dominio debe incluir la condición de que el producto esté disponible en el PdV (available_in_pos = True).
Datos de retorno: El método debe retornar una lista de diccionarios JSON con los datos esenciales del producto para la interfaz, similar a los que ya se cargan en el PdV (ej: id, display_name, lst_price, image_128, etc.). Si no hay resultados, debe devolver una lista vacía.
Criterios de Aceptación (para el desarrollador):
✅ El endpoint RPC está creado y es accesible desde el pos.session.
✅ Al pasarle una query válida, retorna una lista de productos que coinciden por name o default_code.
✅ Al pasarle una query sin coincidencias, retorna una lista vacía [].
✅ La búsqueda filtra correctamente y solo devuelve productos con available_in_pos = True.
Es necesario crear un nuevo método en el backend que sea llamado vía RPC desde la interfaz del autopedido. Este método recibirá una cadena de texto (query) y deberá devolver una lista de productos que coincidan con dicho texto en su nombre o en su referencia interna.
La búsqueda debe ser eficiente y considerar solo los productos disponibles para el Punto de Venta actual.
Especificaciones Técnicas:
Módulo: pos_self_order (o un nuevo módulo custom que lo extienda).
Modelo a extender: pos.session.
Nuevo método: Crear un método, por ejemplo search_products_for_self_order, que acepte query como argumento.
Lógica de búsqueda:
Construir un dominio de Odoo que busque la query en los campos name y default_code.
La búsqueda debe ser insensible a mayúsculas y minúsculas (usar ilike).
El dominio debe ser una condición OR entre los dos campos. Ejemplo: ['|', ('default_code', 'ilike', query), ('name', 'ilike', query)].
El dominio debe incluir la condición de que el producto esté disponible en el PdV (available_in_pos = True).
Datos de retorno: El método debe retornar una lista de diccionarios JSON con los datos esenciales del producto para la interfaz, similar a los que ya se cargan en el PdV (ej: id, display_name, lst_price, image_128, etc.). Si no hay resultados, debe devolver una lista vacía.
Criterios de Aceptación (para el desarrollador):
✅ El endpoint RPC está creado y es accesible desde el pos.session.
✅ Al pasarle una query válida, retorna una lista de productos que coinciden por name o default_code.
✅ Al pasarle una query sin coincidencias, retorna una lista vacía [].
✅ La búsqueda filtra correctamente y solo devuelve productos con available_in_pos = True.