Disclaimer: This website requires Please enable JavaScript in your browser settings for the best experience.

HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideLegal TermsGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Purchase orders

Describes how to work with RESTful operations for purchase orders in the Optimizely Service API.

Example models

public class PropertyItem
  {
    public string Key   { get; set;   }
    public string Value   { get; set;   }
  }

public class Discount
  {
    public int DiscountId   { get; set;   }
    public decimal DiscountAmount   { get; set;   }
    public string DiscountCode   { get; set;   }
    public string DiscountName   { get; set;   }
    public string DisplayMessage   { get; set;   }
    public decimal DiscountValue   { get; set;   }
  }

public class Shipment 
  {
    public Discount[] Discounts   { get; set;   }
    public int ShipmentId   { get; set;   }
    public Guid ShippingMethodId   { get; set;   }
    public string ShippingMethodName   { get; set;   }
    public decimal ShippingTax   { get; set;   }
    public string ShippingAddressId   { get; set;   }
    public string ShipmentTrackingNumber   { get; set;   }
    public decimal ShippingDiscountAmount   { get; set;   }
    public decimal ShippingSubTotal   { get; set;   }
    public decimal ShippingTotal   { get; set;   }
    public string Status   { get; set;   }
    public string PrevStatus   { get; set;   }
    public int? PickListId   { get; set;   }
    public decimal SubTotal   { get; set;   }
    public string WarehouseCode   { get; set;   }
    public LineItem[] LineItems   { get; set;   }
    public List<PropertyItem> Properties   { get; set;   }
  }

public class OrderForm 
  {
    public Shipment[] Shipments   { get; set;   }
    public LineItem[] LineItems   { get; set;   }
    public Discount[] Discounts   { get; set;   }
    public string ReturnComment   { get; set;   }
    public string ReturnType   { get; set;   }
    public string ReturnAuthCode   { get; set;   }
    public int OrderFormId   { get; set;   }
    public string Name   { get; set;   }
    public string BillingAddressId   { get; set;   }
    public decimal ShippingTotal   { get; set;   }
    public decimal HandlingTotal   { get; set;   }
    public decimal TaxTotal   { get; set;   }
    public decimal DiscountAmount   { get; set;   }
    public decimal SubTotal   { get; set;   }
    public decimal Total   { get; set;   }
    public string Status   { get; set;   }
    public string RmaNumber   { get; set;   }
    public decimal AuthorizedPaymentTotal   { get; set;   }
    public decimal CapturedPaymentTotal   { get; set;   }
    public List<PropertyItem> Properties   { get; set;   }
  }

public class OrderNote
  {
    public int? OrderNoteId   { get; set;   }
    public DateTime Created   { get; set;   }
    public Guid CustomerId   { get; set;   }
    public string Detail   { get; set;   }
    public string Title   { get; set;   }
    public string Type   { get; set;   }
    public int? LineItemId   { get; set;   }
  }

    public class LineItem
  {
    public int LineItemId   { get; set;   }
    public string Code   { get; set;   }
    public string DisplayName   { get; set;   }
    public decimal PlacedPrice   { get; set;   }
    public decimal ExtendedPrice   { get; set;   }
    public decimal DiscountedPrice   { get; set;   }
    public decimal Quantity   { get; set;   }
    public decimal ReturnQuantity   { get; set;   }
    /*Values can be "Disabled" or "Enabled"*/
    public string InventoryTrackingStatus   { get; set;   }
    public bool IsInventoryAllocated   { get; set;   }
    public bool IsGift   { get; set;   }
  }

public class OrderAddress
  {
    public int OrderGroupAddressId   { get; set;   }
    public string Name   { get; set;   }
    public string FirstName   { get; set;   }
    public string LastName   { get; set;   }
    public string Organization   { get; set;   }
    public string Line1   { get; set;   }
    public string Line2   { get; set;   }
    public string City   { get; set;   }
    public string State   { get; set;   }
    public string CountryCode   { get; set;   }
    public string CountryName   { get; set;   }
    public string PostalCode   { get; set;   }
    public string RegionCode   { get; set;   }
    public string RegionName   { get; set;   }
    public string DaytimePhoneNumber   { get; set;   }
    public string EveningPhoneNumber   { get; set;   }
    public string FaxNumber   { get; set;   }
    public string Email   { get; set;   }
  }

