Se rendre au contenu
Odoo Menu
  • Se connecter
  • Essai gratuit
  • Applications
    Finance
    • Comptabilité
    • Facturation
    • Notes de frais
    • Feuilles de calcul (BI)
    • Documents
    • Signature
    Ventes
    • CRM
    • Ventes
    • PdV Boutique
    • PdV Restaurant
    • Abonnements
    • Location
    Sites web
    • Site Web
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Chaîne d'approvisionnement
    • Inventaire
    • Fabrication
    • PLM
    • Achats
    • Maintenance
    • Qualité
    Ressources Humaines
    • Employés
    • Recrutement
    • Congés
    • Évaluations
    • Recommandations
    • Parc automobile
    Marketing
    • Marketing Social
    • E-mail Marketing
    • SMS Marketing
    • Événements
    • Marketing Automation
    • Sondages
    Services
    • Projet
    • Feuilles de temps
    • Services sur Site
    • Assistance
    • Planification
    • Rendez-vous
    Productivité
    • Discussion
    • Intelligence artificielle
    • Internet des Objets
    • VoIP
    • Connaissances
    • WhatsApp
    Applications tierces Odoo Studio Plateforme Cloud d'Odoo
  • Industries
    Commerce de détail
    • Librairie
    • Magasin de vêtements
    • Magasin de meubles
    • Supermarché
    • Quincaillerie
    • Magasin de jouets
    Restauration & Hôtellerie
    • Bar et Pub
    • Restaurant
    • Fast-food
    • Maison d’hôtes
    • Distributeur de boissons
    • Hôtel
    Immobilier
    • Agence immobilière
    • Cabinet d'architecture
    • Construction
    • Gestion immobilière
    • Jardinage
    • Association de copropriétaires
    Consultance
    • Cabinet d'expertise comptable
    • Partenaire Odoo
    • Agence Marketing
    • Cabinet d'avocats
    • Aquisition de talents
    • Audit & Certification
    Fabrication
    • Textile
    • Métal
    • Meubles
    • Alimentation
    • Brasserie
    • Cadeaux d'entreprise
    Santé & Fitness
    • Club de sports
    • Opticien
    • Salle de fitness
    • Praticiens bien-être
    • Pharmacie
    • Salon de coiffure
    Commerce
    • Homme à tout faire
    • Matériel informatique & support
    • Systèmes photovoltaïques
    • Cordonnier
    • Services de nettoyage
    • Services CVC
    Autres
    • Organisation à but non lucratif
    • Agence environnementale
    • Location de panneaux d'affichage
    • Photographie
    • Leasing de vélos
    • Revendeur de logiciel
    Parcourir toutes les industries
  • Communauté
    Apprenez
    • Tutoriels
    • Documentation
    • Certifications
    • Formation
    • Blog
    • Podcast
    Renforcer l'éducation
    • Programme éducatif
    • Business Game Scale-Up!
    • Rendez-nous visite
    Obtenir le logiciel
    • Téléchargement
    • Comparez les éditions
    • Versions
    Collaborer
    • Github
    • Forum
    • Événements
    • Traductions
    • Devenir partenaire
    • Services pour partenaires
    • Enregistrer votre cabinet comptable
    • Referral Program
    Nos Services
    • Trouver un partenaire
    • Trouver un comptable
    • Rencontrer un conseiller
    • Services de mise en œuvre
    • Références clients
    • Assistance
    • Mises à niveau
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Obtenir une démonstration
  • Tarification
  • Aide
Vous devez être inscrit pour interagir avec la communauté.
Toutes les publications Personnes Badges
Étiquettes (Voir toutl)
odoo accounting v14 pos v15
À propos de ce forum
Vous devez être inscrit pour interagir avec la communauté.
Toutes les publications Personnes Badges
Étiquettes (Voir toutl)
odoo accounting v14 pos v15
À propos de ce forum
Aide

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

S'inscrire

Recevez une notification lorsqu'il y a de l'activité sur ce poste

Cette question a été signalée
7 Réponses
229 Vues
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
Ignorer
Avatar
Siddharth More
Meilleure réponse

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
Ignorer
Avatar
Siddharth More
Meilleure réponse

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
Ignorer
Avatar
Siddharth More
Meilleure réponse

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
Ignorer
Avatar
Siddharth More
Meilleure réponse

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
Ignorer
Avatar
Siddharth More
Meilleure réponse
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
Ignorer
Avatar
Azra Nayan
Auteur Meilleure réponse

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
Ignorer
Avatar
Zehntech Technologies Inc.
Meilleure réponse

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
Ignorer
Vous appréciez la discussion ? Ne vous contentez pas de lire, rejoignez-nous !

Créez un compte dès aujourd'hui pour profiter de fonctionnalités exclusives et échanger avec notre formidable communauté !

S'inscrire
Communauté
  • Tutoriels
  • Documentation
  • Forum
Open Source
  • Téléchargement
  • Github
  • Runbot
  • Traductions
Services
  • Hébergement Odoo.sh
  • Assistance
  • Migration
  • Développements personnalisés
  • Éducation
  • Trouver un comptable
  • Trouver un partenaire
  • Devenir partenaire
À propos
  • Notre société
  • Actifs de la marque
  • Contactez-nous
  • Emplois
  • Événements
  • Podcast
  • Blog
  • Clients
  • Informations légales • Confidentialité
  • Sécurité.
الْعَرَبيّة 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 est une suite d'applications open source couvrant tous les besoins de votre entreprise : CRM, eCommerce, Comptabilité, Inventaire, Point de Vente, Gestion de Projet, etc.

Le positionnement unique d'Odoo est d'être à la fois très facile à utiliser et totalement intégré.

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