ProductOptionsCreate Endpoint

Overview

Nearly every single store needs options for their products.  This endpoint allows you to create as many options as you need for products 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 some kind of idea what attributes that you want your product option to have before you create it.

ProductOptionsCreate

This REST API endpoint allows you to create a product option 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/productoptions

HTTP Method

POST

Parameters

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

Returns

If successful, this endpoint will return a OptionDTO 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);

// create a new instance of a product option
var option = new OptionDTO();

// populate the product type object with minimal information
option.Name = "Color";
option.OptionType = OptionTypesDTO.DropDownList;
option.Items.Add(new OptionItemDTO
{
    Name = "Red"
});
option.Items.Add(new OptionItemDTO
{
    Name = "White"
});
option.Items.Add(new OptionItemDTO
{
    Name = "Blue"
});
option.Settings.Add(new OptionSettingDTO
{
    Key = "ERPID",
    Value = "1234567890"
});

// call the API to create the new product option
ApiResponse<OptionDTO> response = proxy.ProductOptionsCreate(option);
// 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 = "productoptions";  
// get this from the store admin
var apiKey = "YOUR-API-KEY";

$(document).ready(function() {

    // create a new instance of a product option
    var option = {
        "Name": "Color",
        "OptionType": 100,
        "Items": [
            {
                "Name": "Red"
            },
            {
                "Name": "White"
            },
            {
                "Name": "Blue"
            }
        ],
        "Settings": [
            {
                "Key": "ERPID",
                "Value": "123456789"
            }
        ]
    };

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

});
{
   "Errors":[

   ],
   "Content":{
      "Bvin":"b57bf31e-32fa-4b8a-8348-93c582005617",
      "StoreId":1,
      "OptionType":100,
      "Name":"Color",
      "NameIsHidden":false,
      "IsVariant":false,
      "IsShared":false,
      "Settings":[
         {
            "Key":"ERPID",
            "Value":"1234567890"
         }
      ],
      "TextSettings":[

      ],
      "Items":[
         {
            "Bvin":"e7c0d354-4783-4cd0-8f8b-f385ef80beb5",
            "StoreId":1,
            "OptionBvin":"b57bf31e-32fa-4b8a-8348-93c582005617",
            "Name":"Red",
            "PriceAdjustment":0,
            "WeightAdjustment":0,
            "IsLabel":false,
            "SortOrder":1,
            "IsDefault":false
         },
         {
            "Bvin":"5175c9d5-f7a9-4306-8e4c-a828e5824834",
            "StoreId":1,
            "OptionBvin":"b57bf31e-32fa-4b8a-8348-93c582005617",
            "Name":"White",
            "PriceAdjustment":0,
            "WeightAdjustment":0,
            "IsLabel":false,
            "SortOrder":2,
            "IsDefault":false
         },
         {
            "Bvin":"7e5c1b33-335d-43be-82f9-0db8430db280",
            "StoreId":1,
            "OptionBvin":"b57bf31e-32fa-4b8a-8348-93c582005617",
            "Name":"Blue",
            "PriceAdjustment":0,
            "WeightAdjustment":0,
            "IsLabel":false,
            "SortOrder":3,
            "IsDefault":false
         }
      ]
   }
}
Have more questions? Submit a request

Need More Help?

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