public class PurchaseOrder
  {
    public string AddressId   { get; set;   }
    public Guid AffiliateId   { get; set;   }
    public string BillingCurrency   { get; set;   }
    public Guid CustomerId   { get; set;   }
    public string CustomerName   { get; set;   }
    public decimal HandlingTotal   { get; set;   }
    public Guid InstanceId   { get; set;   }
    public string MarketId   { get; set;   }
    public string Name   { get; set;   }
    public string OrderNumber   { get; set;   }
    public OrderAddress[] OrderAddresses   { get; set;   }
    public OrderForm[] OrderForms   { get; set;   }
    public int OrderGroupId   { get; set;   }
    public OrderNote[] OrderNotes   { get; set;   }
    public string Owner   { get; set;   }
    public string OwnerOrg   { get; set;   }
    public string ProviderId   { get; set;   }
    public decimal ShippingTotal   { get; set;   }
    public string Status   { get; set;   }
    public decimal SubTotal   { get; set;   }
    public decimal TaxTotal   { get; set;   }
    public decimal Total   { get; set;   }
    public DateTime Modified   { get; set;   }
    public DateTime Created   { get; set;   }
    public List<PropertyItem> Properties   { get; set;   }
  }

Get orders by ordergroupid

GETget/episerverapi/commerce/orders/{orderGroupId}Get orders by ordergroupid

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/orders/{ordergroupid}").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/orders/{ordergroupid}").Result.Content.ReadAsStringAsync().Result

Response

<?xml version="1.0" encoding="UTF-8"?>
<PurchaseOrder>
  <AddressId />
  <AffiliateId>00000000-0000-0000-0000-000000000000</AffiliateId>
  <BillingCurrency>USD</BillingCurrency>
  <CustomerId>d7ede6ff-8e35-4e0e-94d7-5e1a1ba8adae</CustomerId>
  <CustomerName>admin</CustomerName>
  <HandlingTotal>0.000000000</HandlingTotal>
  <InstanceId>b654e3ff-3b2f-4901-9295-57ed095b07f8</InstanceId>
  <MarketId>DEFAULT</MarketId>
  <Name>Default</Name>
  <OrderAddresses />
  <OrderForms>
    <OrderForm>
      <Shipments>
        <Shipment>
          <Discounts />
          <ShipmentId>2</ShipmentId>
          <ShippingMethodId>00000000-0000-0000-0000-000000000000</ShippingMethodId>
          <ShippingMethodName />
          <ShippingTax>0.000000000</ShippingTax>
          <ShippingAddressId />
          <ShipmentTrackingNumber />
          <ShippingDiscountAmount>0.000000000</ShippingDiscountAmount>
          <ShippingSubTotal>0.000000000</ShippingSubTotal>
          <ShippingTotal>0.000000000</ShippingTotal>
          <Status />
          <PrevStatus />
          <PickListId />
          <SubTotal>1000.000000000</SubTotal>
          <WarehouseCode />
          <LineItems>
            <LineItem>
              <LineItemId>2</LineItemId>
              <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
              <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
              <PlacedPrice>1000.000000000</PlacedPrice>
              <ExtendedPrice>1000.000000000</ExtendedPrice>
              <DiscountedPrice>1000.000000000</DiscountedPrice>
              <Quantity>1</Quantity>
              <ReturnQuantity>0.000000000</ReturnQuantity>
              <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
              <IsInventoryAllocated>false</IsInventoryAllocated>
              <IsGift>false</IsGift>
            </LineItem>
          </LineItems>
          <Properties>
            <PropertyItem>
              <Key>PrevStatus</Key>
            </PropertyItem>
          </Properties>
        </Shipment>
      </Shipments>
      <LineItems>
        <LineItem>
          <LineItemId>2</LineItemId>
          <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
          <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
          <PlacedPrice>1000.000000000</PlacedPrice>
          <ExtendedPrice>1000.000000000000000000</ExtendedPrice>
          <DiscountedPrice>1000.000000000000000000</DiscountedPrice>
          <Quantity>1.000000000</Quantity>
          <ReturnQuantity>0.000000000</ReturnQuantity>
          <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
          <IsInventoryAllocated>false</IsInventoryAllocated>
          <IsGift>false</IsGift>
        </LineItem>
      </LineItems>
      <Discounts />
      <ReturnComment />
      <ReturnType />
      <ReturnAuthCode />
      <OrderFormId>2</OrderFormId>
      <Name>Default</Name>
      <BillingAddressId />
      <ShippingTotal>0.000000000</ShippingTotal>
      <HandlingTotal>0.000000000</HandlingTotal>
      <TaxTotal>0.000000000</TaxTotal>
      <DiscountAmount>0.000000000</DiscountAmount>
      <SubTotal>1000.000000000</SubTotal>
      <Total>1000.000000000</Total>
      <Status />
      <RmaNumber />
      <AuthorizedPaymentTotal>0.000000000</AuthorizedPaymentTotal>
      <CapturedPaymentTotal>0.000000000</CapturedPaymentTotal>
      <Properties>
        <PropertyItem>
          <Key>Epi_CouponCodes</Key>
        </PropertyItem>
        <PropertyItem>
          <Key>RMANumber</Key>
        </PropertyItem>
      </Properties>
    </OrderForm>
  </OrderForms>
  <OrderGroupId>2</OrderGroupId>
  <OrderNotes />
  <Owner />
  <OwnerOrg />
  <ProviderId />
  <ShippingTotal>0.000000000</ShippingTotal>
  <Status />
  <SubTotal>1000.000000000</SubTotal>
  <TaxTotal>0.000000000</TaxTotal>
  <Total>1000.000000000</Total>
  <Modified>2017-09-08T08:47:40.977Z</Modified>
  <Created>2017-09-08T08:47:40.91Z</Created>
  <Properties />
