Purchasing non-dues subscriptions
This article details the steps involved to invoice or pay for a non-dues subscription. The specific example in this article demonstrates how to purchase a Journal through the "Non-Member Subscriptions" billing cycle, which is configured in the iMIS Starter database.
Configuring iMIS for non-dues purchases
Before you can find a non-dues item to purchase, you must first configure iMIS to allow non-dues purchases:
- From Settings > Membership, select Enable non-dues subscription purchases and renewal.
- Create the billing cycle for the non-dues items. See Creating a non-dues billing cycle for details.
Outline
The following are the basic steps involved to invoice or pay for a non-dues subscription:
- Find or create a Cart for the user (optional - alternatively a ComboOrder can be created and posted to achieve the same result)
- Find the non-dues ItemSet by ItemCode
- (optional) Find the pricing for each item in the ItemSet
- Create an OrderLine containing the product details
- Update the pricing on the order
- (optional) Add or update the cart
- Add a payment
- Submit the Cart or ComboOrder
1. Find or create a Cart for the user
Finding a cart
There are two important properties to search with when finding an existing cart: UserId and UpdateBy. Each of these is a PartyId and usually they are the same value.
https://{{URL}}/api/Cart?UserId=23230&UpdatedBy=23230
Creating a cart
If no results are returned, you can create a new Cart object for the user which will look something like this:
{
"$type": "Asi.Soa.Commerce.DataContracts.CartData, Asi.Contracts",
"UserId": "23230",
"ComboOrder": {
"$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts"
},
"UpdateInformation": {
"$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
"CreatedBy": "23230",
"CreatedOn": "2020-11-06T15:31:08.6076002-06:00",
"UpdatedBy": "23230",
"UpdatedOn": "2020-11-06T15:31:08.6076002-06:00"
}
}
Post it to the Cart endpoint and you should get a result back similar to this which contains the generated CartId:
{
"$type": "Asi.Soa.Commerce.DataContracts.CartData, Asi.Contracts",
"CartId": "6a62978b-339c-4d53-8778-fd55cb9153d6",
"UserId": "23230",
"ComboOrder": {
"$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts"
},
"UpdateInformation": {
"$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
"CreatedBy": "23230",
"CreatedOn": "2020-11-06T15:31:08.6076002-06:00",
"UpdatedBy": "23230",
"UpdatedOn": "2020-11-06T15:31:08.6076002-06:00"
}
}
2. Find the non-dues ItemSet by ItemCode
The ItemCode should be the name of the billing cycle with spaces replaced as underscores.
https://{{URL}}/api/Item?ItemCode=Non-Member_Subscriptions
Here is an example response:
{
"$type": "Asi.Soa.Core.DataContracts.PagedResult`1[[Asi.Soa.Commerce.DataContracts.ItemData, Asi.Contracts]], Asi.Contracts",
"Items": {
"$type": "System.Collections.Generic.List`1[[Asi.Soa.Commerce.DataContracts.ItemData, Asi.Contracts]], mscorlib",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.Item.LegacyMembershipItemData, Asi.Contracts",
"Components": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentData, Asi.Contracts",
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.Item.LegacyMembershipItemData, Asi.Contracts",
"Components": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentData, Asi.Contracts",
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUB",
"Name": "SUB"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"Name": "Journal"
},
"ItemSetComponentId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"MaximumQuantity": {
"$type": "Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts",
"Amount": 1.0
}
}
]
},
"ItemSetType": 1,
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUBSCRIPTION",
"Name": "Subscription"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"Name": "Journals and Other Subscriptions"
},
"ItemSetComponentId": "NON-MEMBER_SUBSCRIPTIONS/SUB"
}
]
},
"ItemSetType": 1,
"Image": {
"$type": "Asi.Soa.Core.DataContracts.VirtualFileData, Asi.Contracts",
"ThumbnailVirtualPath": "",
"AlternateText": ""
},
"PublishingInformation": {
"$type": "Asi.Soa.Core.DataContracts.PublishingInformationData, Asi.Contracts",
"StartDate": null,
"ExpirationDate": null,
"Keywords": {
"$type": "System.Collections.ObjectModel.Collection`1[[System.String, mscorlib]], mscorlib",
"$values": []
},
"PublishingState": 0
},
"ItemFinancialInformation": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemFinancialInformationData, Asi.Contracts",
"FinancialEntity": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialEntityData, Asi.Contracts"
},
"TaxCategory": {
"$type": "Asi.Soa.Commerce.DataContracts.TaxCategorySummaryData, Asi.Contracts",
"Name": "Non-Taxable",
"TaxCategoryId": "Non-Taxable",
"Description": "Non-Taxable"
},
"ItemFinancialAccounts": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemFinancialAccountsData, Asi.Contracts",
"AccountsReceivable": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts"
},
"Income": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"Inventory": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"CostOfGoodsSold": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"InventoryAdjustments": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"DamagedGoods": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts"
},
"DeferredIncome": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
}
}
},
"AdditionalAttributes": {
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAXABLE"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "PST_TAXABLE"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAX_AUTHORITY"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAX_BY_LOCATION"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAXCATEGORY_CODE"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "WEBOPTION"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "IsBillingBaseItem",
"Value": {
"$type": "System.Boolean",
"$value": false
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "PayPriority",
"Value": {
"$type": "System.Int32",
"$value": 0
}
}
]
},
"PremiumInformation": {
"$type": "Asi.Soa.Commerce.DataContracts.PremiumInformationData, Asi.Contracts",
"RequiredGiftAmount": {
"$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"CurrencyCode": "USD",
"DecimalPositions": 2
},
"IsAmountDefined": true
}
},
"AllowOrderLineNote": false,
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUBSCRIPTION",
"Name": "Subscription"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS",
"ItemId": "SUBSCRIPTION-NON-MEMBER_SUBSCRIPTIONS",
"Name": "Non-Member Subscriptions"
}
]
},
"Offset": 0,
"Limit": 100,
"Count": 1,
"TotalCount": 1,
"NextPageLink": null,
"HasNext": false,
"NextOffset": 0
}
3. Find the pricing for each item in the ItemSet
If you need to display the price for each item to the user, you must request the price for each item within the item set. This is an example for finding the price of the Journal product (ItemId of "NON-MEMBER_SUBSCRIPTIONS/JOUR").
https://{{URL}}/api/PartyItemPrice?PartyId=23230&ItemId=NON-MEMBER_SUBSCRIPTIONS/JOUR
The result should look similar to this:
{
"$type": "Asi.Soa.Core.DataContracts.PagedResult`1[[Asi.Soa.Commerce.DataContracts.PartyItemPriceData, Asi.Contracts]], Asi.Contracts",
"Items": {
"$type": "System.Collections.Generic.List`1[[Asi.Soa.Commerce.DataContracts.PartyItemPriceData, Asi.Contracts]], mscorlib",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.PartyItemPriceData, Asi.Contracts",
"Party": {
"$type": "Asi.Soa.Membership.DataContracts.PartySummaryData, Asi.Contracts",
"CityName": "Austin",
"CountryName": "United States",
"CountrySubEntityName": "TX",
"Email": "[email protected]",
"Phone": "",
"PartyId": "23230",
"Id": "23230",
"Status": {
"$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
"PartyStatusId": "A",
"Name": "Active",
"Description": "Active"
},
"Name": "New User",
"Sort": "USER, NEW",
"IsMarkedForDelete": false
},
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUB",
"Name": "SUB"
},
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"Name": "Journal"
},
"SelectedPriceSheet": {
"$type": "Asi.Soa.Commerce.DataContracts.PriceSheetSummaryData, Asi.Contracts",
"Description": "Non-Member pricing",
"Name": "Standard",
"PriceSheetId": "Standard"
},
"SelectedPrice": {
"$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
"Amount": 95.00,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"CurrencyCode": "USD",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"StandardPriceSheet": {
"$type": "Asi.Soa.Commerce.DataContracts.PriceSheetSummaryData, Asi.Contracts",
"Description": "Non-Member pricing",
"Name": "Standard",
"PriceSheetId": "Standard"
},
"StandardPrice": {
"$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
"Amount": 95.00,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"CurrencyCode": "USD",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"DiscountPriceSheet": {
"$type": "Asi.Soa.Commerce.DataContracts.PriceSheetSummaryData, Asi.Contracts",
"Description": "Member pricing",
"Name": "Member",
"PriceSheetId": "Member"
},
"DiscountPrice": {
"$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
"Amount": 95.00,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"CurrencyCode": "USD",
"DecimalPositions": 2
},
"IsAmountDefined": true
}
}
]
},
"Offset": 0,
"Limit": 100,
"Count": 1,
"TotalCount": 1,
"NextPageLink": null,
"HasNext": false,
"NextOffset": 0
}
PartyItemPrice may return up to 3 different prices: SelectedPrice, StandardPrice and DiscountPrice. SelectedPrice is the price the user will pay. StandardPrice and DiscountPrice equate to non-member and member pricing. Whereas SelectedPrice will always show the lowest price available to the user given their member/non-member status as well as any special pricing that may come into play.
4. Create an OrderLine containing the product details
All membership and non-dues order lines need to be created with three layers of order lines which match the three layers of ItemSetData/ItemData within the billing cycle product (Billing cycle -> Item category -> Itemd). So the three layers of order lines in this example are:
- "ItemId": "SUBSCRIPTION-NON-MEMBER_SUBSCRIPTIONS"
- "ItemId": "NON-MEMBER_SUBSCRIPTIONS/SUB"
- "ItemId": "NON-MEMBER_SUBSCRIPTIONS/JOUR"
Optional:
- Set the SourceCode on the order (see "MYCODE" in the example below)
- Override the term dates to start the subscription on a certain date (see LineGroupTerms below where we set a start date of December 1, 2020)
Here is what that looks like when put these order lines into an order:
{
"Order": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderData, Asi.Contracts",
"Lines": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineData, Asi.Contracts",
"ChildOrderLines": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineData, Asi.Contracts",
"ChildOrderLines": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineData, Asi.Contracts",
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUB",
"Name": "SUB"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"Name": "Journal"
},
"QuantityOrdered": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib",
"Amount": 1.0
}
}
]
},
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.Item.LegacyMembershipItemData, Asi.Contracts",
"Components": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentData, Asi.Contracts",
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUB",
"Name": "SUB"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"Name": "Journal"
},
"ItemSetComponentId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"MaximumQuantity": {
"$type": "Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts",
"Amount": 1.0
}
}
]
},
"ItemSetType": 1,
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUBSCRIPTION",
"Name": "Subscription"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"Name": "Journals and Other Subscriptions"
},
"QuantityOrdered": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib",
"Amount": 1.0
}
}
]
},
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.Item.LegacyMembershipItemData, Asi.Contracts",
"Components": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentData, Asi.Contracts",
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.Item.LegacyMembershipItemData, Asi.Contracts",
"Components": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentData, Asi.Contracts",
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUB",
"Name": "SUB"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"Name": "Journal"
},
"ItemSetComponentId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"MaximumQuantity": {
"$type": "Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts",
"Amount": 1.0
}
}
]
},
"ItemSetType": 1,
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUBSCRIPTION",
"Name": "Subscription"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"Name": "Journals and Other Subscriptions"
},
"ItemSetComponentId": "NON-MEMBER_SUBSCRIPTIONS/SUB"
}
]
},
"ItemSetType": 1,
"Image": {
"$type": "Asi.Soa.Core.DataContracts.VirtualFileData, Asi.Contracts",
"ThumbnailVirtualPath": "",
"AlternateText": ""
},
"PublishingInformation": {
"$type": "Asi.Soa.Core.DataContracts.PublishingInformationData, Asi.Contracts",
"StartDate": null,
"ExpirationDate": null,
"Keywords": {
"$type": "System.Collections.ObjectModel.Collection`1[[System.String, mscorlib]], mscorlib",
"$values": []
},
"PublishingState": 0
},
"ItemFinancialInformation": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemFinancialInformationData, Asi.Contracts",
"FinancialEntity": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialEntityData, Asi.Contracts"
},
"TaxCategory": {
"$type": "Asi.Soa.Commerce.DataContracts.TaxCategorySummaryData, Asi.Contracts",
"Name": "Non-Taxable",
"TaxCategoryId": "Non-Taxable",
"Description": "Non-Taxable"
},
"ItemFinancialAccounts": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemFinancialAccountsData, Asi.Contracts",
"AccountsReceivable": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts"
},
"Income": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"Inventory": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"CostOfGoodsSold": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"InventoryAdjustments": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"DamagedGoods": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts"
},
"DeferredIncome": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
}
}
},
"AdditionalAttributes": {
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAXABLE"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "PST_TAXABLE"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAX_AUTHORITY"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAX_BY_LOCATION"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAXCATEGORY_CODE"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "WEBOPTION"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "IsBillingBaseItem",
"Value": {
"$type": "System.Boolean",
"$value": false
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "PayPriority",
"Value": {
"$type": "System.Int32",
"$value": 0
}
}
]
},
"PremiumInformation": {
"$type": "Asi.Soa.Commerce.DataContracts.PremiumInformationData, Asi.Contracts",
"RequiredGiftAmount": {
"$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"CurrencyCode": "USD",
"DecimalPositions": 2
},
"IsAmountDefined": true
}
},
"AllowOrderLineNote": false,
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUBSCRIPTION",
"Name": "Subscription"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS",
"ItemId": "SUBSCRIPTION-NON-MEMBER_SUBSCRIPTIONS",
"Name": "Non-Member Subscriptions"
},
"QuantityOrdered": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib",
"Amount": 1.0
},
"LineGroupTerms": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineGroupTermData, Asi.Contracts",
"GroupTermEffectiveDate": "2020-12-01T00:00:00",
"GroupTermLength": 12,
"IsTermDateOverridden": true
}
}
]
},
"SoldToCustomerParty": {
"$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
"PartyId": "23230"
},
"SourceCode": "MYCODE"
}
}
5. Update the pricing on the order
Use the Order endpoint to submit the Order portion of the ComboOrder as PricingUpdate request. This should return an updated OrderData with all pricing updated. Post to this endpoint:
https://{{URL}}/api/Order/_execute
With an object that looks like this (replace "{YourOrderHere}" with an object similar the above JSON):
{
"$type": "Asi.Soa.Commerce.DataContracts.OrderPriceUpdateRequest, Asi.Contracts",
"EntityTypeName": "Order",
"OperationName": "UpdatePricing",
"Order": {
{{YourOrderHere}}
}
}
6. Add or update the cart
Using the returned OrderData from the call above, replace the Cart.ComboOrder.Order and then update the cart. Post to the cart endpoint:
https://{{URL}}/api/Cart
An object that looks like this:
{
"$type": "Asi.Soa.Commerce.DataContracts.CartData, Asi.Contracts",
"UserId": "23230",
"ComboOrder": {
"$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts",
"Order": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderData, Asi.Contracts",
"BillToCustomerParty": {
"$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
"Party": {
"$type": "Asi.Soa.Membership.DataContracts.PersonData, Asi.Contracts",
"PersonName": {
"$type": "Asi.Soa.Membership.DataContracts.PersonNameData, Asi.Contracts",
"FirstName": "New",
"InformalName": "New",
"LastName": "User",
"FullName": "New User"
},
"Name": "New User",
"Sort": "User, New",
"AdditionalAttributes": {
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "CustomerTypeDescription",
"Value": "Regular Member"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "IsMemberRecord",
"Value": {
"$type": "System.Boolean",
"$value": true
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "CustomerTypeCode",
"Value": "M"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "IsMember",
"Value": {
"$type": "System.Boolean",
"$value": true
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "IsInactiveMember",
"Value": {
"$type": "System.Boolean",
"$value": false
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "AllowAdvanceRenewal",
"Value": {
"$type": "System.Boolean",
"$value": false
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "JoinDate",
"Value": "0001-01-01T00:00:00"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "PaidThruDate",
"Value": "0001-01-01T00:00:00"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "RenewedThruDate",
"Value": "0001-01-01T00:00:00"
}
]
},
"Addresses": {
"$type": "Asi.Soa.Membership.DataContracts.FullAddressDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
"AdditionalLines": {
"$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values": []
},
"Address": {
"$type": "Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
"AddressId": "13748"
},
"AddresseeText": "New User\r\n",
"AddressPurpose": "Address",
"CommunicationPreferences": {
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason": "default"
}
]
},
"FullAddressId": "13748",
"Salutation": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "main"
},
"Text": "New User"
},
"DisplayName": "New"
},
{
"$type": "Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
"AdditionalLines": {
"$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values": []
},
"Address": {
"$type": "Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
"AddressId": "13749",
"AddressLines": {
"$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values": [
"351 Some Street"
]
},
"CityName": "City",
"CountryCode": "US",
"CountryName": "United States",
"CountrySubEntityCode": "VA",
"CountrySubEntityName": "Virginia",
"FullAddress": "351 Some Street, VA 14365\rUNITED STATES",
"PostalCode": "14365"
},
"AddresseeText": "New User\r\n351 Some Street\rCity 4337b9b3-adf9-4, VA 14365\rUNITED STATES",
"AddressPurpose": "Home Address",
"CommunicationPreferences": {
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason": "mail"
},
{
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason": "bill"
},
{
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason": "ship"
}
]
},
"FullAddressId": "13749",
"Salutation": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "main"
},
"Text": "New User"
},
"DisplayName": "New"
}
]
},
"AlternateIds": {
"$type": "Asi.Soa.Core.DataContracts.AlternateIdDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Core.DataContracts.AlternateIdData, Asi.Contracts",
"Id": "23230",
"IdType": "Id"
}
]
},
"Emails": {
"$type": "Asi.Soa.Membership.DataContracts.EmailDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.EmailData, Asi.Contracts",
"Address": "[email protected]",
"EmailType": "_Primary",
"IsPrimary": true
}
]
},
"FinancialInformation": {
"$type": "Asi.Soa.Membership.DataContracts.FinancialInformationData, Asi.Contracts",
"GiftAidInformation": {
"$type": "Asi.Soa.Membership.DataContracts.GiftAidDeclarationDataCollection, Asi.Contracts",
"$values": []
}
},
"Phones": {
"$type": "Asi.Soa.Membership.DataContracts.PhoneDataCollection, Asi.Contracts",
"$values": []
},
"Salutations": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "FAMILY"
},
"Text": "New User"
},
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "FORMAL"
},
"Text": "New User"
},
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "HOUSEHOLD"
},
"Text": "The User Household"
},
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "INFORMAL"
},
"Text": "New"
},
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "LIST_AS"
},
"Text": "New User"
}
]
},
"SocialNetworks": {
"$type": "Asi.Soa.Membership.DataContracts.PartySocialNetworkDataCollection, Asi.Contracts",
"$values": []
},
"CommunicationTypePreferences": {
"$type": "Asi.Soa.Membership.DataContracts.PartyCommunicationTypePreferenceDataCollection, Asi.Contracts",
"$values": []
},
"UpdateInformation": {
"$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
"CreatedBy": "23230",
"CreatedOn": "2020-11-09T09:13:39.94",
"UpdatedBy": "23230",
"UpdatedOn": "2020-11-09T09:13:39.94"
},
"PartyId": "23230",
"Id": "23230",
"UniformId": "75ce00e9-104f-44ad-b718-ab251af91d61",
"Status": {
"$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
"PartyStatusId": "A",
"Name": "Active",
"Description": "Active"
}
},
"PartyId": "23230"
},
"OrderDiscount": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"LineDiscountTotal": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"Lines": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineData, Asi.Contracts",
"ChildOrderLines": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineData, Asi.Contracts",
"ChildOrderLines": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineData, Asi.Contracts",
"ExtendedAmount": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount": 95.000,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUB",
"Name": "SUB"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"Name": "Journal"
},
"QuantityBackordered": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib"
},
"QuantityOrdered": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib",
"Amount": 1.0
},
"QuantityShipped": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib",
"Amount": 1.0
},
"UnitPrice": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount":95.00,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"CurrencyCode": "USD",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"LineGroupTerms": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineGroupTermData, Asi.Contracts",
"GroupTermEffectiveDate": "2020-12-01T00:00:00",
"GroupTermLength": 12,
"IsTermDateOverridden": true
}
}
]
},
"ExtendedAmount": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount": 95.000,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.Item.LegacyMembershipItemData, Asi.Contracts",
"Components": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentData, Asi.Contracts",
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUB",
"Name": "SUB"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"Name": "Journal"
},
"ItemSetComponentId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"MaximumQuantity": {
"$type": "Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts",
"Amount": 1.0
}
}
]
},
"ItemSetType": 1,
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUBSCRIPTION",
"Name": "Subscription"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"Name": "Journals and Other Subscriptions"
},
"QuantityBackordered": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib"
},
"QuantityOrdered": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib",
"Amount": 1.0
},
"QuantityShipped": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib",
"Amount": 1.0
},
"UnitPrice": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount": 95.000,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"LineGroupTerms": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineGroupTermData, Asi.Contracts",
"GroupTermEffectiveDate": "2020-12-01T00:00:00",
"GroupTermLength": 12,
"IsTermDateOverridden": true
}
}
]
},
"ExtendedAmount": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount": 95.00,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.Item.LegacyMembershipItemData, Asi.Contracts",
"Components": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentData, Asi.Contracts",
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.Item.LegacyMembershipItemData, Asi.Contracts",
"Components": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.ItemSetComponentData, Asi.Contracts",
"Item": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUB",
"Name": "SUB"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"Name": "Journal"
},
"ItemSetComponentId": "NON-MEMBER_SUBSCRIPTIONS/JOUR",
"MaximumQuantity": {
"$type": "Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts",
"Amount": 1.0
}
}
]
},
"ItemSetType": 1,
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUBSCRIPTION",
"Name": "Subscription"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"ItemId": "NON-MEMBER_SUBSCRIPTIONS/SUB",
"Name": "Journals and Other Subscriptions"
},
"ItemSetComponentId": "NON-MEMBER_SUBSCRIPTIONS/SUB"
}
]
},
"ItemSetType": 1,
"Image": {
"$type": "Asi.Soa.Core.DataContracts.VirtualFileData, Asi.Contracts",
"ThumbnailVirtualPath": "",
"AlternateText": ""
},
"PublishingInformation": {
"$type": "Asi.Soa.Core.DataContracts.PublishingInformationData, Asi.Contracts",
"StartDate": null,
"ExpirationDate": null,
"Keywords": {
"$type": "System.Collections.ObjectModel.Collection`1[[System.String, mscorlib]], mscorlib",
"$values": []
},
"PublishingState": 0
},
"ItemFinancialInformation": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemFinancialInformationData, Asi.Contracts",
"FinancialEntity": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialEntityData, Asi.Contracts"
},
"TaxCategory": {
"$type": "Asi.Soa.Commerce.DataContracts.TaxCategorySummaryData, Asi.Contracts",
"Name": "Non-Taxable",
"TaxCategoryId": "Non-Taxable",
"Description": "Non-Taxable"
},
"ItemFinancialAccounts": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemFinancialAccountsData, Asi.Contracts",
"AccountsReceivable": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts"
},
"Income": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"Inventory": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"CostOfGoodsSold": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"InventoryAdjustments": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
},
"DamagedGoods": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts"
},
"DeferredIncome": {
"$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts",
"GLAccount": {
"$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts"
}
}
}
},
"AdditionalAttributes": {
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAXABLE"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "PST_TAXABLE"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAX_AUTHORITY"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAX_BY_LOCATION"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "TAXCATEGORY_CODE"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "WEBOPTION"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "IsBillingBaseItem",
"Value": {
"$type": "System.Boolean",
"$value": false
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "PayPriority",
"Value": {
"$type": "System.Int32",
"$value": 0
}
}
]
},
"PremiumInformation": {
"$type": "Asi.Soa.Commerce.DataContracts.PremiumInformationData, Asi.Contracts",
"RequiredGiftAmount": {
"$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"CurrencyCode": "USD",
"DecimalPositions": 2
},
"IsAmountDefined": true
}
},
"AllowOrderLineNote": false,
"Description": "",
"ItemClass": {
"$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
"ItemClassId": "SUBSCRIPTION",
"Name": "Subscription"
},
"ItemCode": "NON-MEMBER_SUBSCRIPTIONS",
"ItemId": "SUBSCRIPTION-NON-MEMBER_SUBSCRIPTIONS",
"Name": "Non-Member Subscriptions"
},
"QuantityBackordered": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib"
},
"QuantityOrdered": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib",
"Amount": 1.0
},
"QuantityShipped": {
"$type": "System.Nullable`1[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib",
"Amount": 1.0
},
"UnitPrice": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount": 95.000,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"BaseUnitPrice": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount": 95.000,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"Discount": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"LineGroupTerms": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderLineGroupTermData, Asi.Contracts",
"GroupTermEffectiveDate": "2020-12-01T00:00:00",
"GroupTermLength": 12,
"IsTermDateOverridden": true
}
}
]
},
"LineTotal": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount": 95.00,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"MiscellaneousChargesTotal": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"OrderDate": "2020-11-09T09:13:45.4154067Z",
"OrderTotal": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount": 95.00,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"ShippingTotal": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"SoldToCustomerParty": {
"$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
"Party": {
"$type": "Asi.Soa.Membership.DataContracts.PersonData, Asi.Contracts",
"PersonName": {
"$type": "Asi.Soa.Membership.DataContracts.PersonNameData, Asi.Contracts",
"FirstName": "New",
"InformalName": "New",
"LastName": "User",
"FullName": "New User"
},
"Name": "New User",
"Sort": "User, New",
"AdditionalAttributes": {
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "CustomerTypeDescription",
"Value": "Regular Member"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "IsMemberRecord",
"Value": {
"$type": "System.Boolean",
"$value": true
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "CustomerTypeCode",
"Value": "M"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "IsMember",
"Value": {
"$type": "System.Boolean",
"$value": true
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "IsInactiveMember",
"Value": {
"$type": "System.Boolean",
"$value": false
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "AllowAdvanceRenewal",
"Value": {
"$type": "System.Boolean",
"$value": false
}
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "JoinDate",
"Value": "0001-01-01T00:00:00"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "PaidThruDate",
"Value": "0001-01-01T00:00:00"
},
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "RenewedThruDate",
"Value": "0001-01-01T00:00:00"
}
]
},
"Addresses": {
"$type": "Asi.Soa.Membership.DataContracts.FullAddressDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
"AdditionalLines": {
"$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values": []
},
"Address": {
"$type": "Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
"AddressId": "13748"
},
"AddresseeText": "New User\r\n",
"AddressPurpose": "Address",
"CommunicationPreferences": {
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason": "default"
}
]
},
"FullAddressId": "13748",
"Salutation": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "main"
},
"Text": "New User"
},
"DisplayName": "New"
},
{
"$type": "Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
"AdditionalLines": {
"$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values": []
},
"Address": {
"$type": "Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
"AddressId": "13749",
"AddressLines": {
"$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values": [
"351 Dd69d62a-1ea0-45"
]
},
"CityName": "City 4337b9b3-adf9-4",
"CountryCode": "US",
"CountryName": "United States",
"CountrySubEntityCode": "VA",
"CountrySubEntityName": "Virginia",
"FullAddress": "351 Dd69d62a-1ea0-45\rCity 4337b9b3-adf9-4, VA 14365\rUNITED STATES",
"PostalCode": "14365"
},
"AddresseeText": "New User\r\n351 Some Street\rCity 4337b9b3-adf9-4, VA 14365\rUNITED STATES",
"AddressPurpose": "Home Address",
"CommunicationPreferences": {
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason": "mail"
},
{
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason": "bill"
},
{
"$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason": "ship"
}
]
},
"FullAddressId": "13749",
"Salutation": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "main"
},
"Text": "New User"
},
"DisplayName": "New"
}
]
},
"AlternateIds": {
"$type": "Asi.Soa.Core.DataContracts.AlternateIdDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Core.DataContracts.AlternateIdData, Asi.Contracts",
"Id": "23230",
"IdType": "Id"
}
]
},
"Emails": {
"$type": "Asi.Soa.Membership.DataContracts.EmailDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.EmailData, Asi.Contracts",
"Address": "[email protected]",
"EmailType": "_Primary",
"IsPrimary": true
}
]
},
"FinancialInformation": {
"$type": "Asi.Soa.Membership.DataContracts.FinancialInformationData, Asi.Contracts",
"GiftAidInformation": {
"$type": "Asi.Soa.Membership.DataContracts.GiftAidDeclarationDataCollection, Asi.Contracts",
"$values": []
}
},
"Phones": {
"$type": "Asi.Soa.Membership.DataContracts.PhoneDataCollection, Asi.Contracts",
"$values": []
},
"Salutations": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "FAMILY"
},
"Text": "New User"
},
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "FORMAL"
},
"Text": "New User"
},
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "HOUSEHOLD"
},
"Text": "The User Household"
},
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "INFORMAL"
},
"Text": "New"
},
{
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"IsOverridden": false,
"SalutationId": "23230",
"SalutationMethod": {
"$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId": "LIST_AS"
},
"Text": "New User"
}
]
},
"SocialNetworks": {
"$type": "Asi.Soa.Membership.DataContracts.PartySocialNetworkDataCollection, Asi.Contracts",
"$values": []
},
"CommunicationTypePreferences": {
"$type": "Asi.Soa.Membership.DataContracts.PartyCommunicationTypePreferenceDataCollection, Asi.Contracts",
"$values": []
},
"UpdateInformation": {
"$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
"CreatedBy": "23230",
"CreatedOn": "2020-11-09T09:13:39.94",
"UpdatedBy": "23230",
"UpdatedOn": "2020-11-09T09:13:39.94"
},
"PartyId": "23230",
"Id": "23230",
"UniformId": "75ce00e9-104f-44ad-b718-ab251af91d61",
"Status": {
"$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
"PartyStatusId": "A",
"Name": "Active",
"Description": "Active"
}
},
"PartyId": "23230"
},
"SourceCode": "MYCODE",
"AdditionalCharges": {
"$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeData, Asi.Contracts",
"AdditionalChargeId": "EventCredits",
"Description": "Credits",
"TotalAmount": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"Tax": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderTaxData, Asi.Contracts",
"Details": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailDataCollection, Asi.Contracts",
"$values": []
},
"TaxTotal": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"InclusiveTaxTotal": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
}
}
}
]
},
"TaxInformation": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderTaxInformationData, Asi.Contracts",
"InclusiveTaxTotal": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"TaxTotal": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"OrderTaxes": {
"$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDataCollection, Asi.Contracts",
"$values": []
}
},
"TotalBasePrice": {
"$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
"Amount": 95.00,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"AdditionalAttributes": {
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name": "OrderTotalExcludingCredits",
"Value": {
"$type": "System.Decimal",
"$value": 95.0
}
}
]
}
}
},
"UpdateInformation": {
"$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
"CreatedBy": "23230",
"CreatedOn": "2020-11-09T09:13:42.5494459-06:00",
"UpdatedBy": "23230",
"UpdatedOn": "2020-11-09T09:13:42.5494459-06:00"
}
}
7. Add a payment
From here, you can either add a payment or "Pay Later" information to the ComboOrder.Payments and then submit the cart. If you choose the "Pay Later" option, this will generate an open invoice for the user to come back and pay at a later date. Alternatively, you could just redirect to the iMIS Cart page and allow the user to check out.
Here is an example for PayLater (Replace "{YourOrderHere}" with an object similar one of the above JSON examples):
{
"$type": "Asi.Soa.Commerce.DataContracts.CartData, Asi.Contracts",
"UserId": "23230",
"ComboOrder": {
"$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts",
"Order": {{YourOrderHere}},
"Payments": {
"$type": "Asi.Soa.Commerce.DataContracts.RemittanceDataCollection, Asi.Contracts",
"$values": [
{
"$type": "Asi.Soa.Commerce.DataContracts.RemittanceData, Asi.Contracts",
"Amount": {
"$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
"Amount": 95.00,
"Currency": {
"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
"DecimalPositions": 2
},
"IsAmountDefined": true
},
"PaymentToken": {
"$type": "Asi.Soa.Commerce.DataContracts.AutoPayAccountData, Asi.Contracts",
"PaymentMethodIsReadOnly": false
},
"PaymentMethod": {
"$type": "Asi.Soa.Commerce.DataContracts.PaymentMethodData, Asi.Contracts",
"PaymentMethodId": "BillMe"
}
}
]
}
},
"UpdateInformation": {
"$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
"CreatedBy": "23230",
"CreatedOn": "2020-11-09T09:13:42.5494459-06:00",
"UpdatedBy": "23230",
"UpdatedOn": "2020-11-09T09:13:42.5494459-06:00"
}
}
8. Submit the cart
Post the cart to the following endpoint
https://{{URL}}/api/Cart
The request object should look a little like this (replace "{YourCartHere}" with an object similar one of the above JSON examples):
{
"$type": "Asi.Soa.Commerce.DataContracts.CartSubmissionRequest, Asi.Contracts",
"EntityTypeName": "Cart",
"OperationName": "Submit",
"Cart": {{YourCartHere}}
}
Alternatively, you could submit just the ComboOrder portion of the cart and then delete the cart.
To submit just the ComboOrder, post to the following endpoint:
https://{{URL}}/api/ComboOrder
Updated over 2 years ago