diff --git a/vendor/magento/module-sales/Model/Order.php b/vendor/magento/module-sales/Model/Order.php index f272a4638a1..afec030075a 100644 --- a/vendor/magento/module-sales/Model/Order.php +++ b/vendor/magento/module-sales/Model/Order.php @@ -5,6 +5,7 @@ */ namespace Magento\Sales\Model; +use Magento\Catalog\Model\Product\Type; use Magento\Config\Model\Config\Source\Nooptreq; use Magento\Directory\Model\Currency; use Magento\Directory\Model\RegionFactory; @@ -197,7 +198,8 @@ class Order extends AbstractModel implements EntityInterface, OrderInterface /** * @var \Magento\Catalog\Api\ProductRepositoryInterface - * @deprecated 100.1.0 Remove unused dependency. + * @deprecated 100.1.0 + * @see Remove unused dependency */ protected $productRepository; @@ -831,7 +833,10 @@ class Order extends AbstractModel implements EntityInterface, OrderInterface } foreach ($this->getAllItems() as $item) { - if ($item->getQtyToShip() > 0 && !$item->getIsVirtual() && + $qtyToShip = !$item->getParentItem() || $item->getParentItem()->getProductType() !== Type::TYPE_BUNDLE ? + $item->getQtyToShip() : $item->getSimpleQtyToShip(); + + if ($qtyToShip > 0 && !$item->getIsVirtual() && !$item->getLockedDoShip() && !$this->isRefunded($item)) { return true; }