Skip to content

Commit 48a6d4a

Browse files
author
Yu Tang
committed
MAGETWO-32831: Can not checkout with multiple addresses
- Fixed a problem with order item conversion
1 parent 60b69b3 commit 48a6d4a

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ protected function _prepareOrder(\Magento\Quote\Model\Quote\Address $address)
634634
)->setProductOptions(
635635
$_quoteItem->getProduct()->getTypeInstance()->getOrderOptions($_quoteItem->getProduct())
636636
);
637-
$orderItem = $this->quoteItemToOrderItem->convert($_quoteItem);
637+
$orderItem = $this->quoteItemToOrderItem->convert($item);
638638
if ($item->getParentItem()) {
639639
$orderItem->setParentItem($order->getItemByQuoteItemId($item->getParentItem()->getId()));
640640
}

app/code/Magento/Quote/Model/Quote/Item/ToOrderItem.php

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
use Magento\Framework\Object\Copy;
1010
use Magento\Quote\Model\Quote\Item;
11+
use Magento\Quote\Model\Quote\Address\Item as AddressItem;
1112
use Magento\Sales\Api\Data\OrderItemInterfaceFactory as OrderItemFactory;
1213
use Magento\Sales\Api\Data\OrderItemInterface;
1314

@@ -47,28 +48,28 @@ public function __construct(
4748
}
4849

4950
/**
50-
* @param Item $quoteItem
51+
* @param Item|AddressItem $item
5152
* @param array $data
5253
* @return OrderItemInterface
5354
*/
54-
public function convert(Item $quoteItem, $data = [])
55+
public function convert($item, $data = [])
5556
{
56-
$options = $quoteItem->getProductOrderOptions();
57+
$options = $item->getProductOrderOptions();
5758
if (!$options) {
58-
$options = $quoteItem->getProduct()->getTypeInstance()->getOrderOptions($quoteItem->getProduct());
59+
$options = $item->getProduct()->getTypeInstance()->getOrderOptions($item->getProduct());
5960
}
6061
$orderItemData = $this->objectCopyService->getDataFromFieldset(
6162
'quote_convert_item',
6263
'to_order_item',
63-
$quoteItem
64+
$item
6465
);
65-
if (!$quoteItem->getNoDiscount()) {
66+
if (!$item->getNoDiscount()) {
6667
$data = array_merge(
6768
$data,
6869
$this->objectCopyService->getDataFromFieldset(
6970
'quote_convert_item',
7071
'to_order_item_discount',
71-
$quoteItem
72+
$item
7273
)
7374
);
7475
}
@@ -80,9 +81,9 @@ public function convert(Item $quoteItem, $data = [])
8081
'\Magento\Sales\Api\Data\OrderItemInterface'
8182
);
8283
$orderItem->setProductOptions($options);
83-
if ($quoteItem->getParentItem()) {
84+
if ($item->getParentItem()) {
8485
$orderItem->setQtyOrdered(
85-
$orderItemData[OrderItemInterface::QTY_ORDERED] * $quoteItem->getParentItem()->getQty()
86+
$orderItemData[OrderItemInterface::QTY_ORDERED] * $item->getParentItem()->getQty()
8687
);
8788
}
8889
return $orderItem;

0 commit comments

Comments
 (0)