Skip to content

Commit 241b799

Browse files
committed
MC-20638: MyAccount :: Order Details :: Shipping Details by Order Number
1 parent ab98ef3 commit 241b799

File tree

2 files changed

+19
-33
lines changed

2 files changed

+19
-33
lines changed

dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/CustomerOrders/OrderShipmentsTest.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,13 @@ public function testOrderShipmentWithUpsCarrier()
129129
$this->assertArrayNotHasKey('errors', $result);
130130
$this->assertEquals('UPS Next Day Air', $result['customer']['orders']['items'][0]['shipping_method']);
131131
$this->assertEquals('United Parcel Service', $result['customer']['orders']['items'][0]['carrier']);
132-
133132
$shipments = $result['customer']['orders']['items'][0]['shipments'];
134-
$this->assertCount(2, $shipments);
133+
$expectedTracking = [
134+
'title' => 'United Parcel Service',
135+
'carrier' => 'ups',
136+
'number' => '987654321'
137+
];
138+
$this->assertEquals($expectedTracking, $shipments[0]['tracking'][0]);
135139
}
136140

137141
/**

dev/tests/integration/testsuite/Magento/GraphQl/Sales/_files/customer_order_with_ups_shipping.php

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,17 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
use Magento\Sales\Api\Data\ShipmentItemCreationInterface;
8-
use Magento\Sales\Api\Data\ShipmentTrackCreationInterface;
9-
use Magento\Sales\Api\ShipOrderInterface;
107
use Magento\Sales\Model\Order;
118
use Magento\TestFramework\Helper\Bootstrap;
129
use Magento\TestFramework\Workaround\Override\Fixture\Resolver;
10+
use Magento\Framework\DB\Transaction;
11+
use Magento\Sales\Model\Order\ShipmentFactory;
1312

1413
Resolver::getInstance()->requireDataFixture('Magento/Sales/_files/order_with_different_types_of_product.php');
1514

1615
$objectManager = Bootstrap::getObjectManager();
17-
/** @var ShipOrderInterface $shipOrder */
18-
$shipOrder = $objectManager->create(ShipOrderInterface::class);
16+
/** @var Transaction $transaction */
17+
$transaction = $objectManager->get(Transaction::class);
1918
/** @var Order $order */
2019
$order = $objectManager->create(Order::class)->loadByIncrementId('100000001');
2120
//Set the shipping method
@@ -26,31 +25,14 @@
2625
//Create Shipment with UPS tracking and some items
2726
$shipmentItems = [];
2827
foreach ($order->getItems() as $orderItem) {
29-
if (count($shipmentItems) === 2) {
30-
break;
31-
}
32-
/** @var ShipmentItemCreationInterface $shipmentItem */
33-
$shipmentItem = $objectManager->create(ShipmentItemCreationInterface::class);
34-
$shipmentItem->setOrderItemId($orderItem->getItemId());
35-
$shipmentItem->setQty($orderItem->getQtyOrdered());
36-
$shipmentItems[] = $shipmentItem;
28+
$shipmentItems[$orderItem->getId()] = $orderItem->getQtyOrdered();
3729
}
38-
/** @var ShipmentTrackCreationInterface $track */
39-
$track = $objectManager->create(ShipmentTrackCreationInterface::class);
40-
$track->setCarrierCode('ups');
41-
$track->setTitle('United Parcel Service');
42-
$track->setTrackNumber('987654321');
43-
$shipOrder->execute($order->getId(), $shipmentItems, false, false, null, [$track]);
30+
$tracking = [
31+
'carrier_code' => 'ups',
32+
'title' => 'United Parcel Service',
33+
'number' => '987654321'
34+
];
4435

45-
//Create second Shipment
46-
$shipmentItems = [];
47-
foreach ($order->getItems() as $orderItem) {
48-
if ($orderItem->getQtyShipped() === 0) {
49-
/** @var ShipmentItemCreationInterface $shipmentItem */
50-
$shipmentItem = $objectManager->create(ShipmentItemCreationInterface::class);
51-
$shipmentItem->setOrderItemId($orderItem->getItemId());
52-
$shipmentItem->setQty($orderItem->getQtyOrdered());
53-
$shipmentItems[] = $shipmentItem;
54-
}
55-
}
56-
$shipOrder->execute($order->getId(), $shipmentItems);
36+
$shipment = $objectManager->get(ShipmentFactory::class)->create($order, $shipmentItems, [$tracking]);
37+
$shipment->register();
38+
$transaction->addObject($shipment)->addObject($order)->save();

0 commit comments

Comments
 (0)