Hello, Magento pals!
Magento 2 is a flexible, powerful E-commerce platform that enables the user to create shipping of an order with the use of API. hence, I am here with this complete tutorial on how you can create shipping with Magento 2 API.
Let’s get going!
Create Shipment With Magento 2 REST API
Get the order_item_id of all the products that are to be shipped in order to create a shipment with Magento 2. Note that:
- To create a partial shipment, define only the order_item_ids that are going to be shipped now.
- If the call is successful on a full shipment, The order status is changed to Complete.
Endpoint:
POST https://domain.com/rest/<store_code>/V1/order/1/ship
Here, 1 is Your Order Id and store_code (optional).
Headers:
Content-Type: application/json
Authorization: Bearer <administrator token>
Payload:
{ "items": [ { "order_item_id": 1, "qty": 1 }, { "order_item_id": 2, "qty": 2 }, { "order_item_id": 3, "qty": 3 } ], "notify": true, "appendComment": true, "comment": { "comment": "Shipment from the warehouse" }, "tracks": [ { "track_number": "456456465", "title": "fedex Title Here", "carrier_code": "fedex" } ] }
Response:
The shipment ID, such as 3.
Check the results
- Go to Sales > Shipments in the admin panel. The Three shipments for this order are displayed in the grid.
- Go to Catalog > Products. Check that the Quantity per Source values are correct for each product, based on the selections you made at shipment.
Create Sample Example for shipment using REST API so create shipment_rest_api.php in your Magento root path after adding the below code.
<?php $admindata = array("username" => "admin", "password" => "admin@123"); $ch = curl_init("http://domain.com/rest/V1/integration/admin/token"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($admindata)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Content-Length: " . strlen(json_encode($admindata)))); $token = curl_exec($ch); curl_close($ch); echo "Token : ".$token; $ch = curl_init(); if (!$ch) { return "Couldn't initialize a cURL handle"; } $data = '{ "items": [ { "order_item_id": 4, "qty": 1 } ] }'; $host= "http://domain.com/rest/V1/order/4/ship"; curl_setopt($ch, CURLOPT_URL,$host); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Bearer " . json_decode($token))); $curlresponse = curl_exec($ch); print_r(curl_error($curlresponse)); $responseData=json_decode($curlresponse); echo "<pre>"; print_r($responseData); echo "</pre>";
After adding the above code, run the below URL to check shipment was created or not.
http://domain.com/shipment_rest_api.php
Bottom Line
The aforementioned are the comprehensive details on How to Create Shipment With Magento 2 API. we anticipate that this blog post was a beneficial one for what you were looking for.
If you have any complications or want to talk about something relevant to this problem, please write us in the comments below. I look forward to hearing from you!
Happy Coding!