HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

Catalog entry prices

This topic describes how to work with RESTful operations for catalog entry prices in the Optimizely Service API.

Example models

[Serializable]
public class Price
  {
    public Price()
      {
        PriceValueId = null;
        PriceCode = "";
      }
    public long? PriceValueId { get; set; }
    public string CatalogEntryCode { get; set; }
    public string MarketId { get; set; }
    public string PriceTypeId { get; set; }
    public string PriceCode { get; set; }
    public DateTime ValidFrom { get; set; }
    public DateTime? ValidUntil { get; set; }
    public decimal MinQuantity { get; set; }
    public decimal UnitPrice { get; set; }
    public string CurrencyCode { get; set; }
  }

Get all entry prices

GET

get/episerverapi/commerce/entries/{entryCode}/prices

Get all entry prices

JSON response type

var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);        
var result = client.GetAsync("/episerverapi/commerce/entries/{entry code}/prices").Result.Content.ReadAsStringAsync().Result

XML response type

var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));       
var result = client.GetAsync("/episerverapi/commerce/entries/{entry code}/prices").Result.Content.ReadAsStringAsync().Result

Response

<ArrayOfPrice xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Price>
    <PriceValueId>246</PriceValueId>
    <CatalogEntryCode>Jackets-Peacoats-Hooded-Tan-Small</CatalogEntryCode>
    <MarketId>USACAN</MarketId>
    <PriceTypeId>AllCustomers</PriceTypeId>
    <PriceCode />
    <ValidFrom>2010-09-01T13:00:00Z</ValidFrom>
    <ValidUntil xsi:nil="true" />
    <MinQuantity>0.000000000</MinQuantity>
    <UnitPrice>1000.0000</UnitPrice>
    <CurrencyCode>USD</CurrencyCode>
  </Price>
  <Price>
    <PriceValueId>247</PriceValueId>
    <CatalogEntryCode>Jackets-Peacoats-Hooded-Tan-Small</CatalogEntryCode>
    <MarketId>SCANDINA</MarketId>
    <PriceTypeId>AllCustomers</PriceTypeId>
    <PriceCode />
    <ValidFrom>2010-09-01T13:00:00Z</ValidFrom>
    <ValidUntil xsi:nil="true" />
    <MinQuantity>0.000000000</MinQuantity>
    <UnitPrice>775.2000</UnitPrice>
    <CurrencyCode>EUR</CurrencyCode>
  </Price>
  <Price>
    <PriceValueId>248</PriceValueId>
    <CatalogEntryCode>Jackets-Peacoats-Hooded-Tan-Small</CatalogEntryCode>
    <MarketId>LATAMER</MarketId>
    <PriceTypeId>AllCustomers</PriceTypeId>
    <PriceCode />
    <ValidFrom>2010-09-01T13:00:00Z</ValidFrom>
    <ValidUntil xsi:nil="true" />
    <MinQuantity>0.000000000</MinQuantity>
    <UnitPrice>1000.0000</UnitPrice>
    <CurrencyCode>USD</CurrencyCode>
  </Price>
</ArrayOfPrice>

Get a specific entry price

GET

get/episerverapi/commerce/entries/{entryCode}/prices/{priceValueId}

Get a specific entry price

JSON response type

var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);        
var result = client.GetAsync("/episerverapi/commerce/entries/{entry code}/prices/{priceValueId}").Result.Content.ReadAsStringAsync().Result

XML response type

var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));       
var result = client.GetAsync("/episerverapi/commerce/entries/{entry code}/prices/{priceValueId}").Result.Content.ReadAsStringAsync().Result

Response

<Price xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <PriceValueId>250</PriceValueId>
  <CatalogEntryCode>Jackets-Peacoats-Hooded-Tan-Small</CatalogEntryCode>
  <MarketId>DEFAULT</MarketId>
  <PriceTypeId>AllCustomers</PriceTypeId>
  <PriceCode />
  <ValidFrom>2014-08-26T13:27:01.167Z</ValidFrom>
  <ValidUntil>2014-12-04T13:27:01.167Z</ValidUntil>
  <MinQuantity>0.000000000</MinQuantity>
  <UnitPrice>30.0000</UnitPrice>
  <CurrencyCode>USD</CurrencyCode>
</Price>

Create entry price

POST

post/episerverapi/commerce/entries/{entryCode}/prices

Create entry price

JSON response type

var model = new Price()
  {
    CatalogEntryCode = "Jackets-Peacoats-Hooded-Tan-Small",
    CurrencyCode = "USD",
    MarketId = "DEFAULT",
    MinQuantity = 0,
    PriceCode = "mark",
    PriceTypeId = "PriceGroup",
    UnitPrice = 30,
    ValidFrom = DateTime.UtcNow,
    ValidUntil = DateTime.UtcNow.AddDays(100)
  };
