6

I want to get order,customer information by using REST API.

Anyone have idea about this?

  • You want to get order, customer info using REST API? – Khoa TruongDinh Jan 11 '17 at 10:02
  • Yes, I want order,customer info using REST API @KhoaTruongDinh – BornCoder Jan 11 '17 at 10:03
11

For order information:

$userData = array("username" => "admin", "password" => "admin123");
$ch = curl_init("http://magento213/index.php/rest/V1/integration/admin/token");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($userData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Content-Lenght: " . strlen(json_encode($userData))));

$token = curl_exec($ch);

$ch = curl_init("http://magento213/index.php/rest/V1/orders/1");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Bearer " . json_decode($token)));

$result = curl_exec($ch);

$result = json_decode($result, 1);
echo '<pre>';print_r($result);

Api List

| improve this answer | |
  • I am using same code but facing problem in getting password. For Password , $this->authSession->getUser()->getPassword(); but its returning encrypted password so rest api throw an error that you are not login properly. So, How to get decrypted password? – BornCoder Jan 11 '17 at 11:26
  • Password encryption is one way. So you can't decrypt. – Sohel Rana Jan 11 '17 at 11:30
  • But with encrypted password , I am not getting token here. So, How to get token with encrypted password ? Error: {"message":"You did not sign in correctly or your account is temporarily disabled."} – BornCoder Jan 11 '17 at 11:34
  • How can I create my magento api to use this code snippet ? – Ajwad Syed Apr 7 '19 at 15:20
4

fetch all pending orders through REST API, add comments on it and change status for those orders

$userData = array("username" => "adminuser", "password" => "adminpassowrd");
$ch = curl_init("https://yourhost.com/index.php/rest/V1/integration/admin/token");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($userData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Content-Lenght: " . strlen(json_encode($userData))));

$token = curl_exec($ch);

$apiOrderUrl = 'https://yourhost.com/index.php/rest/V1/orders/?searchCriteria[filterGroups][0][filters][0][field]=status&searchCriteria[filterGroups][0][filters][0][value]=pending&searchCriteria[filterGroups][0][filters][0][conditionType]=eq';
$ch = curl_init($apiOrderUrl);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Bearer " . json_decode($token)));

$result = curl_exec($ch);
$results = json_decode($result, true); // all orders with status pending

foreach ($results['items'] as $order) {
     $commentData = array(
        'id' => $order['entity_id'], //order_id
        'statusHistory' => array(
            'comment' => 'Received order?',
            'entity_id' => null,
            'is_customer_notified' => '1',
            'created_at' => now(),
            'parent_id' => $order['entity_id'], //order_id
            'entity_name' => 'order',
            'status' => 'processing', //assign new status to order
            'is_visible_on_front' => '1'
        )
    );

    $commentData = json_encode($commentData,true);
    $orderStatusApiUrl = 'https://yourhost.com/index.php/rest/V1/orders/'.$order['entity_id'].'/comments';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$orderStatusApiUrl);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $commentData );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Bearer " . json_decode($token)));
    $response = curl_exec($ch); //true
}
| improve this answer | |
3

Go to http://devdocs.magento.com/swagger/

salesOrderRepositoryV1 and customerCustomerRepositoryV1

  • Order info: GET: '/V1/orders/{id}'

  • Customer info: GET: '/V1/customers/{customerId}'

We can read more here: https://magento.stackexchange.com/a/149927/33057

| improve this answer | |
1

For Get Order Collection using REST API, You can pass below request url to fetch order data from Magento.

{SITE_URL}/rest/V1/orders?searchCriteria=entity_id&limit=5

Now based on above criteria you can get 5 order from order collection.

| improve this answer | |
  • not work it return all result not only 5 records – HaFiz Umer May 7 at 16:30
0

For any reason if you need to fetch order collection, a search criteria has to be amended to the URL. If you need to fetch all the orders, please use empty search criteria.

Example : http://magento213/index.php/rest/V1/orders?searchCriteria

Swagger contains more details. Please explore http://devdocs.magento.com/swagger/

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.