HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityDoc feedbackLog In

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>

What’s Next