diff --git a/vendor/magento/module-sales/Model/Order.php b/vendor/magento/module-sales/Model/Order.php index 4517ce3a32ca9..db17f4f135236 100644 --- a/vendor/magento/module-sales/Model/Order.php +++ b/vendor/magento/module-sales/Model/Order.php @@ -887,8 +887,16 @@ public function canShip() private function checkItemShipping(): bool { foreach ($this->getAllItems() as $item) { - $qtyToShip = !$item->getParentItem() || $item->getParentItem()->getProductType() !== Type::TYPE_BUNDLE ? - $item->getQtyToShip() : $item->getSimpleQtyToShip(); + if (!$item->getParentItem() || $item->getParentItem()->getProductType() !== Type::TYPE_BUNDLE) { + $qtyToShip = $item->getQtyToShip(); + } else { + if ($item->getParentItem()->getProductType() === Type::TYPE_BUNDLE && + $item->getParentItem()->getProduct()->getShipmentType() == Type\AbstractType::SHIPMENT_TOGETHER) { + $qtyToShip = $item->getParentItem()->getQtyToShip(); + } else { + $qtyToShip = $item->getSimpleQtyToShip(); + } + } if ($qtyToShip > 0 && !$item->getIsVirtual() && !$item->getLockedDoShip()) { return true;