</PurchaseOrder>

Get orders by customerid 

GETget/episerverapi/commerce/orders/{customerId}/allGet orders by customerid

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/orders/{customerId}/all").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);		
var result = client.GetAsync("/episerverapi/commerce/orders/{customerId}/all").Result.Content.ReadAsStringAsync().Result

Response

<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfPurchaseOrder>
  <PurchaseOrder>
    <AddressId />
    <AffiliateId>00000000-0000-0000-0000-000000000000</AffiliateId>
    <BillingCurrency>USD</BillingCurrency>
    <CustomerId>d7ede6ff-8e35-4e0e-94d7-5e1a1ba8adae</CustomerId>
    <CustomerName>admin</CustomerName>
    <HandlingTotal>0.000000000</HandlingTotal>
    <InstanceId>b654e3ff-3b2f-4901-9295-57ed095b07f8</InstanceId>
    <MarketId>DEFAULT</MarketId>
    <Name>Default</Name>
    <OrderAddresses />
    <OrderForms>
      <OrderForm>
        <Shipments>
          <Shipment>
            <Discounts />
            <ShipmentId>2</ShipmentId>
            <ShippingMethodId>00000000-0000-0000-0000-000000000000</ShippingMethodId>
            <ShippingMethodName />
            <ShippingTax>0.000000000</ShippingTax>
            <ShippingAddressId />
            <ShipmentTrackingNumber />
            <ShippingDiscountAmount>0.000000000</ShippingDiscountAmount>
            <ShippingSubTotal>0.000000000</ShippingSubTotal>
            <ShippingTotal>0.000000000</ShippingTotal>
            <Status />
            <PrevStatus />
            <PickListId />
            <SubTotal>1000.000000000</SubTotal>
            <WarehouseCode />
            <LineItems>
              <LineItem>
                <LineItemId>2</LineItemId>
                <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
                <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
                <PlacedPrice>1000.000000000</PlacedPrice>
                <ExtendedPrice>1000.000000000</ExtendedPrice>
                <DiscountedPrice>1000.000000000</DiscountedPrice>
                <Quantity>1</Quantity>
                <ReturnQuantity>0.000000000</ReturnQuantity>
                <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
                <IsInventoryAllocated>false</IsInventoryAllocated>
                <IsGift>false</IsGift>
              </LineItem>
            </LineItems>
            <Properties>
              <PropertyItem>
                <Key>PrevStatus</Key>
              </PropertyItem>
            </Properties>
          </Shipment>
        </Shipments>
        <LineItems>
          <LineItem>
            <LineItemId>2</LineItemId>
            <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
            <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
            <PlacedPrice>1000.000000000</PlacedPrice>
            <ExtendedPrice>1000.000000000000000000</ExtendedPrice>
            <DiscountedPrice>1000.000000000000000000</DiscountedPrice>
            <Quantity>1.000000000</Quantity>
            <ReturnQuantity>0.000000000</ReturnQuantity>
            <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
            <IsInventoryAllocated>false</IsInventoryAllocated>
            <IsGift>false</IsGift>
          </LineItem>
        </LineItems>
        <Discounts />
        <ReturnComment />
        <ReturnType />
        <ReturnAuthCode />
        <OrderFormId>2</OrderFormId>
        <Name>Default</Name>
        <BillingAddressId />
        <ShippingTotal>0.000000000</ShippingTotal>
        <HandlingTotal>0.000000000</HandlingTotal>
        <TaxTotal>0.000000000</TaxTotal>
        <DiscountAmount>0.000000000</DiscountAmount>
        <SubTotal>1000.000000000</SubTotal>
        <Total>1000.000000000</Total>
        <Status />
        <RmaNumber />
        <AuthorizedPaymentTotal>0.000000000</AuthorizedPaymentTotal>
        <CapturedPaymentTotal>0.000000000</CapturedPaymentTotal>
        <Properties>
          <PropertyItem>
            <Key>Epi_CouponCodes</Key>
          </PropertyItem>
          <PropertyItem>
            <Key>RMANumber</Key>
          </PropertyItem>
        </Properties>
      </OrderForm>
    </OrderForms>
    <OrderGroupId>2</OrderGroupId>
    <OrderNotes />
    <Owner />
    <OwnerOrg />
    <ProviderId />
    <ShippingTotal>0.000000000</ShippingTotal>
    <Status />
    <SubTotal>1000.000000000</SubTotal>
    <TaxTotal>0.000000000</TaxTotal>
    <Total>1000.000000000</Total>
    <Modified>2017-09-08T08:47:40.977Z</Modified>
    <Created>2017-09-08T08:47:40.91Z</Created>
    <Properties />
  </PurchaseOrder>
