Skip to Content
Odoo Menú
  • Registra entrada
  • Prova-ho gratis
  • Aplicacions
    Finances
    • Comptabilitat
    • Facturació
    • Despeses
    • Full de càlcul (IA)
    • Documents
    • Signatura
    Vendes
    • CRM
    • Vendes
    • Punt de venda per a botigues
    • Punt de venda per a restaurants
    • Subscripcions
    • Lloguer
    Imatges de llocs web
    • Creació de llocs web
    • Comerç electrònic
    • Blog
    • Fòrum
    • Xat en directe
    • Aprenentatge en línia
    Cadena de subministrament
    • Inventari
    • Fabricació
    • PLM
    • Compres
    • Manteniment
    • Qualitat
    Recursos humans
    • Empleats
    • Reclutament
    • Absències
    • Avaluacions
    • Recomanacions
    • Flota
    Màrqueting
    • Màrqueting Social
    • Màrqueting per correu electrònic
    • Màrqueting per SMS
    • Esdeveniments
    • Automatització del màrqueting
    • Enquestes
    Serveis
    • Projectes
    • Fulls d'hores
    • Servei de camp
    • Suport
    • Planificació
    • Cites
    Productivitat
    • Converses
    • Artificial Intelligence
    • IoT
    • VoIP
    • Coneixements
    • WhatsApp
    Aplicacions de tercers Odoo Studio Plataforma d'Odoo al núvol
  • Sectors
    Comerç al detall
    • Llibreria
    • Botiga de roba
    • Botiga de mobles
    • Botiga d'ultramarins
    • Ferreteria
    • Botiga de joguines
    Food & Hospitality
    • Bar i pub
    • Restaurant
    • Menjar ràpid
    • Guest House
    • Distribuïdor de begudes
    • Hotel
    Immobiliari
    • Agència immobiliària
    • Estudi d'arquitectura
    • Construcció
    • Property Management
    • Jardineria
    • Associació de propietaris de béns immobles
    Consultoria
    • Empresa comptable
    • Partner d'Odoo
    • Agència de màrqueting
    • Bufet d'advocats
    • Captació de talent
    • Auditoria i certificació
    Fabricació
    • Textile
    • Metal
    • Mobles
    • Menjar
    • Brewery
    • Regals corporatius
    Salut i fitness
    • Club d'esport
    • Òptica
    • Centre de fitness
    • Especialistes en benestar
    • Farmàcia
    • Perruqueria
    Trades
    • Servei de manteniment
    • Hardware i suport informàtic
    • Sistemes d'energia solar
    • Shoe Maker
    • Serveis de neteja
    • Instal·lacions HVAC
    Altres
    • Nonprofit Organization
    • Agència del medi ambient
    • Lloguer de panells publicitaris
    • Fotografia
    • Lloguer de bicicletes
    • Distribuïdors de programari
    Browse all Industries
  • Comunitat
    Aprèn
    • Tutorials
    • Documentació
    • Certificacions
    • Formació
    • Blog
    • Pòdcast
    Potenciar l'educació
    • Programa educatiu
    • Scale-Up! El joc empresarial
    • Visita Odoo
    Obtindre el programari
    • Descarregar
    • Comparar edicions
    • Novetats de les versions
    Col·laborar
    • GitHub
    • Fòrum
    • Esdeveniments
    • Traduccions
    • Converteix-te en partner
    • Services for Partners
    • Registra la teva empresa comptable
    • Referral Program
    Obtindre els serveis
    • Troba un partner
    • Troba un comptable
    • Contacta amb un expert
    • Serveis d'implementació
    • Referències del client
    • Suport
    • Actualitzacions
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Programar una demo
  • Preus
  • Ajuda
