diff --git a/rma/models/rma.py b/rma/models/rma.py
index 5fd07a56..cec2c1a7 100644
--- a/rma/models/rma.py
+++ b/rma/models/rma.py
@@ -1154,10 +1154,13 @@ class Rma(models.Model):
self._ensure_can_be_replaced()
moves_before = self.delivery_move_ids
self._action_launch_stock_rule(scheduled_date, warehouse, product, qty, uom)
- new_move = self.delivery_move_ids - moves_before
- if new_move:
- self.message_post(
- body=_(
+ new_moves = self.delivery_move_ids - moves_before
+ body = ""
+ # The product replacement could explode into several moves like in the case of
+ # MRP BoM Kits
+ for new_move in new_moves:
+ body += (
+ _(
"Replacement: "
'Move %s (Picking "
- 'Product %s
'
- "Quantity %f %s
"
- "This replacement did not create a new move, but one of "
- "the previously created moves was updated with this data."
- )
- % (product.id, product.display_name, qty, uom.name)
+ self.message_post(
+ body=body
+ or _(
+ "Replacement:
"
+ 'Product %s
'
+ "Quantity %f %s
"
+ "This replacement did not create a new move, but one of "
+ "the previously created moves was updated with this data."
)
+ % (product.id, product.display_name, qty, uom.name)
+ )
if self.state != "waiting_replacement":
self.state = "waiting_replacement"