</ArrayOfPurchaseOrder>

Search orders 

GETget/episerverapi/commerce/orders/{start}/{maxCount}/allSearch orders
GETget/episerverapi/commerce/orders/search/{start}/{maxCount}Gets purchase orders with paging.

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/orders/search/{start}/{maxCount}").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/orders/search/{start}/{maxCount}").Result.Content.ReadAsStringAsync().Result

Response

<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfPurchaseOrder>
  <PurchaseOrder>
    <AddressId />
    <AffiliateId>00000000-0000-0000-0000-000000000000</AffiliateId>
    <BillingCurrency>USD</BillingCurrency>
    <CustomerId>d7ede6ff-8e35-4e0e-94d7-5e1a1ba8adae</CustomerId>
    <CustomerName>admin</CustomerName>
    <HandlingTotal>0.000000000</HandlingTotal>
    <InstanceId>b654e3ff-3b2f-4901-9295-57ed095b07f8</InstanceId>
    <MarketId>DEFAULT</MarketId>
    <Name>Default</Name>
    <OrderAddresses />
    <OrderForms>
      <OrderForm>
        <Shipments>
          <Shipment>
            <Discounts />
            <ShipmentId>2</ShipmentId>
            <ShippingMethodId>00000000-0000-0000-0000-000000000000</ShippingMethodId>
            <ShippingMethodName />
            <ShippingTax>0.000000000</ShippingTax>
            <ShippingAddressId />
            <ShipmentTrackingNumber />
            <ShippingDiscountAmount>0.000000000</ShippingDiscountAmount>
            <ShippingSubTotal>0.000000000</ShippingSubTotal>
            <ShippingTotal>0.000000000</ShippingTotal>
            <Status />
            <PrevStatus />
            <PickListId />
            <SubTotal>1000.000000000</SubTotal>
            <WarehouseCode />
            <LineItems>
              <LineItem>
                <LineItemId>2</LineItemId>
                <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
                <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
                <PlacedPrice>1000.000000000</PlacedPrice>
                <ExtendedPrice>1000.000000000</ExtendedPrice>
                <DiscountedPrice>1000.000000000</DiscountedPrice>
                <Quantity>1</Quantity>
                <ReturnQuantity>0.000000000</ReturnQuantity>
                <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
                <IsInventoryAllocated>false</IsInventoryAllocated>
                <IsGift>false</IsGift>
              </LineItem>
            </LineItems>
            <Properties>
              <PropertyItem>
                <Key>PrevStatus</Key>
              </PropertyItem>
            </Properties>
          </Shipment>
        </Shipments>
        <LineItems>
          <LineItem>
            <LineItemId>2</LineItemId>
            <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
            <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
            <PlacedPrice>1000.000000000</PlacedPrice>
            <ExtendedPrice>1000.000000000000000000</ExtendedPrice>
            <DiscountedPrice>1000.000000000000000000</DiscountedPrice>
            <Quantity>1.000000000</Quantity>
            <ReturnQuantity>0.000000000</ReturnQuantity>
            <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
            <IsInventoryAllocated>false</IsInventoryAllocated>
            <IsGift>false</IsGift>
          </LineItem>
        </LineItems>
        <Discounts />
        <ReturnComment />
        <ReturnType />
        <ReturnAuthCode />
        <OrderFormId>2</OrderFormId>
        <Name>Default</Name>
        <BillingAddressId />
        <ShippingTotal>0.000000000</ShippingTotal>
        <HandlingTotal>0.000000000</HandlingTotal>
        <TaxTotal>0.000000000</TaxTotal>
        <DiscountAmount>0.000000000</DiscountAmount>
        <SubTotal>1000.000000000</SubTotal>
        <Total>1000.000000000</Total>
        <Status />
        <RmaNumber />
        <AuthorizedPaymentTotal>0.000000000</AuthorizedPaymentTotal>
        <CapturedPaymentTotal>0.000000000</CapturedPaymentTotal>
        <Properties>
          <PropertyItem>
            <Key>Epi_CouponCodes</Key>
          </PropertyItem>
          <PropertyItem>
            <Key>RMANumber</Key>
          </PropertyItem>
        </Properties>
      </OrderForm>
    </OrderForms>
    <OrderGroupId>2</OrderGroupId>
    <OrderNotes />
    <Owner />
    <OwnerOrg />
    <ProviderId />
    <ShippingTotal>0.000000000</ShippingTotal>
    <Status />
    <SubTotal>1000.000000000</SubTotal>
    <TaxTotal>0.000000000</TaxTotal>
    <Total>1000.000000000</Total>
    <Modified>2017-09-08T08:47:40.977Z</Modified>
    <Created>2017-09-08T08:47:40.91Z</Created>
    <Properties />
  </PurchaseOrder>
