diff --git a/packages/Webkul/Sales/src/Repositories/RefundRepository.php b/packages/Webkul/Sales/src/Repositories/RefundRepository.php index 357e7511c..0c441d14c 100644 --- a/packages/Webkul/Sales/src/Repositories/RefundRepository.php +++ b/packages/Webkul/Sales/src/Repositories/RefundRepository.php @@ -129,30 +129,38 @@ class RefundRepository extends Repository 'additional' => $orderItem->additional ]); - if ($orderItem->type == 'configurable' && $orderItem->child) { - $childOrderItem = $orderItem->child; + if ($orderItem->getTypeInstance()->isComposite()) { + foreach ($orderItem->children as $childOrderItem) { + $finalQty = $childOrderItem->qty_ordered + ? ($childOrderItem->qty_ordered / $orderItem->qty_ordered) * $qty + : $childOrderItem->qty_ordered; - $refundItem->child = $this->refundItemRepository->create([ - 'refund_id' => $refund->id, - 'order_item_id' => $childOrderItem->id, - 'parent_id' => $refundItem->id, - 'name' => $childOrderItem->name, - 'sku' => $childOrderItem->sku, - 'qty' => $qty, - 'price' => $childOrderItem->price, - 'base_price' => $childOrderItem->base_price, - 'total' => $childOrderItem->price * $qty, - 'base_total' => $childOrderItem->base_price * $qty, - 'tax_amount' => 0, - 'base_tax_amount' => 0, - 'discount_amount' => 0, - 'base_discount_amount' => 0, - 'product_id' => $childOrderItem->product_id, - 'product_type' => $childOrderItem->product_type, - 'additional' => $childOrderItem->additional - ]); + $refundItem->child = $this->refundItemRepository->create([ + 'refund_id' => $refund->id, + 'order_item_id' => $childOrderItem->id, + 'parent_id' => $refundItem->id, + 'name' => $childOrderItem->name, + 'sku' => $childOrderItem->sku, + 'qty' => $finalQty, + 'price' => $childOrderItem->price, + 'base_price' => $childOrderItem->base_price, + 'total' => $childOrderItem->price * $finalQty, + 'base_total' => $childOrderItem->base_price * $finalQty, + 'tax_amount' => 0, + 'base_tax_amount' => 0, + 'discount_amount' => 0, + 'base_discount_amount' => 0, + 'product_id' => $childOrderItem->product_id, + 'product_type' => $childOrderItem->product_type, + 'additional' => $childOrderItem->additional + ]); + + if ($childOrderItem->product->getTypeInstance()->showQuantityBox()) + $this->refundItemRepository->returnQtyToProductInventory($childOrderItem, $finalQty); + + $this->orderItemRepository->collectTotals($childOrderItem); + } - $this->refundItemRepository->returnQtyToProductInventory($childOrderItem, $qty); } else { $this->refundItemRepository->returnQtyToProductInventory($orderItem, $qty); } diff --git a/packages/Webkul/Shop/src/Resources/views/emails/sales/new-refund.blade.php b/packages/Webkul/Shop/src/Resources/views/emails/sales/new-refund.blade.php index af0683473..d80d9937d 100644 --- a/packages/Webkul/Shop/src/Resources/views/emails/sales/new-refund.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/emails/sales/new-refund.blade.php @@ -31,37 +31,39 @@
-
-
- {{ __('shop::app.mail.order.shipping-address') }} -
+ @if ($order->shipping_address) +
+
+ {{ __('shop::app.mail.order.shipping-address') }} +
-
- {{ $order->shipping_address->name }} -
+
+ {{ $order->shipping_address->name }} +
-
- {{ $order->shipping_address->address1 }}, {{ $order->shipping_address->state }} -
+
+ {{ $order->shipping_address->address1 }}, {{ $order->shipping_address->state }} +
-
- {{ core()->country_name($order->shipping_address->country) }} {{ $order->shipping_address->postcode }} -
+
+ {{ core()->country_name($order->shipping_address->country) }} {{ $order->shipping_address->postcode }} +
-
---
+
---
-
- {{ __('shop::app.mail.order.contact') }} : {{ $order->shipping_address->phone }} -
+
+ {{ __('shop::app.mail.order.contact') }} : {{ $order->shipping_address->phone }} +
-
- {{ __('shop::app.mail.order.shipping') }} -
+
+ {{ __('shop::app.mail.order.shipping') }} +
-
- {{ $order->shipping_title }} +
+ {{ $order->shipping_title }} +
-
+ @endif
@@ -113,6 +115,16 @@ {{ $item->name }} + + @if (isset($item->additional['attributes'])) +
+ + @foreach ($item->additional['attributes'] as $attribute) + {{ $attribute['attribute_name'] }} : {{ $attribute['option_label'] }}
+ @endforeach + +
+ @endif @@ -122,14 +134,6 @@ {{ $item->qty }} - - @if ($html = $item->getOptionDetailHtml()) -
- -
- @endif @endforeach @@ -146,7 +150,7 @@
- @if ($refund->shipping_amount > 0) + @if ($order->shipping_address)
{{ __('shop::app.mail.order.shipping-handling') }}