Ir al contenido
Odoo Menú
  • Inicia sesión
  • Pruébalo gratis
  • Aplicaciones
    Finanzas
    • Contabilidad
    • Facturación
    • Gastos
    • Hoja de cálculo (BI)
    • Documentos
    • Firma electrónica
    Ventas
    • CRM
    • Ventas
    • PdV para tiendas
    • PdV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en vivo
    • eLearning
    Cadena de suministro
    • Inventario
    • Manufactura
    • PLM
    • Compras
    • Mantenimiento
    • Calidad
    Recursos humanos
    • Empleados
    • Reclutamiento
    • Vacaciones
    • Evaluaciones
    • Referencias
    • Flotilla
    Marketing
    • Redes sociales
    • Marketing por correo
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyectos
    • Registro de horas
    • Servicio externo
    • Soporte al cliente
    • Planeación
    • Citas
    Productividad
    • Conversaciones
    • Inteligencia artificial
    • IoT
    • VoIP
    • Artículos
    • WhatsApp
    Aplicaciones externas Studio de Odoo Plataforma de Odoo en la nube
  • Industrias
    Venta minorista
    • Librería
    • Tienda de ropa
    • Mueblería
    • Tienda de abarrotes
    • Ferretería
    • Juguetería
    Alimentos y hospitalidad
    • Bar y pub
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidora de bebidas
    • Hotel
    Bienes inmuebles
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión de propiedades
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Firma contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Manufactura
    • Textil
    • Metal
    • Muebles
    • Comida
    • Cervecería
    • Regalos corporativos
    Salud y ejercicio
    • Club deportivo
    • Óptica
    • Gimnasio
    • Especialistas en bienestar
    • Farmacia
    • Peluquería
    Trades
    • Personal de mantenimiento
    • Hardware y soporte de TI
    • Sistemas de energía solar
    • Zapateros y fabricantes de calzado
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin fines de lucro
    • Agencia para la protección del medio ambiente
    • Alquiler de anuncios publicitarios
    • Fotografía
    • Alquiler de bicicletas
    • Distribuidor de software
    Descubre todas las industrias
  • Comunidad
    Aprende
    • Tutoriales
    • Documentación
    • Certificaciones
    • Capacitación
    • Blog
    • Podcast
    Fortalece la educación
    • Programa educativo
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtén el software
    • Descargar
    • Compara ediciones
    • Versiones
    Colabora
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Conviértete en partner
    • Servicios para partners
    • Registra tu firma contable
    Obtén servicios
    • Encuentra un partner
    • Encuentra un contador
    • Contacta a un consultor
    • Servicios de implementación
    • Referencias de clientes
    • Soporte
    • Actualizaciones
    GitHub YouTube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicita una demostración
  • Precios
  • Ayuda
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Ayuda

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

Suscribirse

Reciba una notificación cuando haya actividad en esta publicación

Se marcó esta pregunta
7 Respuestas
343 Vistas
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
Mejor respuesta

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
Mejor respuesta

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
Mejor respuesta

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
Mejor respuesta

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
Mejor respuesta
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 Mejor respuesta

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.
Mejor respuesta

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
¿Le interesa esta conversación? ¡Participe en ella!

Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.

Registrarse
Comunidad
  • Tutoriales
  • Documentación
  • Foro
Código abierto
  • Descargar
  • GitHub
  • Runbot
  • Traducciones
Servicios
  • Alojamiento en Odoo.sh
  • Soporte
  • Actualizaciones del software
  • Desarrollos personalizados
  • Educación
  • Encuentra un contador
  • Encuentra un partner
  • Conviértete en partner
Sobre nosotros
  • Nuestra empresa
  • Activos de marca
  • Contáctanos
  • Empleos
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Legal • Privacidad
  • Seguridad
الْعَرَبيّة 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 es un conjunto de aplicaciones de código abierto que cubren todas las necesidades de tu empresa: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos, etc.

La propuesta única de valor de Odoo es ser muy fácil de usar y estar totalmente integrado.

Sitio web hecho con

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