</ArrayOfPurchaseOrder>

Orders can also be searched for using other criteria as decribed in the following.

Status

/episerverapi/commerce/orders/search/{start}/{maxCount}?Status={statusparams}.

📘

Note

Multiple statuses can be used.

Date

/episerverapi/commerce/orders/search/{start}/{maxCount}?modifiedFrom={modified date}

Shipment status

/episerverapi/commerce/orders/search/{start}/{maxCount}?OrderShipmentStatus={Shipment status}

Shipping method ID

/episerverapi/commerce/orders/search/{start}/{maxCount}?ShippingMethodId={Shipping method id}

Shipment status and shipping method ID

/episerverapi/commerce/orders/search/{start}/{maxCount}?OrderShipmentStatus={ShipmentStatus}&ShippingMethodId={ShippingMethodID}

Create order

POSTpost/episerverapi/commerce/ordersCreate order

JSON response type

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/orders", new StringContent(json, Encoding.UTF8, "application/json")).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);
var serializer = new XmlSerializer(typeof(PurchaseOrder));
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/orders",
  new StringContent(xml, Encoding.UTF8, "text/xml")).Result.Content.ReadAsStringAsync().Result

Response

<?xml version="1.0" encoding="UTF-8"?>
<PurchaseOrder>
  <AddressId />
  <AffiliateId>00000000-0000-0000-0000-000000000000</AffiliateId>
  <BillingCurrency>USD</BillingCurrency>
  <CustomerId>d7ede6ff-8e35-4e0e-94d7-5e1a1ba8adae</CustomerId>
  <CustomerName>admin</CustomerName>
  <HandlingTotal>0.000000000</HandlingTotal>
  <InstanceId>b654e3ff-3b2f-4901-9295-57ed095b07f8</InstanceId>
  <MarketId>DEFAULT</MarketId>
  <Name>Default</Name>
  <OrderAddresses />
  <OrderForms>
    <OrderForm>
      <Shipments>
        <Shipment>
          <Discounts />
          <ShipmentId>2</ShipmentId>
          <ShippingMethodId>00000000-0000-0000-0000-000000000000</ShippingMethodId>
          <ShippingMethodName />
          <ShippingTax>0.000000000</ShippingTax>
          <ShippingAddressId />
          <ShipmentTrackingNumber />
          <ShippingDiscountAmount>0.000000000</ShippingDiscountAmount>
          <ShippingSubTotal>0.000000000</ShippingSubTotal>
          <ShippingTotal>0.000000000</ShippingTotal>
          <Status />
          <PrevStatus />
          <PickListId />
          <SubTotal>1000.000000000</SubTotal>
          <WarehouseCode />
          <LineItems>
            <LineItem>
              <LineItemId>2</LineItemId>
              <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
              <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
              <PlacedPrice>1000.000000000</PlacedPrice>
              <ExtendedPrice>1000.000000000</ExtendedPrice>
              <DiscountedPrice>1000.000000000</DiscountedPrice>
              <Quantity>1</Quantity>
              <ReturnQuantity>0.000000000</ReturnQuantity>
              <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
              <IsInventoryAllocated>false</IsInventoryAllocated>
              <IsGift>false</IsGift>
            </LineItem>
          </LineItems>
          <Properties>
            <PropertyItem>
              <Key>PrevStatus</Key>
            </PropertyItem>
          </Properties>
        </Shipment>
      </Shipments>
      <LineItems>
        <LineItem>
          <LineItemId>2</LineItemId>
          <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
          <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
          <PlacedPrice>1000.000000000</PlacedPrice>
          <ExtendedPrice>1000.000000000000000000</ExtendedPrice>
          <DiscountedPrice>1000.000000000000000000</DiscountedPrice>
          <Quantity>1.000000000</Quantity>
          <ReturnQuantity>0.000000000</ReturnQuantity>
          <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
          <IsInventoryAllocated>false</IsInventoryAllocated>
          <IsGift>false</IsGift>
        </LineItem>
      </LineItems>
      <Discounts />
      <ReturnComment />
      <ReturnType />
      <ReturnAuthCode />
      <OrderFormId>2</OrderFormId>
      <Name>Default</Name>
      <BillingAddressId />
      <ShippingTotal>0.000000000</ShippingTotal>
      <HandlingTotal>0.000000000</HandlingTotal>
      <TaxTotal>0.000000000</TaxTotal>
      <DiscountAmount>0.000000000</DiscountAmount>
      <SubTotal>1000.000000000</SubTotal>
      <Total>1000.000000000</Total>
      <Status />
      <RmaNumber />
      <AuthorizedPaymentTotal>0.000000000</AuthorizedPaymentTotal>
      <CapturedPaymentTotal>0.000000000</CapturedPaymentTotal>
      <Properties>
        <PropertyItem>
          <Key>Epi_CouponCodes</Key>
        </PropertyItem>
        <PropertyItem>
          <Key>RMANumber</Key>
        </PropertyItem>
      </Properties>
    </OrderForm>
  </OrderForms>
  <OrderGroupId>2</OrderGroupId>
  <OrderNotes />
  <Owner />
  <OwnerOrg />
  <ProviderId />
  <ShippingTotal>0.000000000</ShippingTotal>
  <Status />
  <SubTotal>1000.000000000</SubTotal>
  <TaxTotal>0.000000000</TaxTotal>
  <Total>1000.000000000</Total>
  <Modified>2017-09-08T08:47:40.977Z</Modified>
  <Created>2017-09-08T08:47:40.91Z</Created>
  <Properties />
