Overriding shipping and handling for commerce orders

As of 20.3.165 you may override the auto-calculated shipping and handling values for commerce orders via the API using the booleans IsShippingOverridden and IsHandlingOverridden.

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=23296&UpdatedBy=23296

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": "23296",
  	"ComboOrder": {
    	"$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts",
  	},
  	"UpdateInformation": {
    	"$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
    	"CreatedBy": "23296",
    	"CreatedOn": "2023-10-18T21:06:59.157",
    	"UpdatedBy": "23296",
    	"UpdatedOn": "2023-10-18T21:07:03.92"
  	}
}

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":
  	"UserId": "23296",
  	"ComboOrder": {
    	"$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts",
  	},
  	"UpdateInformation": {
    	"$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
    	"CreatedBy": "23296",
    	"CreatedOn": "2023-10-18T21:06:59.157",
    	"UpdatedBy": "23296",
    	"UpdatedOn": "2023-10-18T21:07:03.92"
  	}
}

2. Add products to the cart

You can then add products to the cart which will look like this:

{
    "$type": "Asi.Soa.Commerce.DataContracts.CartData, Asi.Contracts",
    "CartId": "78cbd9dd-8dfd-44f3-9667-912af94cb941",
    "UserId": "23296",
    "ComboOrder": {
      "$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts",
      "Currency": {
        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
        "CurrencyCode": "USD",
        "DecimalPositions": 2
      },
      "Order": {
        "$type": "Asi.Soa.Commerce.DataContracts.OrderData, Asi.Contracts",
        "BillToCustomerParty": {
          "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
          "PartyId": "23296"
        },
        "Currency": {
          "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
          "CurrencyCode": "USD",
          "DecimalPositions": 2
        },
        "Delivery": {
          "$type": "Asi.Soa.Commerce.DataContracts.DeliveryDataCollection, Asi.Contracts",
          "$values": [
            {
              "$type": "Asi.Soa.Commerce.DataContracts.DeliveryData, Asi.Contracts",
              "Address": {
                "$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": "13778",
                  "AddressLines": {
                    "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
                    "$values": [
                      "9600 Great Hills Trl",
                      "Ste 150W"
                    ]
                  },
                  "CityName": "Austin",
                  "CountryCode": "US",
                  "CountryName": "United States",
                  "CountrySubEntityCode": "TX",
                  "CountrySubEntityName": "Texas",
                  "CountyName": "Travis",
                  "DeliveryPointCode": "43",
                  "FullAddress": "9600 Great Hills Trl\rSte 150W\rAustin, TX  78759-6303\rUNITED STATES",
                  "PostalCode": "78759-6303",
                  "VerifiedOn": "2023-10-18T16:16:17"
                },
                "AddresseeText": "ShippingOverride Tester\r\n9600 Great Hills Trl\rSte 150W\rAustin, TX  78759-6303\rUNITED STATES",
                "AddressPurpose": "Home Address",
                "CommunicationPreferences": {
                  "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
                  "$values": []
                },
                "FullAddressId": "13778",
                "Salutation": {
                  "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                  "SalutationMethod": {
                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                    "PartySalutationMethodId": "main"
                  },
                  "Text": "ShippingOverride Tester"
                },
                "DisplayName": "ShippingOverride"
              },
              "AddressId": "13778",
              "CustomerParty": {
                "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
                "PartyId": "23296"
              },
              "DeliveryId": "1d2de52d-8cda-4501-8cc9-22b93655dd87",
              "DeliveryMethod": {
                "$type": "Asi.Soa.Commerce.DataContracts.DeliveryMethodData, Asi.Contracts",
                "Name": "United Parcel Service",
                "DeliveryMethodId": "UPS"
              }
            }
          ]
        },
        "OrderDiscount": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "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",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "Lines": {
          "$type": "Asi.Soa.Commerce.DataContracts.OrderLineDataCollection, Asi.Contracts",
          "$values": [
            {
              "$type": "Asi.Soa.Commerce.DataContracts.OrderLineData, Asi.Contracts",
              "OrderLineId": "2083edd1-8f9e-466f-a0f4-002892a38a94",
              "AdditionalAttributes": {
                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
                "$values": [
                  {
                    "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                    "Name": "WebsiteEditUrl",
                    "Value": "https://tenant1.i10:443/imisMain10/iCore/Store/StoreLayouts/Item_Detail.aspx?iProductCode=FR011&Category=GIFTS&WebsiteKey=4243d9e2-e91e-468c-97c2-2046d70c1e1a"
                  },
                  {
                    "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                    "Name": "UpdatedOn",
                    "Value": {
                      "$type": "System.Int64",
                      "$value": 638332420188595858
                    }
                  }
                ]
              },
              "ExtendedAmount": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Amount": 9.99,
                "Currency": {
                  "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                  "CurrencyCode": "USD",
                  "DecimalPositions": 2
                },
                "IsAmountDefined": true
              },
              "Item": {
                "$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
                "ItemClass": {
                  "$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
                  "ItemClassId": "SALES-GIFTS"
                },
                "ItemCode": "FR011",
                "ItemId": "FR011",
                "Name": "Keychain with Built-in LED Flashlight"
              },
              "LineNumber": 1,
              "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
              },
              "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",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                  },
                  "IsAmountDefined": true
                },
                "TaxableAmountTotal": {
                  "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                  "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "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",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                  },
                  "IsAmountDefined": true
                },
                "TaxSchedule": {
                  "$type": "Asi.Soa.Commerce.DataContracts.TaxScheduleSummaryData, Asi.Contracts",
                  "Name": ""
                },
                "TaxCategory": {
                  "$type": "Asi.Soa.Commerce.DataContracts.TaxCategorySummaryData, Asi.Contracts"
                }
              },
              "UnitPrice": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Amount": 9.99,
                "Currency": {
                  "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                  "CurrencyCode": "USD",
                  "DecimalPositions": 2
                },
                "IsAmountDefined": true
              },
              "BaseUnitPrice": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Amount": 9.99,
                "Currency": {
                  "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                  "CurrencyCode": "USD",
                  "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",
                  "CurrencyCode": "USD",
                  "DecimalPositions": 2
                },
                "IsAmountDefined": true
              },
              "DiscountCode": "",
              "CanCombine": true,
              "SourceCode": ""
            }
          ]
        },
        "LineTotal": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 9.99,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "MiscellaneousChargesTotal": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 2.00,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "OrderDate": "2023-10-18T16:06:58.9084267Z",
        "OrderTotal": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 13.61,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "OriginatorCustomerParty": {
          "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
          "PartyId": "23296"
        },
        "ShippingTotal": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 1.00,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "SoldToCustomerParty": {
          "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
          "PartyId": "23296"
        },
        "SourceCode": "",
        "AdditionalCharges": {
          "$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeDataCollection, Asi.Contracts",
          "$values": [
            {
              "$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeData, Asi.Contracts",
              "AdditionalChargeId": "Freight",
              "Description": "Freight",
              "TotalAmount": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Amount": 1.00,
                "Currency": {
                  "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                  "CurrencyCode": "USD",
                  "DecimalPositions": 2
                },
                "IsAmountDefined": true
              },
              "Tax": {
                "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxData, Asi.Contracts",
                "Details": {
                  "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailDataCollection, Asi.Contracts",
                  "$values": [
                    {
                      "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailData, Asi.Contracts",
                      "TaxAmount": {
                        "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                        "Currency": {
                          "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                          "CurrencyCode": "USD",
                          "DecimalPositions": 2
                        },
                        "IsAmountDefined": true
                      },
                      "IsTaxInclusive": true,
                      "TaxAuthority": {
                        "$type": "Asi.Soa.Commerce.DataContracts.TaxAuthoritySummaryData, Asi.Contracts",
                        "Name": ""
                      }
                    }
                  ]
                },
                "TaxTotal": {
                  "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                  "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "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",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                  },
                  "IsAmountDefined": true
                }
              }
            },
            {
              "$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeData, Asi.Contracts",
              "AdditionalChargeId": "Handling",
              "Description": "Handling",
              "TotalAmount": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Amount": 2.00,
                "Currency": {
                  "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                  "CurrencyCode": "USD",
                  "DecimalPositions": 2
                },
                "IsAmountDefined": true
              },
              "Tax": {
                "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxData, Asi.Contracts",
                "Details": {
                  "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailDataCollection, Asi.Contracts",
                  "$values": [
                    {
                      "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailData, Asi.Contracts",
                      "TaxAmount": {
                        "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                        "Currency": {
                          "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                          "CurrencyCode": "USD",
                          "DecimalPositions": 2
                        },
                        "IsAmountDefined": true
                      },
                      "IsTaxInclusive": true,
                      "TaxAuthority": {
                        "$type": "Asi.Soa.Commerce.DataContracts.TaxAuthoritySummaryData, Asi.Contracts",
                        "Name": ""
                      }
                    }
                  ]
                },
                "TaxTotal": {
                  "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                  "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "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",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                  },
                  "IsAmountDefined": true
                }
              }
            },
            {
              "$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",
                  "CurrencyCode": "USD",
                  "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",
                    "CurrencyCode": "USD",
                    "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",
                    "CurrencyCode": "USD",
                    "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",
              "CurrencyCode": "USD",
              "DecimalPositions": 2
            },
            "IsAmountDefined": true
          },
          "TaxTotal": {
            "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
            "Amount": 0.62,
            "Currency": {
              "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
              "CurrencyCode": "USD",
              "DecimalPositions": 2
            },
            "IsAmountDefined": true
          },
          "OrderTaxes": {
            "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDataCollection, Asi.Contracts",
            "$values": [
              {
                "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxData, Asi.Contracts",
                "Details": {
                  "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailDataCollection, Asi.Contracts",
                  "$values": [
                    {
                      "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailData, Asi.Contracts",
                      "TaxAmount": {
                        "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                        "Amount": 0.62,
                        "Currency": {
                          "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                          "CurrencyCode": "USD",
                          "DecimalPositions": 2
                        },
                        "IsAmountDefined": true
                      },
                      "TaxAuthority": {
                        "$type": "Asi.Soa.Commerce.DataContracts.TaxAuthoritySummaryData, Asi.Contracts",
                        "Description": "Texas Sales Tax",
                        "Name": "TX",
                        "TaxAuthorityId": "TX",
                        "TaxAuthorityCode": "TX"
                      }
                    }
                  ]
                },
                "TaxTotal": {
                  "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                  "Amount": 0.62,
                  "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "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",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                  },
                  "IsAmountDefined": true
                },
                "TaxSchedule": {
                  "$type": "Asi.Soa.Commerce.DataContracts.TaxScheduleSummaryData, Asi.Contracts",
                  "TaxScheduleId": "TX",
                  "Name": "TX",
                  "Description": "Texas Sales Tax",
                  "ShowTaxDetails": false
                }
              }
            ]
          }
        },
        "TotalBasePrice": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 9.99,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "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": 13.61
              }
            }
          ]
        }
      },
      "Invoices": {
        "$type": "Asi.Soa.Commerce.DataContracts.InvoiceSummaryDataCollection, Asi.Contracts",
        "$values": []
      },
      "Payments": {
        "$type": "Asi.Soa.Commerce.DataContracts.RemittanceDataCollection, Asi.Contracts",
        "$values": [
          {
            "$type": "Asi.Soa.Commerce.DataContracts.RemittanceData, Asi.Contracts",
            "PaymentToken": {
              "$type": "Asi.Soa.Commerce.DataContracts.AutoPayAccountData, Asi.Contracts",
              "PaymentMethodIsReadOnly": false
            },
            "PayorParty": {
              "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
              "PartyId": "23296"
            }
          }
        ]
      }
    },
    "UpdateInformation": {
      "$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
      "CreatedBy": "23296",
      "CreatedOn": "2023-10-18T21:06:59.157",
      "UpdatedBy": "23296",
      "UpdatedOn": "2023-10-18T21:07:03.92"
    }
}

