AffiliatesUpdate Endpoint

Overview

It wouldn't be unusual to need to update an existing affiliate.  This end point allows you to update any specific affiliate 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 end point.  You should also have one or more affiliates created so that you can successfully find one to update.

AffiliatesUpdate

This REST API end point allows you to update an affiliate in your store. This requires that you also have an affiliate to update, which would mean that you should also call the AffiliatesFind end point to get an existing affiliate.

Example URL

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

http://yourdomain.com/DesktopModules/Hotcakes/API/rest/v1/affiliates/[ID]

ID is the affiliate ID as described in the parameters below.

HTTP Method

POST

Parameters

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

Returns

If successful, this end point will return a populated AffiliateDTO 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 end point, provided that you have enabled it.

Project References

  • Hotcakes.CommerceDTO

Import Namespaces

  • Hotcakes.CommerceDTO.v1
  • Hotcakes.CommerceDTO.v1.Client
  • Hotcakes.CommerceDTO.v1.Contacts

 

string url = "http://YOURDOMAIN.COM";
string key = "YOUR-API-KEY";

Api proxy = new Api(url, key);

// specify an affiliate to update
var affiliateID = 246;

// get a matching affiliate from the REST API to update
var affiliate = proxy.AffiliatesFind(affiliateID).Content;

// update one or more properties of the affiliate
affiliate.Enabled = true;

// call the API to update the affiliate
ApiResponse<AffiliateDTO> response = proxy.AffiliatesUpdate(affiliate);
// your domain name
var url = "http://YOURDOMAIN.COM"; 
// the path where the API is
var apiPath = "/DesktopModules/Hotcakes/API/rest/v1/";  
// endpoint as shown in the documentation
var endPoint = "affiliates";  
// get this from the store admin
var apiKey = "YOUR-API-KEY";

$(document).ready(function() {

    // specify an affiliate to update
    var affiliateID = 246;

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

});

function UpdateAffiliate(affiliate) {

    // change any attributes of the affiliate object
    affiliate.Enabled = false;

    // replace date properties with UTC-friendly dates to prevent errors
    affiliate.LastUpdatedUtc = new Date().toISOString();
    affiliate.Address.LastUpdatedUtc = ParseDateForSave(affiliate.Address.LastUpdatedUtc);

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

}

function ParseDateForSave(dateValue) {
    // create a new date object in UTC format
    var newDate = new Date(parseInt(dateValue.substr(6)));

    // return the UTC version of the date
    return newDate.toISOString();
}
{
   "Errors":[

   ],
   "Content":{
      "Id":246,
      "StoreId":1,
      "LastUpdatedUtc":"/Date(1397348594112)/",
      "Enabled":false,
      "ReferralId":"Acme-Inc",
      "DisplayName":"NewAffiliate51",
      "Address":{
         "Bvin":null,
         "LastUpdatedUtc":"/Date(1397348594037)/",
         "StoreId":0,
         "NickName":"",
         "FirstName":"",
         "MiddleInitial":"",
         "LastName":"",
         "Company":"",
         "Line1":"",
         "Line2":"",
         "Line3":"",
         "City":"",
         "RegionName":"",
         "RegionBvin":"",
         "PostalCode":"",
         "CountryName":"United States",
         "CountryBvin":"bf7389a2-9b21-4d33-b276-23c9c18ea0c0",
         "Phone":"",
         "Fax":"",
         "WebSiteUrl":"",
         "UserBvin":"",
         "AddressType":0
      },
      "CommissionAmount":0,
      "CommissionType":1,
      "ReferralDays":30,
      "TaxId":"COFQ3898AAD",
      "DriversLicenseNumber":"",
      "WebSiteUrl":"",
      "CustomThemeName":"",
      "Notes":"",
      "Contacts":[

      ]
   }
}
Have more questions? Submit a request

Need More Help?

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