CategoriesUpdate Endpoint

Overview

It wouldn't be unusual to need to update an existing category.  This endpoint allows you to update any specific category in your store.

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 one or more categories created so that you can successfully find one to update.

CategoriesUpdate

This REST API endpoint allows you to update a category in your store. This requires that you also have a category to update, which would mean that you should also call the CategoriesFind endpoint to get an existing category.

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/categories/[BVIN]

BVIN is the category ID as described in the parameters below.

HTTP Method

POST

Parameters

Parameter Description
bvin This is the unique ID of the category that you wish to update
data You will need to pass an updated JSON version of the CategoryDTO object in your post request

Returns

If successful, this endpoint will return a populated CategoryDTO object in JSON format.  Otherwise, you should 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 a category to update
// the ID (bvin) of the category we are looking for
var categoryID = "da66d19c-cc4a-4406-96a4-b9fa977a3fd2";

// find the category in the store to update
var category = proxy.CategoriesFind(categoryID).Content;
            
// update any properties you want in the category
category.Name = "Awesome Products";
category.MetaKeywords = "awesome, best, life changing";
category.LastUpdatedUtc = DateTime.UtcNow;

// add the category to the store
ApiResponse<CategoryDTO> response = proxy.CategoriesUpdate(category);
// 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 = "categories";  
// get this from the store admin
var apiKey = "YOUR-API-KEY";

$(document).ready(function() {

    // specify the category ID to update
    var categoryId = "da66d19c-cc4a-4406-96a4-b9fa977a3fd2";

    // get an instance of the category from the REST API
    $.ajax({
        dataType: "json",
        url: url + apiPath + endPoint + "/" + categoryId + "?key=" + apiKey,
        type: 'GET',
        success: function (data) {
            // update the category in another method
            UpdateCategory(data.Content);
        },
        error: function (jqXHR, textStatus) {
            // do something
        }
    });

});

function UpdateCategory(category) {

    // update any properties you want in the category
    category.Name = "Awesome Products";
    category.MetaKeywords = "awesome, best, life changing";

    // update the last updated date to prevent JS errors and for accuracy in auditing
    var date = new Date();
    category.LastUpdatedUtc = date.toISOString();

    // update the category
    $.ajax({
        dataType: "json",
        url: url + apiPath + endPoint + "/" + category.Bvin + "?key=" + apiKey,
        data: JSON.stringify(category),
        type: 'POST',
        success: function (data) {
            // do something
        },
        error: function (jqXHR, textStatus) {
            // do something else
        }
    });

}
{
   "Errors":[

   ],
   "Content":{
      "Bvin":"da66d19c-cc4a-4406-96a4-b9fa977a3fd2",
      "LastUpdatedUtc":"/Date(1396048332367)/",
      "StoreId":1,
      "ParentId":"",
      "Name":"Awesome Products",
      "Description":"This is a sample category",
      "DisplaySortOrder":1,
      "SourceType":0,
      "SortOrder":2,
      "MetaKeywords":"awesome, best, life changing",
      "MetaDescription":"This is a sample category",
      "MetaTitle":"Sample Products",
      "ImageUrl":"",
      "BannerImageUrl":"",
      "CustomPageUrl":"",
      "CustomPageOpenInNewWindow":false,
      "ShowInTopMenu":false,
      "Hidden":false,
      "TemplateName":"Grid",
      "PreContentColumnId":"",
      "PostContentColumnId":"",
      "ShowTitle":true,
      "Keywords":"Sample Products",
      "RewriteUrl":"sample-products",
      "Operations":[

      ]
   }
}
Have more questions? Submit a request

Need More Help?

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