Shipping and handling have been automatically calculated by default. ShippingTotal shows the auto-calculated shipping charge, while MiscellaneousChargesTotal shows the auto-calculated handling charge. You'll note that the IsShippingOverridden and IsHandlingOverridden flags are not present by default.

3. Overriding the Shipping and Handling

You will need to add the following fields to the Asi.Soa.Commerce.DataContracts.OrderData object:

"IsShippingOverridden": true,
"IsHandlingOverridden": true,
"ManualShipping": {
  "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
  "Amount": 2.00,
  "Currency": {
    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
    "CurrencyCode": "USD",
    "DecimalPositions": 2
  },
  "IsAmountDefined": true
},
"ManualHandling": {
  "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
  "Amount": 3.00,
  "Currency": {
    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
    "CurrencyCode": "USD",
    "DecimalPositions": 2
  },
  "IsAmountDefined": true
}

ManualShipping.Amount and ManualHandling.Amount must be in decimal format.

A Note on Required Fields:

  • You do not need to override both Shipping and Handling simultaneously.
  • If you include IsShippingOverridden: true, you must populate the ManualShipping field with a Asi.Soa.Core.DataContracts.MonetaryAmountData object.
  • If you include IsHandlingOverridden: true, you must populate the ManualHandling field with a Asi.Soa.Core.DataContracts.MonetaryAmountData object.

