انتقل إلى المحتوى الرئيسي
يتم عرض تفاصيل المنتج باللغة الإنجليزية. الترجمات قريبا.
Sale Order Line Images — A build-to-order Odoo module that renders each product's image directly on the sale order line and i — 1/1معاينة توضيحية

A build-to-order Odoo module that renders each product's image directly on the sale order line and inside the

printed sale quotation, so reps and customers recognize what is being sold at a glance.

ECOSIRE scopes, builds, installs, and supports it for your database.

ما هو Sale Order Line Images؟

A build-to-order Odoo module that renders each product's image directly on the sale order line and inside the printed sale quotation, so reps and customers recognize what is being sold at a glance. ECOSIRE scopes, builds, installs, and supports it for your database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

الميزات الرئيسية

Stored `related='product_id.image_128'` (or `@api.depends('product_id')` compute) image field added to `sale.order.line`, strategy chosen for list-render performance
Binary `image` widget column added to the sale order-line `tree`/`list` view via XML `xpath`/`position` inheritance — no core patching
Inherited `sale.report_saleorder_document` QWeb template emits a per-line `<img>` on the quotation and confirmed order PDF
Renders the resized `image_128` variant rather than the full `image_1920` to keep list scrolling and PDF generation fast
CSS-constrained image dimensions in the report so wkhtmltopdf/QWeb output stays lightweight and print layout is preserved
Optional/toggleable column so users can hide thumbnails on long, hundred-plus-line orders
Correct fallback rendering when a product has no image set (placeholder or blank cell, per your preference)
Respects existing `ir.model.access.csv` and `sale.order` record rules — no image exposed on orders a user cannot already open
Optional extension to the customer portal quotation view and backend order-form line view
Optional propagation of the line image to delivery slip (`stock.picking`) and customer invoice (`account.move`) reports
Compatible with product variants — the image resolves from `product.product` so variant-specific art shows where configured
Clean uninstall path that removes the added field and view/report extensions without leaving orphaned columns
Delivered against your target Odoo series (17.0 / 18.0 / 19.0) with a proper `__manifest__.py`, dependency declaration, and version pin
Data-independent: reads live product images through the ORM, so no batch import or image duplication is introduced

مبني حسب الطلب، ننجزه بالكامل لك

لا إعداد يدوي — تطبيق جاهز يبنيه ويثبّته ويدعمه ECOSIRE.

  1. 1

    تطلب

    ابدأ بسعر بناء لمرة واحدة. نحدّد النطاق معك عند الانطلاق.

  2. 2

    نبني ونثبّت

    يقوم ECOSIRE ببنائه وتهيئته وتثبيته على Odoo الخاص بك.

  3. 3

    الإطلاق + الدعم

    تنطلق خلال أسبوع عمل واحد تقريبًا، مع أسبوعين من الدعم بعد التشغيل. نصلح عيوب الكود الذي نسلّمه مجانًا.

المواصفات التقنية

توافق Odoo
Odoo 17, Odoo 18, Odoo 19
الإصدارات
Enterprise و Community
الترخيص
يلزم تأكيد الترخيص
متطلبات Python
Python 3.10+
قاعدة البيانات
PostgreSQL 12+

عن هذا المنتج

Sales reps and customers read quotations by product name and internal reference, but text alone is a weak signal. On configurable products, variant-heavy catalogs, or long multi-line orders, a wrong line is easy to miss until goods are picked or the customer disputes the PDF. Odoo core already stores a product image (image_1920 plus its resized image_128/image_256 companions on product.product and product.template), yet the standard sale.order.line editable list view shows none of it, and the out-of-the-box QWeb sale report (sale.report_saleorder_document) prints a text-only table. Teams end up cross-referencing a separate catalog or spreadsheet just to confirm a line is right — exactly the manual step Odoo is supposed to remove.

We build a focused module that surfaces the product thumbnail where the work happens. On the model side we add an image field to sale.order.line — either a stored related='product_id.image_128' or a compute method with @api.depends('product_id'), chosen during scoping for the best list-render performance on your order sizes — and expose it as an image/binary widget column in the order-line tree/list view. On the document side we inherit sale.report_saleorder_document via QWeb and emit a correctly sized <img> per line so the same picture appears on the quotation and confirmed order PDF. All view and report changes ship as XML inheritance (xpath with position) layered over core rather than patched into it, so the module installs cleanly on Community or Enterprise and survives upgrades.

Because images are heavier than text, we engineer for scale rather than just correctness. We render the small resized variant (image_128) not the full image_1920, keep the column optional/toggleable so power users can hide it on hundred-line orders, and make sure the report image is constrained by CSS so wkhtmltopdf/QWeb-to-PDF rendering stays fast and the file size stays sane. Access is respected end to end: the line inherits its record rules and ir.model.access.csv from sale.order, so nobody sees an image on an order they could not already open, and the field is read-only where the line is read-only. Where you want the image to also flow to the portal quotation view or the backend order form header, we scope that as an explicit view extension too.

Delivery is build-to-order. After a short scoping call we confirm exactly which surfaces need the image (order-line list, order form, PDF quotation, portal, optionally delivery or invoice reports), agree the field strategy and Odoo series (17.0, 18.0, or 19.0), and give you a fixed quote. We build on a staging copy of your database, run UAT with your own products and templates, then install on production with a documented rollback. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); extending the image to additional reports (delivery slip, invoice, portal), multi-company report layouts, or bespoke image sizing/branding requirements increases the quoted scope.

ما تحصل عليه

  • Installable module source code for your Odoo series, packaged with a correct `__manifest__.py` and dependency declarations
  • Installation and configuration on your staging environment, then production, by an ECOSIRE Odoo engineer
  • Technical documentation covering the model field, view inheritance, and QWeb report extension
  • End-user guide plus a live training session for your sales team on the new order-line and PDF behavior
  • Post-go-live support window for defect fixes and questions
  • UAT sign-off on a staging copy of your database with a documented rollback plan
  • Handover of the full git repository with commit history and a tagged release
  • Odoo series upgrade notes so the module can be re-validated when you move between 17.0 / 18.0 / 19.0

لمن هذا

Sales Operations Manager

Owns quotation accuracy and wants reps and customers to visually confirm each line before an order is confirmed, cutting wrong-item disputes on long or variant-heavy orders.

B2B Wholesale / Distribution Team

Sells catalogs of visually similar SKUs where product images on the line and the PDF prevent the picking and billing errors that plain text references miss.

Odoo Administrator / Internal IT

Needs the capability delivered as clean XML/QWeb inheritance that installs on Community or Enterprise, respects existing access rules, and survives version upgrades — not a core hack.

Customer-Facing Account Executive

Wants the sales quotation PDF to look richer and clearer, so customers recognize exactly what they are buying and approve faster.

كيف يقارن Sale Order Line Images.

المعيارECOSIREبناء مخصصمنافسOdoo الأصلي
Delivery modelBuild-to-order, scoped and installed for youYou build and maintain it in-houseInstant download, generic behaviorNot available in core
Order-line thumbnailOptional image widget column tuned for performanceDepends on your team's implementationUsually a fixed column, limited togglingText-only order line, no image
Sale report (PDF) imageInherited QWeb template, CSS-constrained per lineRequires your own QWeb workOften list-only; PDF support variesText-only `report_saleorder_document`
Community vs Enterprise fitXML/QWeb inheritance, works on both, upgrade-safeWhatever you engineer and testVaries; may assume one editionN/A
Access rules respectedInherits `sale.order` record rules and ACLsYour responsibility to wire correctlyGenerally inherited but rarely documentedN/A
Performance engineeringUses `image_128`, optional column, sized report imagesDepends on your care with `image_1920`Not always optimized for long ordersN/A
Support and handoverSupport window, docs, training, git repo handoverYou own all supportVendor forum/ticket, no source insightCommunity forums only
Fit to your surfacesScoped to your list/form/PDF/portal/reportsFully bespoke but slower to deliverFixed feature set, take it as-isNone

الأسئلة المتداولة حول Sale Order Line Images

Is this an existing app I can download and install today?

No. This is a build-to-order module. ECOSIRE builds it to your confirmed scope and target Odoo series, then installs and supports it on your database. There is no instant download — you receive tested source code and a proper installation.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the scoping call we agree exactly which surfaces need the image and which Odoo series you run, build on staging, run UAT, then deploy to production with a rollback plan.

How does pricing and scoping work?

Pricing starts from $999 as an indicative single-company base scope. We give you a fixed quote after a short scoping call. Extending the image to extra reports, multi-company layouts, portal views, or bespoke sizing increases the quoted scope and price.

Which Odoo versions and editions are supported?

We build for Odoo 17.0, 18.0, or 19.0, on Community or Enterprise. Because the changes are delivered as XML view and QWeb report inheritance rather than core patches, they layer cleanly on either edition.

Will this slow down large sale orders or the PDF?

We render the resized `image_128` variant instead of the full-resolution image, keep the list column optional, and constrain the report image with CSS. This keeps order-line scrolling and PDF generation fast even on long orders.

Do you offer support and updates after go-live?

Yes. Every build includes a post-go-live support window for defect fixes and questions, plus the full git repository so your team can maintain it. We can also re-validate the module when you upgrade between Odoo series under a separate scope.

Does it respect our access rights and record rules?

Yes. The image field lives on `sale.order.line`, which inherits the `ir.model.access.csv` permissions and record rules of `sale.order`. Nobody sees an image on an order they could not already open, and the field is read-only wherever the line is.

طلب عرض سعر

Sale Order Line Images

A build-to-order Odoo module that renders each product's image directly on the sale order line and inside the printed sale quotation, so reps and customers recognize what is being sold at a glance. ECOSIRE scopes, builds, installs, and supports it for your database.

  • Stored `related='product_id.image_128'` (or `@api.depends('product_id')` compute) image field added to `sale.order.line`, strategy chosen for list-render performance
  • Binary `image` widget column added to the sale order-line `tree`/`list` view via XML `xpath`/`position` inheritance — no core patching
  • Inherited `sale.report_saleorder_document` QWeb template emits a per-line `<img>` on the quotation and confirmed order PDF
  • Renders the resized `image_128` variant rather than the full `image_1920` to keep list scrolling and PDF generation fast

طلب عرض سعر

أخبرنا باحتياجاتك من Sale Order Line Images وسنرسل لك الأسعار وخيارات الترخيص وعرضًا مخصصًا، عادةً خلال يوم عمل واحد.

لا حاجة للدفع الآن. يؤدي هذا إلى إرسال طلب عرض سعر إلى فريقنا — وسنتواصل معك عبر البريد الإلكتروني بالأسعار والخطوات التالية.