</PurchaseOrder>

Update order

PUTput/episerverapi/commerce/orders/{orderGroupId}Update order

JSON response type

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/orders/{orderGroupId}", new StringContent(json, Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync().Result

XML response types

var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
var serializer = new XmlSerializer(typeof(PurchaseOrder));
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/orders/{orderGroupId}",
  new StringContent(xml, Encoding.UTF8, "text/xml")).Result.Content.ReadAsStringAsync().Result

Response

200 No Content

Delete order

DELETEdelete/episerverapi/commerce/orders/{orderGroupId}Delete order

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/orders/{orderGroupId}").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/orders/{orderGroupId}").Result.Content.ReadAsStringAsync().Result

Response

<?xml version="1.0" encoding="UTF-8"?>
<PurchaseOrder>
  <AddressId />
  <AffiliateId>00000000-0000-0000-0000-000000000000</AffiliateId>
  <BillingCurrency>USD</BillingCurrency>
  <CustomerId>d7ede6ff-8e35-4e0e-94d7-5e1a1ba8adae</CustomerId>
  <CustomerName>admin</CustomerName>
  <HandlingTotal>0.000000000</HandlingTotal>
  <InstanceId>b654e3ff-3b2f-4901-9295-57ed095b07f8</InstanceId>
  <MarketId>DEFAULT</MarketId>
  <Name>Default</Name>
  <OrderAddresses />
  <OrderForms>
    <OrderForm>
      <Shipments>
        <Shipment>
          <Discounts />
          <ShipmentId>2</ShipmentId>
          <ShippingMethodId>00000000-0000-0000-0000-000000000000</ShippingMethodId>
          <ShippingMethodName />
          <ShippingTax>0.000000000</ShippingTax>
          <ShippingAddressId />
          <ShipmentTrackingNumber />
          <ShippingDiscountAmount>0.000000000</ShippingDiscountAmount>
          <ShippingSubTotal>0.000000000</ShippingSubTotal>
          <ShippingTotal>0.000000000</ShippingTotal>
          <Status />
          <PrevStatus />
          <PickListId />
          <SubTotal>1000.000000000</SubTotal>
          <WarehouseCode />
          <LineItems>
            <LineItem>
              <LineItemId>2</LineItemId>
              <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
              <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
              <PlacedPrice>1000.000000000</PlacedPrice>
              <ExtendedPrice>1000.000000000</ExtendedPrice>
              <DiscountedPrice>1000.000000000</DiscountedPrice>
              <Quantity>1</Quantity>
              <ReturnQuantity>0.000000000</ReturnQuantity>
              <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
              <IsInventoryAllocated>false</IsInventoryAllocated>
              <IsGift>false</IsGift>
            </LineItem>
          </LineItems>
          <Properties>
            <PropertyItem>
              <Key>PrevStatus</Key>
            </PropertyItem>
          </Properties>
        </Shipment>
      </Shipments>
      <LineItems>
        <LineItem>
          <LineItemId>2</LineItemId>
          <Code>Tops-Tunics-CowlNeck-Black-Small</Code>
          <DisplayName>Tops-Tunics-CowlNeck-Black-Small</DisplayName>
          <PlacedPrice>1000.000000000</PlacedPrice>
          <ExtendedPrice>1000.000000000000000000</ExtendedPrice>
          <DiscountedPrice>1000.000000000000000000</DiscountedPrice>
          <Quantity>1.000000000</Quantity>
          <ReturnQuantity>0.000000000</ReturnQuantity>
          <InventoryTrackingStatus>Enabled</InventoryTrackingStatus>
          <IsInventoryAllocated>false</IsInventoryAllocated>
          <IsGift>false</IsGift>
        </LineItem>
      </LineItems>
      <Discounts />
      <ReturnComment />
      <ReturnType />
      <ReturnAuthCode />
      <OrderFormId>2</OrderFormId>
      <Name>Default</Name>
      <BillingAddressId />
      <ShippingTotal>0.000000000</ShippingTotal>
      <HandlingTotal>0.000000000</HandlingTotal>
      <TaxTotal>0.000000000</TaxTotal>
      <DiscountAmount>0.000000000</DiscountAmount>
      <SubTotal>1000.000000000</SubTotal>
      <Total>1000.000000000</Total>
      <Status />
      <RmaNumber />
      <AuthorizedPaymentTotal>0.000000000</AuthorizedPaymentTotal>
      <CapturedPaymentTotal>0.000000000</CapturedPaymentTotal>
      <Properties>
        <PropertyItem>
          <Key>Epi_CouponCodes</Key>
        </PropertyItem>
        <PropertyItem>
          <Key>RMANumber</Key>
        </PropertyItem>
      </Properties>
    </OrderForm>
  </OrderForms>
  <OrderGroupId>2</OrderGroupId>
  <OrderNotes />
  <Owner />
  <OwnerOrg />
  <ProviderId />
  <ShippingTotal>0.000000000</ShippingTotal>
  <Status />
  <SubTotal>1000.000000000</SubTotal>
  <TaxTotal>0.000000000</TaxTotal>
  <Total>1000.000000000</Total>
  <Modified>2017-09-08T08:47:40.977Z</Modified>
  <Created>2017-09-08T08:47:40.91Z</Created>
  <Properties />
</PurchaseOrder>