var json = JsonConvert.SerializeObject(model);
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);        
var result = client.PostAsync("/episerverapi/commerce/entries/{entry code}/prices",
  new StringContent(json, Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync().Result

XML response type

var model = new Price()
  {
    CatalogEntryCode = "Jackets-Peacoats-Hooded-Tan-Small",
    CurrencyCode = "USD",
    MarketId = "DEFAULT",
    MinQuantity = 0,
    PriceCode = "mark",
    PriceTypeId = "PriceGroup",
    UnitPrice = 30,
    ValidFrom = DateTime.UtcNow,
    ValidUntil = DateTime.UtcNow.AddDays(100)
  };
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
var serializer = new XmlSerializer(typeof(Price));
var xml = String.Empty;
using (var ms = new MemoryStream())
  {
    serializer.Serialize(ms, model);
    xml = Encoding.Default.GetString(ms.ToArray());
  } 
var result = client.PostAsync("/episerverapi/commerce/entries/{entry code}/prices",
  new StringContent(xml, Encoding.UTF8, "text/xml")).Result.Content.ReadAsStringAsync().Result

Response

<Price xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <PriceValueId>154401</PriceValueId>
  <CatalogEntryCode>Jackets-Peacoats-Hooded-Tan-Small</CatalogEntryCode>
  <MarketId>DEFAULT</MarketId>
  <PriceTypeId>PriceGroup</PriceTypeId>
  <PriceCode>mark</PriceCode>
  <ValidFrom>2014-08-26T13:52:19.4457295Z</ValidFrom>
  <ValidUntil>2014-12-04T13:52:19.4457295Z</ValidUntil>
  <MinQuantity>0</MinQuantity>
  <UnitPrice>30</UnitPrice>
  <CurrencyCode>USD</CurrencyCode>
</Price>

Update entry price

PUT

put/episerverapi/commerce/entries/{entryCode}/prices/{priceValueId}

Update entry price

PUT

put/episerverapi/commerce/entries/{entryCode}/prices

Updates the catalog entry prices.

JSON response type

var model = new Price()
  {
    CatalogEntryCode = "Jackets-Peacoats-Hooded-Tan-Small",
    CurrencyCode = "USD",
    MarketId = "DEFAULT",
    MinQuantity = 0,
    PriceCode = "",
    PriceTypeId = "AllCustomers",
    PriceValueId = 250,
    UnitPrice = 30,
    ValidFrom = DateTime.UtcNow,
    ValidUntil = DateTime.UtcNow.AddDays(100)
  };
var json = JsonConvert.SerializeObject(model);
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);        
var result = client.PutAsync("/episerverapi/commerce/entries/{entry code}/prices/{priceValueId}",
  new StringContent(json, Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync().Result

XML response type

var model = new Price()
  {
    CatalogEntryCode = "Jackets-Peacoats-Hooded-Tan-Small",
    CurrencyCode = "USD",
    MarketId = "DEFAULT",
    MinQuantity = 0,
    PriceCode = "",
    PriceTypeId = "AllCustomers",
    PriceValueId = 250,
    UnitPrice = 30,
    ValidFrom = DateTime.UtcNow,
    ValidUntil = DateTime.UtcNow.AddDays(100)
  };
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
var serializer = new XmlSerializer(typeof(Price));
var xml = String.Empty;
using (var ms = new MemoryStream())
  {
    serializer.Serialize(ms, model);
    xml = Encoding.Default.GetString(ms.ToArray());
  }     
var result = client.PutAsync("/episerverapi/commerce/entries/{entry code}/prices/{priceValueId}",
  new StringContent(xml, Encoding.UTF8, "text/xml")).Result.Content.ReadAsStringAsync().Result

Response

204 No Content

Delete entry price

DELETE

delete/episerverapi/commerce/entries/{entryCode}/prices/{priceValueId}

Delete entry price

JSON response type

var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);        
var result = client.DeleteAsync("/episerverapi/commerce/entries/{entry code}/prices/{priceValueId}").Result.Content.ReadAsStringAsync().Result

XML response type

var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));   
var result = client.DeleteAsync("/episerverapi/commerce/entries/{entry code}/prices/{priceValueId}").Result.Content.ReadAsStringAsync().Result

Response

<Price xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <PriceValueId>154401</PriceValueId>
  <CatalogEntryCode>Jackets-Peacoats-Hooded-Tan-Small</CatalogEntryCode>
  <MarketId>DEFAULT</MarketId>
  <PriceTypeId>PriceGroup</PriceTypeId>
  <PriceCode>mark</PriceCode>
  <ValidFrom>2014-08-26T13:52:19.4457295Z</ValidFrom>
  <ValidUntil>2014-12-04T13:52:19.4457295Z</ValidUntil>
  <MinQuantity>0</MinQuantity>
  <UnitPrice>30</UnitPrice>
  <CurrencyCode>USD</CurrencyCode>
</Price>

Special strings

These properties require special values to function properly.

PriceTypeId

  • PriceGroup
  • AllCustomers
  • UserName

Did this page help you?