Site icon MageComp Blog

How to Create Shipment With Magento 2 API

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:

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

  1. Go to Sales > Shipments in the admin panel. The Three shipments for this order are displayed in the grid.
  2. 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!

Exit mobile version