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:

  1. From Settings > Membership, select Enable non-dues subscription purchases and renewal.
  2. 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:

  1. Find or create a Cart for the user (optional - alternatively a ComboOrder can be created and posted to achieve the same result)
  2. Find the non-dues ItemSet by ItemCode
  3. (optional) Find the pricing for each item in the ItemSet
  4. Create an OrderLine containing the product details
  5. Update the pricing on the order
  6. (optional) Add or update the cart
  7. Add a payment
  8. 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

More

Helpful subscription resources: