Mohamed Abbas | Architect | Blogger | Trainer

Magento Guest Order API

How to Make a Guest Order in Magento 2 API

Magento 2 is a powerful and flexible eCommerce platform that offers numerous features for online stores. One of these features is the ability to place guest orders via the API. This functionality allows customers to make a purchase without having to create an account or sign in, which is important for improving the user experience and increasing conversion rates. In this blog, we will walk you through how to make a guest order using the Magento 2 API, covering the steps and necessary API calls.

1. Introduction to Guest Orders in Magento 2

Before diving into the technical details, let’s briefly explain what a “guest order” is. A guest order occurs when a customer purchases from your store without registering or logging into an account. This method is preferred by many customers who don’t want to go through the process of creating an account, which can sometimes lead to abandoned carts. Magento 2 provides a way to handle guest orders through its API, which means you can integrate this functionality into third-party applications, mobile apps, or custom front-end solutions.

2. Steps to Make a Guest Order Using the Magento 2 API

Step 1: Get Product Details by SKU

  Method: GET

  Endpoint: /rest/V1/products/{SKU}/

  Response: This will return the product details of the given Sku
Step 2: Create a Guest Cart

The first thing you need to do is create a cart for the guest user. This is done using the V1/carts/guest-carts/ endpoint.

  Method: GET

  Endpoint: /rest/V1/guest-carts/

  Response: This will return the product details of the given Sku

This cart_id will be used for adding items and completing the checkout.
Step 3: Add Products to the Guest Cart

Once you have the cart, the next step is to add products to the cart. You can use the /rest/V1/guest-carts/{cartId}/items endpoint to add items.

  Method: GET

  Endpoint: /rest/V1/products/{SKU}/

  Response: This will return the product details of the given Sku

This cart_id will be used for adding items and completing the checkout.

Request Body Example :

				
					{
  "cartItem": {
    "quote_id": "31HV8MrmLrVphbfCi1DrTCibJbS6P6",
    "sku": "001",
    "qty": 1
  }
}

				
			
Step 4: Set Shipping Method and Shipping Address

After adding items, the next step is to set the shipping Address and the Shipping Method for the guest. Use the following endpoints to set the details:

  Method: POST

  Endpoint: /rest/V1/guest-carts/{cartId}/shipping-information

  Response: Payload The request body will contain details like Shipping Address, Billing Address, shipping_method_code, shipping_carrier_code and etc.
  Request Body Example:
				
					{
  "addressInformation": {
    "shippingAddress": {
      "region": "Wien",
      "region_id": 95,
      "country_id": "AT",
      "street": [
        "Fillgradergasse 12-14/1a"
      ],
      "company": "ABC Ltd",
      "telephone": "1111111",
      "postcode": "1060",
      "city": "Vienna",
      "firstname": "Mohamed",
      "lastname": "Abbas",
      "email": "mohamed@gmail.com",
      "prefix": "address_",
      "region_code": "W",
      "sameAsBilling": 1
    },
    "billingAddress": {
      "region": "Wien",
      "region_id": 95,
      "country_id": "AT",
      "street": [
        "Fillgradergasse 12-14/1a"
      ],
      "company": "Abc LTD",
      "telephone": "1111111",
      "postcode": "1060",
      "city": "Vienna",
      "firstname": "Mohamed",
      "lastname": "Abbas",
      "email": "mohamed@gmail.com",
      "prefix": "address_",
      "region_code": "W"
    },
    "shipping_method_code": "flatrate",
    "shipping_carrier_code": "flatrate"
  }
}

				
			
Step 5: Placing Order

Now, you’ll place the order.

  Method: PUT

  Endpoint: /rest/V1/guest-carts/{cartId}/order

  Response: You’ll need to provide the payment method code, for example, “checkmo” (Check/Money Order).

Request Body Example

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

3. Handling Errors

Magento 2 API might return errors during the process, especially if required fields are missing or invalid data is provided. Make sure you handle the following common error types:

        Validation Errors: These occur when fields such as address or payment details are missing or incorrect.

        Server Errors: Check for server-side issues, such as issues with the database or connectivity.

Make sure to check the API documentation for the exact error codes and messages to troubleshoot effectively.

4. Conclusion

Integrating guest orders via the Magento 2 API allows you to provide a seamless shopping experience for customers who prefer not to create an account. By following the steps outlined in this blog, you can integrate this functionality into your store, helping improve conversions and overall user satisfaction. 


Always ensure that you have proper error handling in place and test your API integration thoroughly to ensure a smooth user experience.