You need to be registered to interact with the community.
All Posts People Badges
Etiquetes (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Etiquetes (View all)
odoo accounting v14 pos v15
About this forum
Ajuda

The best practice to process Sales Order- Exchange without refund - Odoo 18

Subscriure's

Get notified when there's activity on this post

This question has been flagged
7 Respostes
232 Vistes
Avatar
Azra Nayan

What is the recommended Odoo best practice when a customer exchanges a product for a different size at the same price after the original Sales Order has been paid and delivered? Should the process be handled via Return Transfer + New Sales Order, or by creating a new Sales Order with negative and positive quantities? My concern is preserving the integrity of the original Sales Order and avoiding the need to unlock completed transactions.

0
Avatar
Descartar
Avatar
Siddharth More
Best Answer

Great question! Here's the recommended best practice in Odoo 18 for a same-price product exchange (no refund):

✅ Recommended Approach: Return Transfer + New Sales Order

  1. On the original Delivery Order, click "Return" — select the product to return, confirm the reverse transfer.
  2. Validate the Return Transfer to bring stock back into inventory.
  3. Create a New Sales Order for the replacement product (same price) — no need to touch the original SO.
  4. Deliver and confirm the new order normally.
Why NOT negative/positive lines on a new SO?
  • It complicates reporting and invoice reconciliation.
  • Mixing negative quantities can confuse stock valuation.
Key benefit: The original Sales Order, invoice, and payment remain untouched and auditable. The return and replacement are fully traceable as separate transactions — clean, compliant, and GST-safe for Indian businesses.

Hope this helps! For professional Odoo implementation in India, feel free to reach out to Alligator Infosoft at alligatorinfosoft.com
0
Avatar
Descartar
Avatar
Siddharth More
Best Answer

Great question! Here's the recommended best practice for a same-price product exchange (no refund) in Odoo 18: Recommended Flow: Return Transfer + New Sales Order

  1. Go to the original delivery order → click Return
  2. Select the product being returned → validate the return receipt
  3. Create a New Sales Order for the replacement product (same price)
  4. On the new SO, apply a credit note from the original invoice as payment (if needed), or mark as paid via journal entry
  5. Deliver the new product → validate
Why NOT negative/positive quantities on same SO?
  • Breaks original SO integrity
  • Complicates reporting & audit trail
  • Causes inventory valuation issues
Key advantage: Original SO/invoice remains locked and intact — clean audit trail, proper stock movement, and accurate financials.
For complex exchange scenarios with Indian GST implications, ensure credit notes reference the original invoice correctly.

Hope this helps! For professional Odoo implementation in India, feel free to reach out to Alligator Infosoft at alligatorinfosoft.com
0
Avatar
Descartar
Avatar
Siddharth More
Best Answer

For a same-price product exchange (no refund) in Odoo 18, the recommended best practice is:

  1. Create a Return Transfer from the original Delivery Order (Reverse Transfer) — select only the exchanged product, validate it back into stock.
  2. Create a new Sales Order for the replacement product at the same price — this keeps the original SO intact and fully auditable.
  3. On the new SO, you can optionally add a note referencing the original SO number for traceability.
  4. Invoice the new SO at ₹0 (or apply a 100% discount) since payment was already received — no financial impact.
  5. Validate the new delivery for the replacement item.
Why not negative lines on the same SO?
  • Negative quantities on a locked/done SO require unlocking, risking audit integrity.
  • Separate documents maintain clean GST reporting and stock valuation in Indian localization.
Hope this helps! For professional Odoo implementation in India, feel free to reach out to Alligator Infosoft at alligatorinfosoft.com
0
Avatar
Descartar
Avatar
Siddharth More
Best Answer

Great question! This is a very common scenario — especially in Indian retail, apparel, and FMCG businesses where size/variant exchanges are frequent. Let me walk you through the recommended best practice in Odoo 18 for handling a product exchange without a refund, while preserving the integrity of the original Sales Order.
Understanding the Core Requirement
When a customer exchanges Product A (Size M) for Product B (Size L) at the same price, after the original SO is confirmed, delivered, and paid, you need to:

  • Return the original product back to stock
  • Dispatch the new product to the customer
  • Ensure no financial impact (no refund, no extra charge)
  • Keep the original Sales Order and Invoice untouched and locked

Recommended Best Practice: Return Transfer + Exchange Delivery (No New Invoice)
The cleanest approach in Odoo 18 is using the Return Transfer mechanism paired with a new Sales Order at zero net value (or using stock moves directly). Here is the step-by-step process:
Step 1: Create a Return for the Original Delivery
  1. Go to Inventory → Operations → Transfers
  2. Open the original validated Delivery Order linked to the Sales Order
  3. Click Return button at the top
  4. In the Return dialog, select the product being returned (e.g., T-Shirt Size M, Qty: 1)
  5. Set the Return Location — ideally a dedicated Exchange/Return location (e.g., WH/Exchange Zone) rather than your main stock, so inventory accuracy is maintained
  6. Click Return to create the reverse transfer
  7. Validate the return transfer once the physical item is received back

Step 2: Create a New Sales Order for the Exchange Item
  1. Go to Sales → Orders → Orders → New
  2. Select the same customer
  3. Add the new product (e.g., T-Shirt Size L, Qty: 1) at the same unit price
  4. In the Other Info tab, add a note in the customer reference like "Exchange against SO/2024/XXXXX"
  5. Confirm the Sales Order
  6. Deliver the new product to the customer

Step 3: Handle the Financial Settlement (Zero Balance)
Since no money changes hands, you need to neutralize the invoice on the new SO:
  1. On the new Sales Order, click Create Invoice
  2. The invoice will show the full amount for the new product
  3. Now create a Credit Note on the original invoice for the returned product — same amount
  4. Go to Accounting → Customers → Credit Notes and open the credit note
  5. Instead of refunding, click Outstanding Credits on the new invoice and reconcile it against the credit note
  6. Both the new invoice and the credit note will show as Paid/Matched with zero cash movement

Important Note on GST (Indian Localization)
  • The Credit Note generated will carry the appropriate GST (CGST/SGST or IGST) reversal
  • The new Invoice will have fresh GST — these will offset each other in your GSTR-1 and GSTR-3B
  • Make sure both the Credit Note and new Invoice fall in the same GST period wherever possible to simplify reconciliation
  • Always use the "Reversal of Invoice" reason when creating the Credit Note for proper GSTR reporting
  • If the exchange is for a product with a different HSN code or GST rate, the tax lines will differ — ensure your tax mapping is correct on both products

Alternative Approach: New SO with Negative + Positive Lines (Not Recommended)
You mentioned the approach of adding negative and positive quantity lines on a single new SO. Here is why this is generally discouraged:
  • Negative quantity lines on a Sales Order create confusing stock moves and can trigger validation errors in Odoo 18
  • It breaks clean reporting — Sales Analysis and Revenue reports will show distorted figures
  • Delivery orders with negative quantities are not standard and require manual workarounds
  • It is harder to audit from a GST compliance perspective

Pro Tip: Create a Dedicated Exchange Route/Location
For businesses handling frequent exchanges (retail, garments, electronics), we recommend setting up:

Inventory → Configuration → Warehouses → Locations

Create:
- Location Name : WH/Exchange Zone
- Location Type : Internal
- Use for      : Receiving returned exchange items before re-inspection

Workflow:
Customer Return → WH/Exchange Zone → Quality Check → WH/Stock (if resaleable)
                                                    → WH/Scrap (if damaged)
This gives you full traceability and keeps your main stock clean.
Version-Specific Notes
  • Odoo 16/17:
0
Avatar
Descartar
Avatar
Siddharth More
Best Answer
Original SO -> Delivery -> Return Transfer (Stock received back)
Original SO -> Invoice -> Credit Note (Financial credit generated)

New SO -> Delivery (Replacement stock shipped)

New SO -> Invoice -> Credit Note Applied (Balance zeroed out)

0
Avatar
Descartar
Avatar
Azra Nayan
Autor Best Answer

We understand the recommended approach is:

  1. Process a Return Transfer for the original items.
  2. Create a new Sales Order for the replacement items.
  3. Deliver the replacement items.

Could you please confirm:

  1. Is this the recommended Odoo best practice?
  2. Should the replacement Sales Order be invoiced if the original invoice has already been paid and there is no price difference?
  3. How should the new Sales Order be handled to avoid creating duplicate revenue or accounts receivable?
  4. Is there a preferred workflow for same-value exchanges that maintains accurate inventory, accounting, and reporting?
  5. Would you recommend using the Sales Order workflow or the POS workflow when the original transaction was a Sales Order?


0
Avatar
Descartar
Avatar
Zehntech Technologies Inc.
Best Answer

Hello, 

For a size-for-size exchange at the same price, the recommended Odoo approach is typically:

  1. Create a Return Transfer for the originally delivered product.
  2. Create a new Sales Order (or replacement delivery process) for the replacement item.

This keeps the original Sales Order intact, preserves a clear audit trail, and avoids unlocking or modifying completed transactions. Using positive and negative quantities on a new Sales Order is generally less desirable from a reporting and transaction-history perspective.

Hope this works for you! If you need any help implementing this or want a more optimized approach, feel free to reach out for further discussion.

Regards,

Zehntech Technologies Inc.

santosh.sekwadia@zehntech.com

0
Avatar
Descartar
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Registrar-se
Community
  • Tutorials
  • Documentació
  • Fòrum
Codi obert
  • Descarregar
  • GitHub
  • Runbot
  • Traduccions
Serveis
  • Allotjament a Odoo.sh
  • Suport
  • Actualització
  • Desenvolupaments personalitzats
  • Educació
  • Troba un comptable
  • Troba un partner
  • Converteix-te en partner
Sobre nosaltres
  • La nostra empresa
  • Actius de marca
  • Contacta amb nosaltres
  • Llocs de treball
  • Esdeveniments
  • Pòdcast
  • Blog
  • Clients
  • Informació legal • Privacitat
  • Seguretat
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo és un conjunt d'aplicacions empresarials de codi obert que cobreix totes les necessitats de la teva empresa: CRM, comerç electrònic, comptabilitat, inventari, punt de venda, gestió de projectes, etc.

La proposta única de valor d'Odoo és ser molt fàcil d'utilitzar i estar totalment integrat, ambdues alhora.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now