The order object should now be similar to the following (lines 235-256 show the example shipping and handling override fields):

{
  "$type": "Asi.Soa.Commerce.DataContracts.OrderData, Asi.Contracts",
  "BillToCustomerParty": {
    "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
    "PartyId": "23296"
  },
  "Currency": {
    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
    "CurrencyCode": "USD",
    "DecimalPositions": 2
  },
  "Delivery": {
    "$type": "Asi.Soa.Commerce.DataContracts.DeliveryDataCollection, Asi.Contracts",
    "$values": [
      {
        "$type": "Asi.Soa.Commerce.DataContracts.DeliveryData, Asi.Contracts",
        "Address": {
          "$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": "13778",
            "AddressLines": {
              "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
              "$values": [
                "9600 Great Hills Trl",
                "Ste 150W"
              ]
            },
            "CityName": "Austin",
            "CountryCode": "US",
            "CountryName": "United States",
            "CountrySubEntityCode": "TX",
            "CountrySubEntityName": "Texas",
            "CountyName": "Travis",
            "DeliveryPointCode": "43",
            "FullAddress": "9600 Great Hills Trl\rSte 150W\rAustin, TX  78759-6303\rUNITED STATES",
            "PostalCode": "78759-6303",
            "VerifiedOn": "2023-10-18T16:16:17"
          },
          "AddresseeText": "ShippingOverride Tester\r\n9600 Great Hills Trl\rSte 150W\rAustin, TX  78759-6303\rUNITED STATES",
          "AddressPurpose": "Home Address",
          "CommunicationPreferences": {
            "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
            "$values": []
          },
          "FullAddressId": "13778",
          "Salutation": {
            "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
            "SalutationMethod": {
              "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
              "PartySalutationMethodId": "main"
            },
            "Text": "ShippingOverride Tester"
          },
          "DisplayName": "ShippingOverride"
        },
        "AddressId": "13778",
        "CustomerParty": {
          "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
          "PartyId": "23296"
        },
        "DeliveryId": "1d2de52d-8cda-4501-8cc9-22b93655dd87",
        "DeliveryMethod": {
          "$type": "Asi.Soa.Commerce.DataContracts.DeliveryMethodData, Asi.Contracts",
          "Name": "United Parcel Service",
          "DeliveryMethodId": "UPS"
        }
      }
    ]
  },
  "OrderDiscount": {
    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
    "Currency": {
      "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
      "CurrencyCode": "USD",
      "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",
      "CurrencyCode": "USD",
      "DecimalPositions": 2
    },
    "IsAmountDefined": true
  },
  "Lines": {
    "$type": "Asi.Soa.Commerce.DataContracts.OrderLineDataCollection, Asi.Contracts",
    "$values": [
      {
        "$type": "Asi.Soa.Commerce.DataContracts.OrderLineData, Asi.Contracts",
        "OrderLineId": "2083edd1-8f9e-466f-a0f4-002892a38a94",
        "AdditionalAttributes": {
          "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
          "$values": [
            {
              "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
              "Name": "WebsiteEditUrl",
              "Value": "https://tenant1.i10:443/imisMain10/iCore/Store/StoreLayouts/Item_Detail.aspx?iProductCode=FR011&Category=GIFTS&WebsiteKey=4243d9e2-e91e-468c-97c2-2046d70c1e1a"
            },
            {
              "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
              "Name": "UpdatedOn",
              "Value": {
                "$type": "System.Int64",
                "$value": 638332420188595858
              }
            }
          ]
        },
        "ExtendedAmount": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 9.99,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "Item": {
          "$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
          "ItemClass": {
            "$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
            "ItemClassId": "SALES-GIFTS"
          },
          "ItemCode": "FR011",
          "ItemId": "FR011",
          "Name": "Keychain with Built-in LED Flashlight"
        },
        "LineNumber": 1,
        "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
        },
        "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",
              "CurrencyCode": "USD",
              "DecimalPositions": 2
            },
            "IsAmountDefined": true
          },
          "TaxableAmountTotal": {
            "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
            "Currency": {
              "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
              "CurrencyCode": "USD",
              "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",
              "CurrencyCode": "USD",
              "DecimalPositions": 2
            },
            "IsAmountDefined": true
          },
          "TaxSchedule": {
            "$type": "Asi.Soa.Commerce.DataContracts.TaxScheduleSummaryData, Asi.Contracts",
            "Name": ""
          },
          "TaxCategory": {
            "$type": "Asi.Soa.Commerce.DataContracts.TaxCategorySummaryData, Asi.Contracts"
          }
        },
        "UnitPrice": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 9.99,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "BaseUnitPrice": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 9.99,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "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",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "DiscountCode": "",
        "CanCombine": true,
        "SourceCode": ""
      }
    ]
  },
  "LineTotal": {
    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
    "Amount": 9.99,
    "Currency": {
      "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
      "CurrencyCode": "USD",
      "DecimalPositions": 2
    },
    "IsAmountDefined": true
  },
  "IsShippingOverridden": true,
  "IsHandlingOverridden": true,
  "ManualShipping": {
    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
    "Amount": 2.00,
    "Currency": {
      "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
      "CurrencyCode": "USD",
      "DecimalPositions": 2
    },
    "IsAmountDefined": true
  },
  "ManualHandling": {
    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
    "Amount": 3.00,
    "Currency": {
      "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
      "CurrencyCode": "USD",
      "DecimalPositions": 2
    },
    "IsAmountDefined": true
  },
  "MiscellaneousChargesTotal": {
    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
    "Amount": 2.00,
    "Currency": {
      "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
      "CurrencyCode": "USD",
      "DecimalPositions": 2
    },
    "IsAmountDefined": true
  },
  "OrderDate": "2023-10-18T16:06:58.9084267Z",
  "OrderTotal": {
    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
    "Amount": 13.61,
    "Currency": {
      "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
      "CurrencyCode": "USD",
      "DecimalPositions": 2
    },
    "IsAmountDefined": true
  },
  "OriginatorCustomerParty": {
    "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
    "PartyId": "23296"
  },
  "ShippingTotal": {
    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
    "Amount": 1.00,
    "Currency": {
      "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
      "CurrencyCode": "USD",
      "DecimalPositions": 2
    },
    "IsAmountDefined": true
  },
  "SoldToCustomerParty": {
    "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
    "PartyId": "23296"
  },
  "SourceCode": "",
  "AdditionalCharges": {
    "$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeDataCollection, Asi.Contracts",
    "$values": [
      {
        "$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeData, Asi.Contracts",
        "AdditionalChargeId": "Freight",
        "Description": "Freight",
        "TotalAmount": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 1.00,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "Tax": {
          "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxData, Asi.Contracts",
          "Details": {
            "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailDataCollection, Asi.Contracts",
            "$values": [
              {
                "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailData, Asi.Contracts",
                "TaxAmount": {
                  "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                  "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                  },
                  "IsAmountDefined": true
                },
                "IsTaxInclusive": true,
                "TaxAuthority": {
                  "$type": "Asi.Soa.Commerce.DataContracts.TaxAuthoritySummaryData, Asi.Contracts",
                  "Name": ""
                }
              }
            ]
          },
          "TaxTotal": {
            "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
            "Currency": {
              "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
              "CurrencyCode": "USD",
              "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",
              "CurrencyCode": "USD",
              "DecimalPositions": 2
            },
            "IsAmountDefined": true
          }
        }
      },
      {
        "$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeData, Asi.Contracts",
        "AdditionalChargeId": "Handling",
        "Description": "Handling",
        "TotalAmount": {
          "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
          "Amount": 2.00,
          "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
          },
          "IsAmountDefined": true
        },
        "Tax": {
          "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxData, Asi.Contracts",
          "Details": {
            "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailDataCollection, Asi.Contracts",
            "$values": [
              {
                "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailData, Asi.Contracts",
                "TaxAmount": {
                  "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                  "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                  },
                  "IsAmountDefined": true
                },
                "IsTaxInclusive": true,
                "TaxAuthority": {
                  "$type": "Asi.Soa.Commerce.DataContracts.TaxAuthoritySummaryData, Asi.Contracts",
                  "Name": ""
                }
              }
            ]
          },
          "TaxTotal": {
            "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
            "Currency": {
              "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
              "CurrencyCode": "USD",
              "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",
              "CurrencyCode": "USD",
              "DecimalPositions": 2
            },
            "IsAmountDefined": true
          }
        }
      },
      {
        "$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",
            "CurrencyCode": "USD",
            "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",
              "CurrencyCode": "USD",
              "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",
              "CurrencyCode": "USD",
              "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",
        "CurrencyCode": "USD",
        "DecimalPositions": 2
      },
      "IsAmountDefined": true
    },
    "TaxTotal": {
      "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
      "Amount": 0.62,
      "Currency": {
        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
        "CurrencyCode": "USD",
        "DecimalPositions": 2
      },
      "IsAmountDefined": true
    },
    "OrderTaxes": {
      "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDataCollection, Asi.Contracts",
      "$values": [
        {
          "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxData, Asi.Contracts",
          "Details": {
            "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailDataCollection, Asi.Contracts",
            "$values": [
              {
                "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailData, Asi.Contracts",
                "TaxAmount": {
                  "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                  "Amount": 0.62,
                  "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                  },
                  "IsAmountDefined": true
                },
                "TaxAuthority": {
                  "$type": "Asi.Soa.Commerce.DataContracts.TaxAuthoritySummaryData, Asi.Contracts",
                  "Description": "Texas Sales Tax",
                  "Name": "TX",
                  "TaxAuthorityId": "TX",
                  "TaxAuthorityCode": "TX"
                }
              }
            ]
          },
          "TaxTotal": {
            "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
            "Amount": 0.62,
            "Currency": {
              "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
              "CurrencyCode": "USD",
              "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",
              "CurrencyCode": "USD",
              "DecimalPositions": 2
            },
            "IsAmountDefined": true
          },
          "TaxSchedule": {
            "$type": "Asi.Soa.Commerce.DataContracts.TaxScheduleSummaryData, Asi.Contracts",
            "TaxScheduleId": "TX",
            "Name": "TX",
            "Description": "Texas Sales Tax",
            "ShowTaxDetails": false
          }
        }
      ]
    }
  },
  "TotalBasePrice": {
    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
    "Amount": 9.99,
    "Currency": {
      "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
      "CurrencyCode": "USD",
      "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": 13.61
        }
      }
    ]
  }
}

