ProductReviewsCreate Endpoint

Overview

Nearly every single store can benefit from having their customers review products in their catalog.  This endpoint allows you to create as many product reviews as necessary.

Requirements

The following pre-requisites will be necessary to accomplish the goals of this article:

  • General understanding of REST and API’s
  • Understanding of C# and/or JavaScript
  • Visual Studio 2012 or newer

Getting Started

You should already have a project open and ready to accept code to allow you to use this REST API endpoint.  You should also have some kind of idea what attributes that you want your product review to have before you create it.

ProductReviewsCreate

This REST API endpoint allows you to create a product review for your store. 

Example URL

This is what the REST endpoint will look like if you are calling it using JavaScript.  See our REST API URL documentation for more information.

http://example.com/DesktopModules/Hotcakes/API/rest/v1/productreviews

HTTP Method

POST

Parameters

This method only requires that you pass an instance of the ProductReviewDTO object to the endpoint.

Returns

If successful, this endpoint will return a ProductReviewDTO object in JSON format.  Otherwise, you will have one or more errors returned.

Example Code

The following code will allow you to successfully call this endpoint, provided that you have enabled it.

Project References

  • Hotcakes.CommerceDTO

Import Namespaces

  • Hotcakes.CommerceDTO.v1
  • Hotcakes.CommerceDTO.v1.Catalog
  • Hotcakes.CommerceDTO.v1.Client

 

string url = "http://example.com";
string key = "YOUR-API-KEY";

Api proxy = new Api(url, key);

// get an instance of a product to review
var product = proxy.ProductsFindBySku("SAMPLE004").Content;

// create a new product review object
var review = new ProductReviewDTO()
{
    ProductBvin = product.Bvin,
    UserID = "2",
    Rating = ProductReviewRatingDTO.FourStars,
    Description = "I love my brand new fedora. I just wish that the headband was a bit more comfortable."
};

// call the API to create the new product review
ApiResponse<ProductReviewDTO> response = proxy.ProductReviewsCreate(review);
// your domain name
var url = "http://example.com"; 
// the path where the API is
var apiPath = "/DesktopModules/Hotcakes/API/rest/v1/";  
// endpoint as shown in the documentation
var endPoint = "productreviews";  
// get this from the store admin
var apiKey = "YOUR-API-KEY";

$(document).ready(function() {

    // begin the product review logic
    ReviewProduct("SAMPLE004");

});

function SaveProductReview(product) {

    // create a new product review object
    var review = {
        "ProductBvin": product.Bvin,
        "UserID": "2",
        "Rating": 4,
        "Description": "I love my brand new fedora. I just wish that the headband was a bit more comfortable."
    };

    // call the API to create the new product review
    $.ajax({
        dataType: "json",
        url: url + apiPath + endPoint + "?key=" + apiKey,
        data: JSON.stringify(review),
        type: 'POST',
        success: function (data) {
            // do something
        },
        error: function (jqXHR, textStatus) {
            // do something else
        }
    });

}

function ReviewProduct(productSku) {
            
    // call the API to get the product to review
    $.ajax({
        dataType: "json",
        url: url + apiPath + "products/ANY?key=" + apiKey + "&bysku=" + productSku,
        type: 'GET',
        success: function (data) {
            // create and save the review for the product
            SaveProductReview(data.Content);
        },
        error: function (jqXHR, textStatus) {
            // do something
        }
    });
}
{
   "Errors":[

   ],
   "Content":{
      "Bvin":"027badec-23c5-46bc-bc06-6f815b8692a7",
      "UserID":"2",
      "ProductBvin":"dfcae0ee-8bcf-4321-8b31-7883b5434285",
      "ReviewDateUtc":"\/Date(1403111220426)\/",
      "Rating":4,
      "Karma":0,
      "Description":"I love my brand new fedora. I just wish that the headband was a bit more comfortable.",
      "Approved":false,
      "ProductName":""
   }
}
Have more questions? Submit a request

Need More Help?

Do you need more assistance with this article? Please review your support options.