Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Sales
  3. Product Images on Sale Order Lines v 19.0
  4. Sales Conditions FAQ

Product Images on Sale Order Lines

by MicoraPlus https://micoraplus.com
Odoo
v 19.0 Third Party 2
Download for v 19.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
You bought this module and need support? Click here!
  • Description
  • Manifest
  • License
Product Images on Sale Order Lines
Odoo 19 OPL-1 MicoraPlus
🇬🇧 English 🇪🇸 Español

Product Images on Sale Order Lines

Uniform thumbnails on the backend sale-order form, the customer portal, and the generated quote / sale PDF — miniaturas uniformes en pedido, portal y PDF.

Overview

Salespeople and customers should not stare at lists of bare product names. This module adds a 48×48 px product thumbnail to every sale.order.line in three places at once: the backend sale-order form, the customer portal order view (/my/orders/<id>), and the generated quote / sale PDF (Pro-Forma included). Three independent per-company switches in Sales → Configuration → Settings → Quotations & Orders — one per surface — let you turn images on or off on each surface independently. All three default to ON at install.

Key features

🖼️ Three surfaces, three toggles

Backend column, portal cell, and PDF report each have their own per-company switch. Turn images on/off independently for each surface; Pro-Forma rides on the PDF toggle.

🏢 Per-company, multi-company-safe

The flag lives on res.company. Each sale order respects its own company's setting, not the operator's.

🎨 Uniform 48×48 px thumbnails

Every product line looks the same shape and size regardless of source image dimensions, aspect ratio or transparency.

🪄 PDF bullet-proof

Sources are pre-rendered onto a white canvas, so wkhtmltopdf's transparent-PNG-to-black bug cannot reach the output.

📐 Aligned with or without images

Image-less products keep their 48-px slot. Product names line up vertically across all rows.

🧬 PNG, JPEG, GIF, WebP, SVG

Every common source format works. SVG is rasterised via the system magick CLI when present (graceful fallback otherwise).

See it in action

Backend sale order form with the new Image column
Backend sale order form. A new Image column appears right after the line description in the embedded order-line list. Hidden when the per-company toggle is off; individually hideable via the column gear menu.
Customer portal order page with inline thumbnails
Customer portal. /my/orders/<id> renders the same thumbnail next to each product line. Image-less products keep their slot so names stay vertically aligned.
Generated quote / sale PDF with product thumbnails
Generated PDF. The quote / sale report embeds the thumbnail in the product-name cell. Sources are pre-rendered onto white so wkhtmltopdf's transparent-PNG bug cannot reach the output.
Sales settings with the Product Images on Order Lines toggle
Three independent per-company toggles. Sales → Configuration → Settings → Quotations & Orders — one switch per surface (backend / portal / PDF). All three default to ON at install; flip any of them off and only that surface hides the thumbnail.

How it works

Switch locationSales → Configuration → Settings → Quotations & Orders — three separate company_dependent settings: Product Image on Backend Order Lines, … on Customer Portal, … on Quote / Sale PDF. All default ON.
Backend listNew Image column on the embedded order_line list, sitting right after the line description. Hides when show_sol_image_backend is off; users can also hide it individually via the column gear menu.
Portal pageInherits sale.sale_order_portal_content. Inline thumbnail next to the product name; reserves the same width on image-less lines so names align across all rows.
PDF reportInherits sale.report_saleorder_document. Same media-object layout, white-background-baked thumbnails for reliable wkhtmltopdf rendering.
ComputeStored Image on product.product, triggered by writes to image_variant_1920 or the template's image_1920. Each variant pays the cost once.

Quick start

  1. Install the module.
  2. Upload an image to each product (Inventory → Products → open a product → image area). The thumbnail builds in the background.
  3. Open any sale order — the image column appears next to the product name on every line.
  4. Open the customer-portal link, or print the quote PDF — the same thumbnail appears.
  5. To hide everywhere: Sales → Configuration → Settings → Product Images on Order Lines → off → Save.

Compatibility & requirements

  • Odoo 19.0, Community or Enterprise.
  • Theme-agnostic — overrides target upstream sale + portal templates only.
  • Pillow (ships with Odoo).
  • Optional: ImageMagick (magick on PATH) for SVG product images. Without it, SVG uploads fall through to the placeholder branch and a one-line warning is logged. Raster formats keep working.

Tested

Ten automated tests cover: settings round-trip; related field on the order line; canvas compositing for PNG, JPEG, RGBA, WebP and SVG sources; recompute-on-image-change; landscape-source letterboxing; missing-image fallback; and the default-true per-company flag at install time.


Resumen

Agrega una miniatura de 48×48 px del producto a cada sale.order.line en tres lugares al mismo tiempo: el formulario de pedido en el backend, la página del pedido en el portal del cliente (/my/orders/<id>) y el PDF generado del presupuesto / pedido (incluyendo el Pro-Forma). Tres interruptores independientes por compañía en Ventas → Configuración → Ajustes → Quotations & Orders — uno por superficie — te dejan activar o desactivar la imagen en cada lugar por separado. Los tres vienen activados al instalar.

Características clave

🖼️ Tres superficies, tres interruptores

La columna del backend, la celda del portal y el reporte PDF tienen cada uno su propio interruptor por compañía. Se activan o desactivan por separado. El Pro-Forma usa el mismo interruptor que el PDF.

🏢 Por compañía

Los ajustes viven en res.company. Cada pedido respeta la configuración de su propia compañía, no la del usuario que lo abre.

🎨 Miniaturas uniformes 48×48

Siempre la misma forma y el mismo tamaño, sin importar el tamaño / la proporción / la transparencia de la imagen original.

🪄 PDF a prueba de balas

El origen se prerrenderiza sobre fondo blanco, así el bug de wkhtmltopdf con PNG transparentes (alpha negro) no llega al PDF.

📐 Alineado con o sin imagen

Los productos sin imagen mantienen un hueco de 48 px. Los nombres quedan alineados verticalmente en todas las filas, no bailan según haya o no foto.

🧬 PNG, JPEG, GIF, WebP, SVG

Todos los formatos comunes. El SVG se rasteriza con el CLI de magick cuando está disponible; si no, cae a placeholder sin romper nada.

Para empezar

  1. Instalá el módulo.
  2. Subí una imagen a cada producto desde Inventario → Productos → abrir el producto → área de imagen.
  3. Abrí cualquier pedido de venta: la columna de imagen aparece al lado del nombre del producto.
  4. Abrí el enlace del portal o imprimí el PDF — la misma miniatura aparece en los dos.
  5. ¿Querés esconder alguna superficie? Andá a Ventas → Configuración → Ajustes → Quotations & Orders, apagá el interruptor que corresponda y guardá.

Compatibilidad y requisitos

  • Odoo 19.0, Community o Enterprise.
  • No depende de ningún tema: las plantillas que se modifican son las de sale y portal upstream.
  • Pillow (ya viene con Odoo).
  • Opcional: ImageMagick (magick en el PATH) para imágenes SVG. Si no está instalado, los SVG caen a placeholder con un warning en el log; los formatos raster siguen funcionando normal.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Sales (sale_management)
• Invoicing (account)
• Discuss (mail)
Lines of code 214
Technical Name mp_sale_order_line_image
LicenseOPL-1
Websitehttps://micoraplus.com
Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with