4. 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. You will post to this endpoint:

https://{{URL}}/api/Order/_execute 

Using the following payload in your request, replace "{{YourOrderHere}}" with the Asi.Soa.Commerce.DataContracts.OrderData object JSON you modified in Step 3:

{
    "$type": "Asi.Soa.Commerce.DataContracts.OrderPriceUpdateRequest, Asi.Contracts",
    "EntityTypeName": "Order",
    "OperationName": "UpdatePricing",
    "Order": {
      {{YourOrderHere}}
    }
}

Take the order JSON that comes back as the request response and replace the Order in your cart data with it (indicated by {{UpdatedOrderHere}} below in this example cart data taken from Step 2).

{
    "$type": "Asi.Soa.Commerce.DataContracts.CartData, Asi.Contracts",
    "CartId": "78cbd9dd-8dfd-44f3-9667-912af94cb941",
    "UserId": "23296",
    "ComboOrder": {
      "$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts",
      "Currency": {
        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
        "CurrencyCode": "USD",
        "DecimalPositions": 2
      },
      "Order": {{UpdatedOrderHere}},
      "Invoices": {
        "$type": "Asi.Soa.Commerce.DataContracts.InvoiceSummaryDataCollection, Asi.Contracts",
        "$values": []
      },
      "Payments": {
        "$type": "Asi.Soa.Commerce.DataContracts.RemittanceDataCollection, Asi.Contracts",
        "$values": [
          {
            "$type": "Asi.Soa.Commerce.DataContracts.RemittanceData, Asi.Contracts",
            "PaymentToken": {
              "$type": "Asi.Soa.Commerce.DataContracts.AutoPayAccountData, Asi.Contracts",
              "PaymentMethodIsReadOnly": false
            },
            "PayorParty": {
              "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
              "PartyId": "23296"
            }
          }
        ]
      }
    },
    "UpdateInformation": {
      "$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
      "CreatedBy": "23296",
      "CreatedOn": "2023-10-18T21:06:59.157",
      "UpdatedBy": "23296",
      "UpdatedOn": "2023-10-18T21:07:03.92"
    }
}

5. Add payment information and submit the cart

The manual shipping and handling values will now be used in all subsequent calculations involving shipping and handling, including any tax calculations involving these.

IMPORTANT NOTES:

  1. This only applies to commerce orders. Values will be ignored for non-commerce orders.
  2. Negative values are not allowed. If a negative value is set for shipping or handling, the cart submission will fail.