The need
Odoo can sell a T-shirt but not the logo printed on it: the price of branding depends on the technique, number of colors, size, quantity and plate fees, so your salespeople work it out by hand. The proof (BAT) then goes back and forth by email and nothing stops you from confirming the supplier order before the customer has signed it off. A pricing mistake eats your margin; an unapproved proof costs you a reprint.
What the module does
You describe your techniques (screen printing, embroidery, laser engraving…), their price grids and the branding zones of each product once. In the shop, the "Customize" button opens an editor where customers place their logo or text on the product photo and watch the price update; in a quotation, salespeople do the same from the "Marking" tab. A branded item costs the product price plus the branding of each zone; fixed fees are added as separate lines. When the order is confirmed, Odoo checks the artwork, creates the proof and sends it to the customer, who approves or rejects it from the portal. Until the proof is approved, the purchase order cannot be confirmed.
What you gain
A correct price at every change
The unit price of the branding depends on the technique, number of colors, area and quantity: it drops for example between 50 and 120 pieces. Odoo redoes the calculation as soon as one of these changes and adds the setup fee only once per order.
Customers design their own
Customers upload a logo, add text, pick the side of the product and see the result on the photo with the price excl. and incl. VAT by quantity. They add to cart or request a quote, depending on your pricelist.
Mockups made by salespeople
From the quotation line, salespeople open the same editor, reuse the logos the customer already supplied and attach the mockup to the quotation. The "Compare techniques" button shows price, fees, margin and lead time for every possible technique.
Artwork check before the proof
Odoo checks the number of colors, image resolution, minimum text size and elements outside the zone. A 1.6 mm text in embroidery blocks the proof until it is fixed or a justified override is given.
Supplier order locked until approval
The purchase order shows a blocking message until the customer has approved. Only a manager can lift the lock, by entering a reason that stays in the history.
Price difference after a change
If the branding changes after confirmation, the "Modify marking" button computes the difference and prepares a complementary quotation or a draft credit note. A report then shows the margin by technique.
How it works
Turn on the features
In Settings > Sales, "Custom Marking" block, tick the features you need: shop editor, mockup editor, price table by quantity, technique comparison, price difference, subcontracting.
Create the techniques
In Sales > Configuration > Marking > Techniques, create each technique with its pricing unit (per color, per location, per 1,000 stitches or per cm²), its maximum number of colors and its lead time.
Enter the price grids
In Price grids, enter the sale price, cost and fixed fees for each minimum quantity, or import them from the sample CSV files provided.
Define each product's zones
In Zones, link each product to its branding zones (chest, back, bottle body…) in millimetres, with a photo of the relevant side.
Sell, then get approval
Customers design in the shop or your salespeople price in the quotation. On confirmation Odoo creates and sends the proof; the Sales > Marking > BAT menu tracks the answers.
Order from the supplier
Once the proof is approved, confirm the purchase order: the production files are attached automatically.
Screenshots
Frequently asked questions
Sales, Purchase and Website, installed with the module, plus Invoicing for credit notes. The Enterprise Accounting app is not required. Two free ANOR modules are installed with it: the price table by quantity and the display of prices excl. and incl. VAT.
Yes, on both editions, on premise as well as on Odoo.sh. A version exists for Odoo 18, 19 and 20.
No. Odoo recomputes the price at every change and again when the order is confirmed.
From the customer portal or from a single-use link received by email. They approve, or reject and explain what must change; Odoo sends reminders and keeps a record of the answer.
Yes. Odoo then orders the blank product and the branding service separately. If the Manufacturing app is installed with its Subcontracting feature, Odoo follows the product's subcontracting bill of materials.
No. Customers see their logo flat on the product photo, in the style of the technique (embroidery stitches, monochrome engraving, ink). There is no 3D preview.
Yes, with Odoo's standard import and the template files provided. There is no direct connector: PromoStandards, midocean, XD Connects or PF Concept files must be converted to the template format.
The svglib Python library, used to produce the vector production PDFs. On Odoo.sh, add it to the requirements.txt file at the root of your repository.
Scope
The module covers the whole journey of a branded item: pricing, online or in-quotation design, artwork check, proof approval, purchase order and margin tracking. Each feature can be turned on separately in the settings.
Technical sheet
- Technical name
- anor_marking
- Odoo versions
- 18.0, 19.0, 20.0
- Application
- Sales
- Dependencies
- sale, sale_management, sales_team, account, purchase, product, mail, portal, website, website_sale, anor_shop_product, anor_shop_tax_prices
- Python libraries
- svglib, reportlab
- Licence
- OPL-1
- Published by
- ANOR
Disclaimer — This module is provided "as is", without warranty of any kind. ANOR Group shall not be held liable for any direct or indirect damages resulting from its use, its installation or its modification by a third party, nor from its use outside the scope of a contractual ANOR service.















