Magento – Magento rest API For Order

apimagento2

We had followed the add order process of
Magento 2 – Create order using REST API on the process of "Place Order" using the API "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/order" with the params of { "paymentMethod": { "method": "checkmo" } } as put Method we are getting "Please select a valid payment method." from Rest API.

Best Answer

1. Get Customer Token

http://magento-host/index.php/rest/V1/integration/customer/token?
username=aditya.shah@test.com&password=test@123
  • method : POST

2. Get Cart ID (Quote ID) - using customer id.

This will return quote id, which will be used for placing an order.

http://magento-host/rest/V1/carts/mine
  • method : POST
  • Authorization : Bearer <customer token>

3. Add Configurable product in cart.

http://magento-host/index.php/rest/default/V1/carts/mine/items
  • method : POST
  • Authorization : Bearer <customer token>
  • body data : json

{
  "cartItem": {
    "sku": "HKrh15hc", <product SKU>
    "qty": 5,
    "quote_id": "75", <Quote ID - Cart ID [see. step 2]>
    "product_option": {
      "extension_attributes": {
        "configurable_item_options": [
          {
            "option_id": "93",
            "option_value": 49
          },
          {
            "option_id": "141",
            "option_value": 168
          }
        ]
      }
    },
    "extension_attributes": {}
  }
}

Now, this will save your configurable product in your cart.


4. Get & put Shipping Information.

http://magento-host/index.php/rest/V1/carts/mine/shipping-information
  • method : POST
  • Authorization : Bearer <customer token>
  • body data : json

{
    "addressInformation": {
        "shippingAddress": {
            "region": "MH",
            "region_id": 0,
            "country_id": "IN",
            "street": [
                "221,Baker-street (e)"
            ],
            "company": "Lumos",
            "telephone": "12345678",
            "postcode": "400001",
            "city": "Mumbai",
            "firstname": "Aditya",
            "lastname": "Shah",
            "email": "Aditya@Shah.com",
            "prefix": "address_",
            "region_code": "MH",
            "sameAsBilling": 1
        },
        "billingAddress": {
            "region": "MH",
            "region_id": 0,
            "country_id": "IN",
            "street": [
                "221,Baker-street (e)"
            ],
            "company": "Lumos",
            "telephone": "12345678",
            "postcode": "4000001",
            "city": "Mumbai",
            "firstname": "Aditya",
            "lastname": "Shah",
            "email": "Aditya@Shah.com",
            "prefix": "address_",
            "region_code": "MH"
        },
        "shipping_method_code": "flatrate",
        "shipping_carrier_code": "flatrate"
    }
}

5. Get payment method.

http://magento-host/index.php/rest/V1/carts/75/payment-methods
  • method : POST
  • Authorization : Bearer <customer token>

6. Place an order.

http://magento-host/index.php/rest/V1/carts/mine/order
  • method : POST
  • Authorization : Bearer <customer token>
  • body data : json

{
    "paymentMethod": {
        "method": "checkmo"
    }
}

And finally, this will return order ID, which you just placed!