Skip to content
Last updated

Working with the Checkout Process in Norce Commerce

The checkout process is the final step in the buying experience, involving payment and order confirmation. This process is governed by business rules defined in Norce Commerce. Your solution must comply with these rules to ensure a successful purchase.

Prerequisites for Checkout

To use the checkout process, you must have:

  • A basket with items
  • At least one payment method configured
  • At least one delivery method configured

References:

Example: Checkout Object (JSON and XML)

{
  "Basket": {
    "Id": 6600304,
    "CustomerId": null,
    "CompanyId": null,
    "SalesContactId": null,
    "StatusId": 3,
    "CurrencyId": 2,
    "CurrencyCode": "SEK",
    "Comment": null,
    "OrderReference": null,
    "DiscountCode": null,
    "ReferId": null,
    "ReferUrl": null,
    "ValidTo": null,
    "IsEditable": true,
    "Items": [
      {
        "Id": 16030464,
        "LineNo": 1,
        "ParentLineNo": null,
        "ProductId": 31234584,
        "PartNo": "PRD0001270",
        "ManufacturerPartNo": "T540XP",
        "Name": "T540XP",
        "SubHeader": "<p>Detta är en kort beskrivning.</p>",
        "ThumbnailImage": "2/thumb_p31234584.jpg",
        "FlagIdSeed": "915,1884",
        "Type": 1,
        "PriceDisplay": 5743.20,
        "Price": 0.00,
        "PriceOriginal": 5743.20,
        "Cost": 5734.34,
        "VatRate": 1.2500,
        "Quantity": 1.000,
        "UOM": "st",
        "UOMCount": 1.000,
        "Comment": null,
        "PriceListId": 4654,
        "ReferId": null,
        "ReferUrl": null,
        "IsEditable": true,
        "IsDiscountable": true,
        "Info": [
          {
            "TypeId": 209,
            "Value": "",
            "Code": "bit_size"
          },
          {
            "TypeId": 241,
            "Value": "",
            "Code": "bit_del_time"
          },
          {
            "TypeId": 95,
            "Value": "",
            "Code": "bit_additionalinformation"
          }
        ],
        "OptionalItems": [],
        "OnHandValue": 0.000,
        "IncomingValue": 0.000,
        "NextDeliveryDate": null,
        "LeadtimeDayCount": null,
        "PromotionIdSeed": "",
        "ImageKey": "39e4b7ec-12d8-4f6e-b9c1-cbd7334190e1",
        "ManufacturerName": "Husqvarna",
        "CategoryId": 41722,
        "OnHand": {
          "Value": 0.000,
          "IncomingValue": 0.000,
          "NextDeliveryDate": null,
          "LeadtimeDayCount": null,
          "LastChecked": null,
          "IsActive": false,
          "IsReturnable": true,
          "Info": null
        },
        "OnHandSupplier": {
          "Value": 200.000,
          "IncomingValue": 0.000,
          "NextDeliveryDate": null,
          "LeadtimeDayCount": 7,
          "LastChecked": null,
          "IsActive": true,
          "IsReturnable": true,
          "Info": null
        },
        "PriceRecommended": 7000.00,
        "ManufacturerId": 1685,
        "UniqueName": "t540xp",
        "StatusId": 1,
        "StockDisplayBreakPoint": null,
        "PriceCatalog": null,
        "IsBuyable": true,
        "SubDescription": null,
        "CategoryIdSeed": "41722",
        "RecommendedQuantity": 4.000,
        "IsRecommendedQuantityFixed": false,
        "AppliedPromotions": [],
        "RequirementPromotionIdSeed": "5093",
        "IsSubscribable": false,
        "DescriptionHeader": "Husqvarna T540XP",
        "IsPriceManual": false,
        "PriceStandard": 6375.20,
        "EanCode": "123123123123123",
        "CostUnit": 0.00,
        "PriceDisplayIncVat": 7179.00
      },
      {
        "Id": 16030465,
        "LineNo": 2,
        "ParentLineNo": null,
        "ProductId": 24706222,
        "PartNo": "PRD0001212",
        "ManufacturerPartNo": "FREIGHT01",
        "Name": "Freight",
        "SubHeader": null,
        "ThumbnailImage": null,
        "FlagIdSeed": "915",
        "Type": 3,
        "PriceDisplay": 0.00,
        "Price": 0.00,
        "PriceOriginal": 0.00,
        "Cost": 0.00,
        "VatRate": 1.25,
        "Quantity": 1.000,
        "UOM": "st",
        "UOMCount": 1.000,
        "Comment": null,
        "PriceListId": 1,
        "ReferId": null,
        "ReferUrl": null,
        "IsEditable": true,
        "IsDiscountable": true,
        "Info": [
          {
            "TypeId": 209,
            "Value": "",
            "Code": "bit_size"
          },
          {
            "TypeId": 241,
            "Value": "",
            "Code": "bit_del_time"
          },
          {
            "TypeId": 95,
            "Value": "",
            "Code": "bit_additionalinformation"
          }
        ],
        "OptionalItems": [],
        "OnHandValue": 0.000,
        "IncomingValue": 0.000,
        "NextDeliveryDate": null,
        "LeadtimeDayCount": 0,
        "PromotionIdSeed": null,
        "ImageKey": null,
        "ManufacturerName": "Miscellaneous",
        "CategoryId": null,
        "OnHand": {
          "Value": 0.000,
          "IncomingValue": 0.000,
          "NextDeliveryDate": null,
          "LeadtimeDayCount": 0,
          "LastChecked": "/Date(1325504774807+0100)/",
          "IsActive": true,
          "IsReturnable": true,
          "Info": null
        },
        "OnHandSupplier": {
          "Value": 0.000,
          "IncomingValue": 0.000,
          "NextDeliveryDate": null,
          "LeadtimeDayCount": null,
          "LastChecked": null,
          "IsActive": false,
          "IsReturnable": true,
          "Info": null
        },
        "PriceRecommended": null,
        "ManufacturerId": 4335,
        "UniqueName": "freight",
        "StatusId": 1,
        "StockDisplayBreakPoint": null,
        "PriceCatalog": null,
        "IsBuyable": true,
        "SubDescription": null,
        "CategoryIdSeed": "",
        "RecommendedQuantity": 1.000,
        "IsRecommendedQuantityFixed": false,
        "AppliedPromotions": [],
        "RequirementPromotionIdSeed": null,
        "IsSubscribable": false,
        "DescriptionHeader": null,
        "IsPriceManual": false,
        "PriceStandard": 0.00,
        "EanCode": "",
        "CostUnit": 0.00,
        "PriceDisplayIncVat": 0.00
      },
      {
        "Id": 0,
        "LineNo": 3,
        "ParentLineNo": 1,
        "ProductId": 31234588,
        "PartNo": "PRD0001274",
        "ManufacturerPartNo": "Underhållskit",
        "Name": "Underhållskit Motorsåg",
        "SubHeader": null,
        "ThumbnailImage": "2/thumb_p31234588.png",
        "FlagIdSeed": "915",
        "Type": 1,
        "PriceDisplay": 111.20,
        "Price": 0.00,
        "PriceOriginal": 111.20,
        "Cost": 100.25,
        "VatRate": 1.25,
        "Quantity": 1,
        "UOM": "st",
        "UOMCount": 1.000,
        "Comment": null,
        "PriceListId": 1,
        "ReferId": null,
        "ReferUrl": null,
        "IsEditable": false,
        "IsDiscountable": true,
        "Info": [
          {
            "TypeId": 209,
            "Value": "",
            "Code": "bit_size"
          },
          {
            "TypeId": 241,
            "Value": "",
            "Code": "bit_del_time"
          },
          {
            "TypeId": 95,
            "Value": "",
            "Code": "bit_additionalinformation"
          }
        ],
        "OptionalItems": [],
        "OnHandValue": 12.000,
        "IncomingValue": 0.000,
        "NextDeliveryDate": null,
        "LeadtimeDayCount": 0,
        "PromotionIdSeed": "",
        "ImageKey": null,
        "ManufacturerName": "Husqvarna",
        "CategoryId": 41722,
        "OnHand": {
          "Value": 12.000,
          "IncomingValue": 0.000,
          "NextDeliveryDate": null,
          "LeadtimeDayCount": 0,
          "LastChecked": null,
          "IsActive": true,
          "IsReturnable": true,
          "Info": null
        },
        "OnHandSupplier": {
          "Value": 133.000,
          "IncomingValue": 0.000,
          "NextDeliveryDate": null,
          "LeadtimeDayCount": 5,
          "LastChecked": "/Date(1487085555163+0100)/",
          "IsActive": true,
          "IsReturnable": true,
          "Info": null
        },
        "PriceRecommended": null,
        "ManufacturerId": 1685,
        "UniqueName": "underhallskit-motorsag",
        "StatusId": 1,
        "StockDisplayBreakPoint": null,
        "PriceCatalog": null,
        "IsBuyable": true,
        "SubDescription": null,
        "CategoryIdSeed": "41722",
        "RecommendedQuantity": 1.000,
        "IsRecommendedQuantityFixed": false,
        "AppliedPromotions": [],
        "RequirementPromotionIdSeed": "",
        "IsSubscribable": false,
        "DescriptionHeader": null,
        "IsPriceManual": false,
        "PriceStandard": 0.00,
        "EanCode": "345345345345345",
        "CostUnit": 0.00,
        "PriceDisplayIncVat": 139.00
      }
    ],
    "Info": [
      {
        "TypeId": 169,
        "Value": "",
        "Code": "bit_expecteddeliverydate"
      },
      {
        "TypeId": 293,
        "Value": "",
        "Code": "bit_additionalorderinfo"
      },
      {
        "TypeId": 445,
        "Value": "",
        "Code": "Norce_Gender"
      },
      {
        "TypeId": 493,
        "Value": "",
        "Code": "recurring"
      }
    ],
    "Summary": {
      "Items": {
        "Amount": 5854.40,
        "Vat": 1463.60,
        "AmountIncVat": 7318.00
      },
      "Freigt": {
        "Amount": 0.00,
        "Vat": 0.00,
        "AmountIncVat": 0.00
      },
      "Fees": {
        "Amount": 0.00,
        "Vat": 0.00,
        "AmountIncVat": 0.00
      },
      "Total": {
        "Amount": 5854.40,
        "Vat": 1463.60,
        "AmountIncVat": 7318.00
      }
    },
    "AppliedPromotions": [
      {
        "Id": 5093,
        "Name": "Add service",
        "Header": "",
        "ShortDescription": "",
        "Description1": "",
        "Description2": "",
        "StartDate": null,
        "EndDate": null,
        "ImageKey": null,
        "RequirementSeed": "3",
        "DiscountCode": null,
        "IsExcludedFromPriceCalculation": false,
        "AllowProductListing": false,
        "Images": [],
        "ProductFilters": [
          {
            "ManufacturerId": null,
            "CategorySeed": null,
            "TypeId": null,
            "ProductId": null,
            "VariantProductId": null,
            "PartNo": "PRD0001274",
            "PricelistId": 1,
            "FlagId": null
          },
          {
            "ManufacturerId": null,
            "CategorySeed": null,
            "TypeId": null,
            "ProductId": null,
            "VariantProductId": null,
            "PartNo": null,
            "PricelistId": null,
            "FlagId": 1884
          }
        ],
        "AppliedAmount": 0.00,
        "EffectSeed": "5",
        "FreightDiscountPct": null,
        "IsStackable": true,
        "AppliedAmountIncVat": 0.00
      }
    ],
    "IpAddress": "151.236.200.213",
    "AttestedBy": null,
    "TypeId": 1,
    "DoHold": false,
    "IsBuyable": true,
    "InvoiceReference": null,
    "PaymentMethodId": 14,
    "DeliveryMethodId": 1,
    "SalesAreaId": 1
  },
  "Buyer": {
    "Id": null,
    "Key": "86830286-d988-442d-b741-30e637da1880",
    "Code": null,
    "Email": "test@test.se",
    "SSN": null,
    "FirstName": "TestBuyerName",
    "LastName": "TestBuyerLastname",
    "Phone": null,
    "CellPhone": null,
    "ReferId": null,
    "ReferUrl": null,
    "Account": {
      "Id": null,
      "Key": "86830286-d988-442d-b741-30e637da1880",
      "LoginName": null,
      "Name": null,
      "Roles": null,
      "Authorizations": null,
      "IsActive": false
    },
    "Companies": [],
    "DeliveryAddresses": [],
    "InvoiceAddress": null,
    "Flags": null,
    "UseInvoiceAddressAsDeliveryAddress": false,
    "Info": null,
    "PricelistIds": null,
    "CrmId": null,
    "IsActive": null,
    "Created": null,
    "Updated": null
  },
  "Payer": {
    "Id": null,
    "Key": "99a312c9-003a-4063-8310-b745e7e27f1e",
    "Code": null,
    "Email": "test@test.se",
    "SSN": null,
    "FirstName": "TestBuyerName",
    "LastName": "TestBuyerLastname",
    "Phone": null,
    "CellPhone": null,
    "ReferId": null,
    "ReferUrl": null,
    "Account": {
      "Id": null,
      "Key": "99a312c9-003a-4063-8310-b745e7e27f1e",
      "LoginName": null,
      "Name": null,
      "Roles": null,
      "Authorizations": null,
      "IsActive": false
    },
    "Companies": [],
    "DeliveryAddresses": [],
    "InvoiceAddress": {
      "Id": 12055560,
      "CareOf": null,
      "Line1": "TestInvoicestreet 1",
      "Line2": null,
      "Zip": "12345",
      "City": "TestCity",
      "CountryId": 1,
      "Country": "Sverige",
      "Region": null,
      "IsValidated": false,
      "GlobalLocationNo": null,
      "ShippingPhoneNumber": null
    },
    "Flags": null,
    "UseInvoiceAddressAsDeliveryAddress": false,
    "Info": null,
    "PricelistIds": null,
    "CrmId": null,
    "IsActive": null,
    "Created": null,
    "Updated": null
  },
  "ShipTo": {
    "Id": null,
    "Key": "3466a97f-f1fa-4ff1-8ae9-ea641467f584",
    "Code": null,
    "Email": "test@test.se",
    "SSN": null,
    "FirstName": "TestBuyerName",
    "LastName": "TestBuyerLastname",
    "Phone": null,
    "CellPhone": null,
    "ReferId": null,
    "ReferUrl": null,
    "Account": {
      "Id": null,
      "Key": "3466a97f-f1fa-4ff1-8ae9-ea641467f584",
      "LoginName": null,
      "Name": null,
      "Roles": null,
      "Authorizations": null,
      "IsActive": false
    },
    "Companies": [],
    "DeliveryAddresses": [
      {
        "Id": 12055561,
        "CareOf": null,
        "Line1": "TestInvoicestreet 1",
        "Line2": null,
        "Zip": "12345",
        "City": "TestCity",
        "CountryId": 1,
        "Country": "Sverige",
        "Region": null,
        "IsValidated": false,
        "GlobalLocationNo": null,
        "ShippingPhoneNumber": null
      }
    ],
    "InvoiceAddress": null,
    "Flags": null,
    "UseInvoiceAddressAsDeliveryAddress": false,
    "Info": null,
    "PricelistIds": null,
    "CrmId": null,
    "IsActive": null,
    "Created": null,
    "Updated": null
  },
  "PaymentMethods": [
    {
      "Id": 14,
      "Name": "Faktura",
      "TypeId": 7,
      "TypeName": "ErpInvoice",
      "Description": "30 dagars faktura",
      "PartNo": null,
      "Price": 0.00,
      "VatRate": 1.00,
      "ImagePath": null,
      "IsSelected": true,
      "Service": {
        "Id": 3,
        "Name": "No service",
        "Description": null,
        "ImagePath": null,
        "ImageKey": null
      },
      "ImageKey": null,
      "IsForCompanyOnly": false,
      "IsForPersonOnly": false
    },
    {
      "Id": 18,
      "Name": "Presentkort",
      "TypeId": 9,
      "TypeName": "GiftCertificate",
      "Description": "Used for giftcards handeled by an ERP or other source outside of Norce Commerce",
      "PartNo": null,
      "Price": 0.00,
      "VatRate": 1.00,
      "ImagePath": null,
      "IsSelected": false,
      "Service": {
        "Id": 3,
        "Name": "No service",
        "Description": null,
        "ImagePath": null,
        "ImageKey": null
      },
      "ImageKey": null,
      "IsForCompanyOnly": false,
      "IsForPersonOnly": false
    },
    {
      "Id": 157,
      "Name": "Svea Ekonomi",
      "TypeId": 19,
      "TypeName": "Checkout",
      "Description": "Form checkout payment.",
      "PartNo": null,
      "Price": 0.00,
      "VatRate": 1.00,
      "ImagePath": null,
      "IsSelected": false,
      "Service": {
        "Id": 19,
        "Name": "SveaEkonomi",
        "Description": null,
        "ImagePath": null,
        "ImageKey": null
      },
      "ImageKey": null,
      "IsForCompanyOnly": false,
      "IsForPersonOnly": false
    },
    {
      "Id": 162,
      "Name": "Adyen checkout",
      "TypeId": 19,
      "TypeName": "Checkout",
      "Description": "Form checkout payment.",
      "PartNo": null,
      "Price": 0.00,
      "VatRate": 1.00,
      "ImagePath": null,
      "IsSelected": false,
      "Service": {
        "Id": 27,
        "Name": "AdyenV67",
        "Description": null,
        "ImagePath": null,
        "ImageKey": null
      },
      "ImageKey": null,
      "IsForCompanyOnly": false,
      "IsForPersonOnly": false
    },
    {
      "Id": 156,
      "Name": "Klarna Checkout v3 (Recurrable)",
      "TypeId": 19,
      "TypeName": "Checkout",
      "Description": "Form checkout payment.",
      "PartNo": null,
      "Price": 0.00,
      "VatRate": 1.00,
      "ImagePath": null,
      "IsSelected": false,
      "Service": {
        "Id": 18,
        "Name": "KlarnaCheckoutV3",
        "Description": null,
        "ImagePath": null,
        "ImageKey": null
      },
      "ImageKey": null,
      "IsForCompanyOnly": false,
      "IsForPersonOnly": false
    },
    {
      "Id": 160,
      "Name": "Dibs Easy Pay",
      "TypeId": 19,
      "TypeName": "Checkout",
      "Description": "Form checkout payment.",
      "PartNo": null,
      "Price": 0.00,
      "VatRate": 1.00,
      "ImagePath": null,
      "IsSelected": false,
      "Service": {
        "Id": 22,
        "Name": "DibsEasyCheckout",
        "Description": null,
        "ImagePath": null,
        "ImageKey": null
      },
      "ImageKey": null,
      "IsForCompanyOnly": false,
      "IsForPersonOnly": false
    },
    {
      "Id": 166,
      "Name": "Walley B2B",
      "TypeId": 19,
      "TypeName": "Checkout",
      "Description": "",
      "PartNo": null,
      "Price": 0.00,
      "VatRate": 1.00,
      "ImagePath": null,
      "IsSelected": false,
      "Service": {
        "Id": 24,
        "Name": "Collector",
        "Description": null,
        "ImagePath": null,
        "ImageKey": null
      },
      "ImageKey": null,
      "IsForCompanyOnly": false,
      "IsForPersonOnly": false
    }
  ],
  "DeliveryMethods": [
    {
      "Id": 1,
      "Name": "DB Schenker Utlämningsställe",
      "TypeId": 6,
      "TypeName": "Utlämning",
      "Description": "DB Schenker leverans till vald utlämningsställe",
      "PartNo": "PRD0001212",
      "Price": 0.0000,
      "VatRate": 1.25,
      "IsNotifiable": false,
      "ImagePath": null,
      "IsSelected": true,
      "ImageKey": null,
      "IsForCompanyOnly": false,
      "IsForPersonOnly": false,
      "Cost": 0.0000,
      "StoreId": null,
      "WarehouseId": null,
      "LocationId": null,
      "DropPoints": [],
      "Code": "DBS-UTL",
      "Carrier": null
    },
    {
      "Id": 7,
      "Name": "Hempaket kväll",
      "TypeId": 1,
      "TypeName": "Hemleverans",
      "Description": "Leverans sker hem mellan 17:00 och 22:00.",
      "PartNo": "PRD0001212",
      "Price": 49.0000,
      "VatRate": 1.2500,
      "IsNotifiable": false,
      "ImagePath": null,
      "IsSelected": false,
      "ImageKey": null,
      "IsForCompanyOnly": false,
      "IsForPersonOnly": true,
      "Cost": 0.0000,
      "StoreId": null,
      "WarehouseId": null,
      "LocationId": null,
      "DropPoints": [],
      "Code": "HEMPK",
      "Carrier": null
    }
  ],
  "Payments": []
}

<Checkout xmlns="Enferno.Services.Contracts.Expose.Shopping" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <Basket>
        <Id>6600304</Id>
        <CustomerId i:nil="true"/>
        <CompanyId i:nil="true"/>
        <SalesContactId i:nil="true"/>
        <StatusId>3</StatusId>
        <CurrencyId>2</CurrencyId>
        <CurrencyCode>SEK</CurrencyCode>
        <Comment i:nil="true"/>
        <OrderReference i:nil="true"/>
        <DiscountCode i:nil="true"/>
        <ReferId i:nil="true"/>
        <ReferUrl i:nil="true"/>
        <ValidTo i:nil="true"/>
        <IsEditable>true</IsEditable>
        <Items>
            <BasketItem>
                <Id>16030464</Id>
                <LineNo>1</LineNo>
                <ParentLineNo i:nil="true"/>
                <ProductId>31234584</ProductId>
                <PartNo>PRD0001270</PartNo>
                <ManufacturerPartNo>T540XP</ManufacturerPartNo>
                <Name>T540XP</Name>
                <SubHeader>&lt;p&gt;Detta är en kort beskrivning.&lt;/p&gt;</SubHeader>
                <ThumbnailImage>2/thumb_p31234584.jpg</ThumbnailImage>
                <FlagIdSeed>915,1884</FlagIdSeed>
                <Type>1</Type>
                <PriceDisplay>5743.20</PriceDisplay>
                <Price>0.00</Price>
                <PriceOriginal>5743.20</PriceOriginal>
                <Cost>5734.34</Cost>
                <VatRate>1.2500</VatRate>
                <Quantity>1.000</Quantity>
                <UOM>st</UOM>
                <UOMCount>1.000</UOMCount>
                <Comment i:nil="true"/>
                <PriceListId>4654</PriceListId>
                <ReferId i:nil="true"/>
                <ReferUrl i:nil="true"/>
                <IsEditable>true</IsEditable>
                <IsDiscountable>true</IsDiscountable>
                <Info>
                    <Info>
                        <TypeId>209</TypeId>
                        <Value/>
                        <Code>bit_size</Code>
                    </Info>
                    <Info>
                        <TypeId>241</TypeId>
                        <Value/>
                        <Code>bit_del_time</Code>
                    </Info>
                    <Info>
                        <TypeId>95</TypeId>
                        <Value/>
                        <Code>bit_additionalinformation</Code>
                    </Info>
                </Info>
                <OptionalItems/>
                <OnHandValue>0.000</OnHandValue>
                <IncomingValue>0.000</IncomingValue>
                <NextDeliveryDate i:nil="true"/>
                <LeadtimeDayCount i:nil="true"/>
                <PromotionIdSeed/>
                <ImageKey>39e4b7ec-12d8-4f6e-b9c1-cbd7334190e1</ImageKey>
                <ManufacturerName>Husqvarna</ManufacturerName>
                <CategoryId>41722</CategoryId>
                <OnHand xmlns:a="Enferno.Services.Contracts.Expose.Products">
                    <a:Value>0.000</a:Value>
                    <a:IncomingValue>0.000</a:IncomingValue>
                    <a:NextDeliveryDate i:nil="true"/>
                    <a:LeadtimeDayCount i:nil="true"/>
                    <a:LastChecked i:nil="true"/>
                    <a:IsActive>false</a:IsActive>
                    <a:IsReturnable>true</a:IsReturnable>
                    <a:Info i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
                </OnHand>
                <OnHandSupplier xmlns:a="Enferno.Services.Contracts.Expose.Products">
                    <a:Value>200.000</a:Value>
                    <a:IncomingValue>0.000</a:IncomingValue>
                    <a:NextDeliveryDate i:nil="true"/>
                    <a:LeadtimeDayCount>7</a:LeadtimeDayCount>
                    <a:LastChecked i:nil="true"/>
                    <a:IsActive>true</a:IsActive>
                    <a:IsReturnable>true</a:IsReturnable>
                    <a:Info i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
                </OnHandSupplier>
                <PriceRecommended>7000.00</PriceRecommended>
                <ManufacturerId>1685</ManufacturerId>
                <UniqueName>t540xp</UniqueName>
                <StatusId>1</StatusId>
                <StockDisplayBreakPoint i:nil="true"/>
                <PriceCatalog i:nil="true"/>
                <IsBuyable>true</IsBuyable>
                <SubDescription i:nil="true"/>
                <CategoryIdSeed>41722</CategoryIdSeed>
                <RecommendedQuantity>4.000</RecommendedQuantity>
                <IsRecommendedQuantityFixed>false</IsRecommendedQuantityFixed>
                <AppliedPromotions/>
                <RequirementPromotionIdSeed>5093</RequirementPromotionIdSeed>
                <IsSubscribable>false</IsSubscribable>
                <DescriptionHeader>Husqvarna T540XP</DescriptionHeader>
                <IsPriceManual>false</IsPriceManual>
                <PriceStandard>6375.20</PriceStandard>
                <EanCode>123123123123123</EanCode>
                <CostUnit>0.00</CostUnit>
                <PriceDisplayIncVat>7179.00</PriceDisplayIncVat>
            </BasketItem>
            <BasketItem>
                <Id>16030465</Id>
                <LineNo>2</LineNo>
                <ParentLineNo i:nil="true"/>
                <ProductId>24706222</ProductId>
                <PartNo>PRD0001212</PartNo>
                <ManufacturerPartNo>FREIGHT01</ManufacturerPartNo>
                <Name>Freight</Name>
                <SubHeader i:nil="true"/>
                <ThumbnailImage i:nil="true"/>
                <FlagIdSeed>915</FlagIdSeed>
                <Type>3</Type>
                <PriceDisplay>0.00</PriceDisplay>
                <Price>0.00</Price>
                <PriceOriginal>0.00</PriceOriginal>
                <Cost>0.00</Cost>
                <VatRate>1.25</VatRate>
                <Quantity>1.000</Quantity>
                <UOM>st</UOM>
                <UOMCount>1.000</UOMCount>
                <Comment i:nil="true"/>
                <PriceListId>1</PriceListId>
                <ReferId i:nil="true"/>
                <ReferUrl i:nil="true"/>
                <IsEditable>true</IsEditable>
                <IsDiscountable>true</IsDiscountable>
                <Info>
                    <Info>
                        <TypeId>209</TypeId>
                        <Value/>
                        <Code>bit_size</Code>
                    </Info>
                    <Info>
                        <TypeId>241</TypeId>
                        <Value/>
                        <Code>bit_del_time</Code>
                    </Info>
                    <Info>
                        <TypeId>95</TypeId>
                        <Value/>
                        <Code>bit_additionalinformation</Code>
                    </Info>
                </Info>
                <OptionalItems/>
                <OnHandValue>0.000</OnHandValue>
                <IncomingValue>0.000</IncomingValue>
                <NextDeliveryDate i:nil="true"/>
                <LeadtimeDayCount>0</LeadtimeDayCount>
                <PromotionIdSeed i:nil="true"/>
                <ImageKey i:nil="true"/>
                <ManufacturerName>Miscellaneous</ManufacturerName>
                <CategoryId i:nil="true"/>
                <OnHand xmlns:a="Enferno.Services.Contracts.Expose.Products">
                    <a:Value>0.000</a:Value>
                    <a:IncomingValue>0.000</a:IncomingValue>
                    <a:NextDeliveryDate i:nil="true"/>
                    <a:LeadtimeDayCount>0</a:LeadtimeDayCount>
                    <a:LastChecked>2012-01-02T12:46:14.807</a:LastChecked>
                    <a:IsActive>true</a:IsActive>
                    <a:IsReturnable>true</a:IsReturnable>
                    <a:Info i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
                </OnHand>
                <OnHandSupplier xmlns:a="Enferno.Services.Contracts.Expose.Products">
                    <a:Value>0.000</a:Value>
                    <a:IncomingValue>0.000</a:IncomingValue>
                    <a:NextDeliveryDate i:nil="true"/>
                    <a:LeadtimeDayCount i:nil="true"/>
                    <a:LastChecked i:nil="true"/>
                    <a:IsActive>false</a:IsActive>
                    <a:IsReturnable>true</a:IsReturnable>
                    <a:Info i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
                </OnHandSupplier>
                <PriceRecommended i:nil="true"/>
                <ManufacturerId>4335</ManufacturerId>
                <UniqueName>freight</UniqueName>
                <StatusId>1</StatusId>
                <StockDisplayBreakPoint i:nil="true"/>
                <PriceCatalog i:nil="true"/>
                <IsBuyable>true</IsBuyable>
                <SubDescription i:nil="true"/>
                <CategoryIdSeed/>
                <RecommendedQuantity>1.000</RecommendedQuantity>
                <IsRecommendedQuantityFixed>false</IsRecommendedQuantityFixed>
                <AppliedPromotions/>
                <RequirementPromotionIdSeed i:nil="true"/>
                <IsSubscribable>false</IsSubscribable>
                <DescriptionHeader i:nil="true"/>
                <IsPriceManual>false</IsPriceManual>
                <PriceStandard>0.00</PriceStandard>
                <EanCode/>
                <CostUnit>0.00</CostUnit>
                <PriceDisplayIncVat>0.00</PriceDisplayIncVat>
            </BasketItem>
            <BasketItem>
                <Id>0</Id>
                <LineNo>3</LineNo>
                <ParentLineNo>1</ParentLineNo>
                <ProductId>31234588</ProductId>
                <PartNo>PRD0001274</PartNo>
                <ManufacturerPartNo>Underhållskit</ManufacturerPartNo>
                <Name>Underhållskit Motorsåg</Name>
                <SubHeader i:nil="true"/>
                <ThumbnailImage>2/thumb_p31234588.png</ThumbnailImage>
                <FlagIdSeed>915</FlagIdSeed>
                <Type>1</Type>
                <PriceDisplay>111.20</PriceDisplay>
                <Price>0.00</Price>
                <PriceOriginal>111.20</PriceOriginal>
                <Cost>100.25</Cost>
                <VatRate>1.25</VatRate>
                <Quantity>1</Quantity>
                <UOM>st</UOM>
                <UOMCount>1.000</UOMCount>
                <Comment i:nil="true"/>
                <PriceListId>1</PriceListId>
                <ReferId i:nil="true"/>
                <ReferUrl i:nil="true"/>
                <IsEditable>false</IsEditable>
                <IsDiscountable>true</IsDiscountable>
                <Info>
                    <Info>
                        <TypeId>209</TypeId>
                        <Value/>
                        <Code>bit_size</Code>
                    </Info>
                    <Info>
                        <TypeId>241</TypeId>
                        <Value/>
                        <Code>bit_del_time</Code>
                    </Info>
                    <Info>
                        <TypeId>95</TypeId>
                        <Value/>
                        <Code>bit_additionalinformation</Code>
                    </Info>
                </Info>
                <OptionalItems/>
                <OnHandValue>12.000</OnHandValue>
                <IncomingValue>0.000</IncomingValue>
                <NextDeliveryDate i:nil="true"/>
                <LeadtimeDayCount>0</LeadtimeDayCount>
                <PromotionIdSeed/>
                <ImageKey i:nil="true"/>
                <ManufacturerName>Husqvarna</ManufacturerName>
                <CategoryId>41722</CategoryId>
                <OnHand xmlns:a="Enferno.Services.Contracts.Expose.Products">
                    <a:Value>12.000</a:Value>
                    <a:IncomingValue>0.000</a:IncomingValue>
                    <a:NextDeliveryDate i:nil="true"/>
                    <a:LeadtimeDayCount>0</a:LeadtimeDayCount>
                    <a:LastChecked i:nil="true"/>
                    <a:IsActive>true</a:IsActive>
                    <a:IsReturnable>true</a:IsReturnable>
                    <a:Info i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
                </OnHand>
                <OnHandSupplier xmlns:a="Enferno.Services.Contracts.Expose.Products">
                    <a:Value>133.000</a:Value>
                    <a:IncomingValue>0.000</a:IncomingValue>
                    <a:NextDeliveryDate i:nil="true"/>
                    <a:LeadtimeDayCount>5</a:LeadtimeDayCount>
                    <a:LastChecked>2017-02-14T16:19:15.163</a:LastChecked>
                    <a:IsActive>true</a:IsActive>
                    <a:IsReturnable>true</a:IsReturnable>
                    <a:Info i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
                </OnHandSupplier>
                <PriceRecommended i:nil="true"/>
                <ManufacturerId>1685</ManufacturerId>
                <UniqueName>underhallskit-motorsag</UniqueName>
                <StatusId>1</StatusId>
                <StockDisplayBreakPoint i:nil="true"/>
                <PriceCatalog i:nil="true"/>
                <IsBuyable>true</IsBuyable>
                <SubDescription i:nil="true"/>
                <CategoryIdSeed>41722</CategoryIdSeed>
                <RecommendedQuantity>1.000</RecommendedQuantity>
                <IsRecommendedQuantityFixed>false</IsRecommendedQuantityFixed>
                <AppliedPromotions/>
                <RequirementPromotionIdSeed/>
                <IsSubscribable>false</IsSubscribable>
                <DescriptionHeader i:nil="true"/>
                <IsPriceManual>false</IsPriceManual>
                <PriceStandard>0.00</PriceStandard>
                <EanCode>345345345345345</EanCode>
                <CostUnit>0.00</CostUnit>
                <PriceDisplayIncVat>139.00</PriceDisplayIncVat>
            </BasketItem>
        </Items>
        <Info>
            <Info>
                <TypeId>169</TypeId>
                <Value/>
                <Code>bit_expecteddeliverydate</Code>
            </Info>
            <Info>
                <TypeId>293</TypeId>
                <Value/>
                <Code>bit_additionalorderinfo</Code>
            </Info>
            <Info>
                <TypeId>445</TypeId>
                <Value/>
                <Code>Norce_Gender</Code>
            </Info>
            <Info>
                <TypeId>493</TypeId>
                <Value/>
                <Code>recurring</Code>
            </Info>
        </Info>
        <Summary>
            <Items>
                <Amount>5854.40</Amount>
                <Vat>1463.60</Vat>
                <AmountIncVat>7318.00</AmountIncVat>
            </Items>
            <Freigt>
                <Amount>0.00</Amount>
                <Vat>0.00</Vat>
                <AmountIncVat>0.00</AmountIncVat>
            </Freigt>
            <Fees>
                <Amount>0.00</Amount>
                <Vat>0.00</Vat>
                <AmountIncVat>0.00</AmountIncVat>
            </Fees>
            <Total>
                <Amount>5854.40</Amount>
                <Vat>1463.60</Vat>
                <AmountIncVat>7318.00</AmountIncVat>
            </Total>
        </Summary>
        <AppliedPromotions>
            <Promotion>
                <Id>5093</Id>
                <Name>Add service</Name>
                <Header/>
                <ShortDescription/>
                <Description1/>
                <Description2/>
                <StartDate i:nil="true"/>
                <EndDate i:nil="true"/>
                <ImageKey i:nil="true"/>
                <RequirementSeed>3</RequirementSeed>
                <DiscountCode i:nil="true"/>
                <IsExcludedFromPriceCalculation>false</IsExcludedFromPriceCalculation>
                <AllowProductListing>false</AllowProductListing>
                <Images xmlns:a="Enferno.Services.Contracts.Expose"/>
                <ProductFilters>
                    <Filter>
                        <ManufacturerId i:nil="true"/>
                        <CategorySeed i:nil="true"/>
                        <TypeId i:nil="true"/>
                        <ProductId i:nil="true"/>
                        <VariantProductId i:nil="true"/>
                        <PartNo>PRD0001274</PartNo>
                        <PricelistId>1</PricelistId>
                        <FlagId i:nil="true"/>
                    </Filter>
                    <Filter>
                        <ManufacturerId i:nil="true"/>
                        <CategorySeed i:nil="true"/>
                        <TypeId i:nil="true"/>
                        <ProductId i:nil="true"/>
                        <VariantProductId i:nil="true"/>
                        <PartNo i:nil="true"/>
                        <PricelistId i:nil="true"/>
                        <FlagId>1884</FlagId>
                    </Filter>
                </ProductFilters>
                <AppliedAmount>0.00</AppliedAmount>
                <EffectSeed>5</EffectSeed>
                <FreightDiscountPct i:nil="true"/>
                <IsStackable>true</IsStackable>
                <AppliedAmountIncVat>0.00</AppliedAmountIncVat>
            </Promotion>
        </AppliedPromotions>
        <IpAddress>151.236.200.213</IpAddress>
        <AttestedBy i:nil="true"/>
        <TypeId>1</TypeId>
        <DoHold>false</DoHold>
        <IsBuyable>true</IsBuyable>
        <InvoiceReference i:nil="true"/>
        <PaymentMethodId>14</PaymentMethodId>
        <DeliveryMethodId>1</DeliveryMethodId>
        <SalesAreaId>1</SalesAreaId>
    </Basket>
    <Buyer xmlns:a="Enferno.Services.Contracts.Expose.Customers">
        <a:Id i:nil="true"/>
        <a:Key>bf335b15-2bf2-49ef-a1e7-5a0e599e96a4</a:Key>
        <a:Code i:nil="true"/>
        <a:Email>test@test.se</a:Email>
        <a:SSN i:nil="true"/>
        <a:FirstName>TestBuyerName</a:FirstName>
        <a:LastName>TestBuyerLastname</a:LastName>
        <a:Phone i:nil="true"/>
        <a:CellPhone i:nil="true"/>
        <a:ReferId i:nil="true"/>
        <a:ReferUrl i:nil="true"/>
        <a:Account>
            <a:Id i:nil="true"/>
            <a:Key>bf335b15-2bf2-49ef-a1e7-5a0e599e96a4</a:Key>
            <a:LoginName i:nil="true"/>
            <a:Name i:nil="true"/>
            <a:Roles i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
            <a:Authorizations i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
            <a:IsActive>false</a:IsActive>
        </a:Account>
        <a:Companies/>
        <a:DeliveryAddresses/>
        <a:InvoiceAddress i:nil="true"/>
        <a:Flags i:nil="true"/>
        <a:UseInvoiceAddressAsDeliveryAddress>false</a:UseInvoiceAddressAsDeliveryAddress>
        <a:Info i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
        <a:PricelistIds i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
        <a:CrmId i:nil="true"/>
        <a:IsActive i:nil="true"/>
        <a:Created i:nil="true"/>
        <a:Updated i:nil="true"/>
    </Buyer>
    <Payer xmlns:a="Enferno.Services.Contracts.Expose.Customers">
        <a:Id i:nil="true"/>
        <a:Key>5ec95f79-75af-43e6-8036-5d69de968510</a:Key>
        <a:Code i:nil="true"/>
        <a:Email>test@test.se</a:Email>
        <a:SSN i:nil="true"/>
        <a:FirstName>TestBuyerName</a:FirstName>
        <a:LastName>TestBuyerLastname</a:LastName>
        <a:Phone i:nil="true"/>
        <a:CellPhone i:nil="true"/>
        <a:ReferId i:nil="true"/>
        <a:ReferUrl i:nil="true"/>
        <a:Account>
            <a:Id i:nil="true"/>
            <a:Key>5ec95f79-75af-43e6-8036-5d69de968510</a:Key>
            <a:LoginName i:nil="true"/>
            <a:Name i:nil="true"/>
            <a:Roles i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
            <a:Authorizations i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
            <a:IsActive>false</a:IsActive>
        </a:Account>
        <a:Companies/>
        <a:DeliveryAddresses/>
        <a:InvoiceAddress>
            <a:Id>12055560</a:Id>
            <a:CareOf i:nil="true"/>
            <a:Line1>TestInvoicestreet 1</a:Line1>
            <a:Line2 i:nil="true"/>
            <a:Zip>12345</a:Zip>
            <a:City>TestCity</a:City>
            <a:CountryId>1</a:CountryId>
            <a:Country>Sverige</a:Country>
            <a:Region i:nil="true"/>
            <a:IsValidated>false</a:IsValidated>
            <a:GlobalLocationNo i:nil="true"/>
            <a:ShippingPhoneNumber i:nil="true"/>
        </a:InvoiceAddress>
        <a:Flags i:nil="true"/>
        <a:UseInvoiceAddressAsDeliveryAddress>false</a:UseInvoiceAddressAsDeliveryAddress>
        <a:Info i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
        <a:PricelistIds i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
        <a:CrmId i:nil="true"/>
        <a:IsActive i:nil="true"/>
        <a:Created i:nil="true"/>
        <a:Updated i:nil="true"/>
    </Payer>
    <ShipTo xmlns:a="Enferno.Services.Contracts.Expose.Customers">
        <a:Id i:nil="true"/>
        <a:Key>b06fd649-f97d-4e0b-8285-d6a3ca3adf53</a:Key>
        <a:Code i:nil="true"/>
        <a:Email>test@test.se</a:Email>
        <a:SSN i:nil="true"/>
        <a:FirstName>TestBuyerName</a:FirstName>
        <a:LastName>TestBuyerLastname</a:LastName>
        <a:Phone i:nil="true"/>
        <a:CellPhone i:nil="true"/>
        <a:ReferId i:nil="true"/>
        <a:ReferUrl i:nil="true"/>
        <a:Account>
            <a:Id i:nil="true"/>
            <a:Key>b06fd649-f97d-4e0b-8285-d6a3ca3adf53</a:Key>
            <a:LoginName i:nil="true"/>
            <a:Name i:nil="true"/>
            <a:Roles i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
            <a:Authorizations i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
            <a:IsActive>false</a:IsActive>
        </a:Account>
        <a:Companies/>
        <a:DeliveryAddresses>
            <a:Address>
                <a:Id>12055561</a:Id>
                <a:CareOf i:nil="true"/>
                <a:Line1>TestInvoicestreet 1</a:Line1>
                <a:Line2 i:nil="true"/>
                <a:Zip>12345</a:Zip>
                <a:City>TestCity</a:City>
                <a:CountryId>1</a:CountryId>
                <a:Country>Sverige</a:Country>
                <a:Region i:nil="true"/>
                <a:IsValidated>false</a:IsValidated>
                <a:GlobalLocationNo i:nil="true"/>
                <a:ShippingPhoneNumber i:nil="true"/>
            </a:Address>
        </a:DeliveryAddresses>
        <a:InvoiceAddress i:nil="true"/>
        <a:Flags i:nil="true"/>
        <a:UseInvoiceAddressAsDeliveryAddress>false</a:UseInvoiceAddressAsDeliveryAddress>
        <a:Info i:nil="true" xmlns:b="Enferno.Services.Contracts.Expose"/>
        <a:PricelistIds i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
        <a:CrmId i:nil="true"/>
        <a:IsActive i:nil="true"/>
        <a:Created i:nil="true"/>
        <a:Updated i:nil="true"/>
    </ShipTo>
    <PaymentMethods>
        <PaymentMethod>
            <Id>14</Id>
            <Name>Faktura</Name>
            <TypeId>7</TypeId>
            <TypeName>ErpInvoice</TypeName>
            <Description>30 dagars faktura</Description>
            <PartNo i:nil="true"/>
            <Price>0.00</Price>
            <VatRate>1.00</VatRate>
            <ImagePath i:nil="true"/>
            <IsSelected>true</IsSelected>
            <Service>
                <Id>3</Id>
                <Name>No service</Name>
                <Description i:nil="true"/>
                <ImagePath i:nil="true"/>
                <ImageKey i:nil="true"/>
            </Service>
            <ImageKey i:nil="true"/>
            <IsForCompanyOnly>false</IsForCompanyOnly>
            <IsForPersonOnly>false</IsForPersonOnly>
        </PaymentMethod>
        <PaymentMethod>
            <Id>18</Id>
            <Name>Presentkort</Name>
            <TypeId>9</TypeId>
            <TypeName>GiftCertificate</TypeName>
            <Description>Used for giftcards handeled by an ERP or other source outside of Norce Commerce</Description>
            <PartNo i:nil="true"/>
            <Price>0.00</Price>
            <VatRate>1.00</VatRate>
            <ImagePath i:nil="true"/>
            <IsSelected>false</IsSelected>
            <Service>
                <Id>3</Id>
                <Name>No service</Name>
                <Description i:nil="true"/>
                <ImagePath i:nil="true"/>
                <ImageKey i:nil="true"/>
            </Service>
            <ImageKey i:nil="true"/>
            <IsForCompanyOnly>false</IsForCompanyOnly>
            <IsForPersonOnly>false</IsForPersonOnly>
        </PaymentMethod>
        <PaymentMethod>
            <Id>157</Id>
            <Name>Svea Ekonomi</Name>
            <TypeId>19</TypeId>
            <TypeName>Checkout</TypeName>
            <Description>Form checkout payment.</Description>
            <PartNo i:nil="true"/>
            <Price>0.00</Price>
            <VatRate>1.00</VatRate>
            <ImagePath i:nil="true"/>
            <IsSelected>false</IsSelected>
            <Service>
                <Id>19</Id>
                <Name>SveaEkonomi</Name>
                <Description i:nil="true"/>
                <ImagePath i:nil="true"/>
                <ImageKey i:nil="true"/>
            </Service>
            <ImageKey i:nil="true"/>
            <IsForCompanyOnly>false</IsForCompanyOnly>
            <IsForPersonOnly>false</IsForPersonOnly>
        </PaymentMethod>
        <PaymentMethod>
            <Id>162</Id>
            <Name>Adyen checkout</Name>
            <TypeId>19</TypeId>
            <TypeName>Checkout</TypeName>
            <Description>Form checkout payment.</Description>
            <PartNo i:nil="true"/>
            <Price>0.00</Price>
            <VatRate>1.00</VatRate>
            <ImagePath i:nil="true"/>
            <IsSelected>false</IsSelected>
            <Service>
                <Id>27</Id>
                <Name>AdyenV67</Name>
                <Description i:nil="true"/>
                <ImagePath i:nil="true"/>
                <ImageKey i:nil="true"/>
            </Service>
            <ImageKey i:nil="true"/>
            <IsForCompanyOnly>false</IsForCompanyOnly>
            <IsForPersonOnly>false</IsForPersonOnly>
        </PaymentMethod>
        <PaymentMethod>
            <Id>156</Id>
            <Name>Klarna Checkout v3 (Recurrable)</Name>
            <TypeId>19</TypeId>
            <TypeName>Checkout</TypeName>
            <Description>Form checkout payment.</Description>
            <PartNo i:nil="true"/>
            <Price>0.00</Price>
            <VatRate>1.00</VatRate>
            <ImagePath i:nil="true"/>
            <IsSelected>false</IsSelected>
            <Service>
                <Id>18</Id>
                <Name>KlarnaCheckoutV3</Name>
                <Description i:nil="true"/>
                <ImagePath i:nil="true"/>
                <ImageKey i:nil="true"/>
            </Service>
            <ImageKey i:nil="true"/>
            <IsForCompanyOnly>false</IsForCompanyOnly>
            <IsForPersonOnly>false</IsForPersonOnly>
        </PaymentMethod>
        <PaymentMethod>
            <Id>160</Id>
            <Name>Dibs Easy Pay</Name>
            <TypeId>19</TypeId>
            <TypeName>Checkout</TypeName>
            <Description>Form checkout payment.</Description>
            <PartNo i:nil="true"/>
            <Price>0.00</Price>
            <VatRate>1.00</VatRate>
            <ImagePath i:nil="true"/>
            <IsSelected>false</IsSelected>
            <Service>
                <Id>22</Id>
                <Name>DibsEasyCheckout</Name>
                <Description i:nil="true"/>
                <ImagePath i:nil="true"/>
                <ImageKey i:nil="true"/>
            </Service>
            <ImageKey i:nil="true"/>
            <IsForCompanyOnly>false</IsForCompanyOnly>
            <IsForPersonOnly>false</IsForPersonOnly>
        </PaymentMethod>
        <PaymentMethod>
            <Id>166</Id>
            <Name>Walley B2B</Name>
            <TypeId>19</TypeId>
            <TypeName>Checkout</TypeName>
            <Description/>
            <PartNo i:nil="true"/>
            <Price>0.00</Price>
            <VatRate>1.00</VatRate>
            <ImagePath i:nil="true"/>
            <IsSelected>false</IsSelected>
            <Service>
                <Id>24</Id>
                <Name>Collector</Name>
                <Description i:nil="true"/>
                <ImagePath i:nil="true"/>
                <ImageKey i:nil="true"/>
            </Service>
            <ImageKey i:nil="true"/>
            <IsForCompanyOnly>false</IsForCompanyOnly>
            <IsForPersonOnly>false</IsForPersonOnly>
        </PaymentMethod>
    </PaymentMethods>
    <DeliveryMethods>
        <DeliveryMethod>
            <Id>1</Id>
            <Name>DB Schenker Utlämningsställe</Name>
            <TypeId>6</TypeId>
            <TypeName>Utlämning</TypeName>
            <Description>DB Schenker leverans till vald utlämningsställe</Description>
            <PartNo>PRD0001212</PartNo>
            <Price>0.0000</Price>
            <VatRate>1.25</VatRate>
            <IsNotifiable>false</IsNotifiable>
            <ImagePath i:nil="true"/>
            <IsSelected>true</IsSelected>
            <ImageKey i:nil="true"/>
            <IsForCompanyOnly>false</IsForCompanyOnly>
            <IsForPersonOnly>false</IsForPersonOnly>
            <Cost>0.0000</Cost>
            <StoreId i:nil="true"/>
            <WarehouseId i:nil="true"/>
            <LocationId i:nil="true"/>
            <DropPoints/>
            <Code>DBS-UTL</Code>
            <Carrier i:nil="true"/>
        </DeliveryMethod>
        <DeliveryMethod>
            <Id>7</Id>
            <Name>Hempaket kväll</Name>
            <TypeId>1</TypeId>
            <TypeName>Hemleverans</TypeName>
            <Description>Leverans sker hem mellan 17:00 och 22:00.</Description>
            <PartNo>PRD0001212</PartNo>
            <Price>49.0000</Price>
            <VatRate>1.2500</VatRate>
            <IsNotifiable>false</IsNotifiable>
            <ImagePath i:nil="true"/>
            <IsSelected>false</IsSelected>
            <ImageKey i:nil="true"/>
            <IsForCompanyOnly>false</IsForCompanyOnly>
            <IsForPersonOnly>true</IsForPersonOnly>
            <Cost>0.0000</Cost>
            <StoreId i:nil="true"/>
            <WarehouseId i:nil="true"/>
            <LocationId i:nil="true"/>
            <DropPoints/>
            <Code>HEMPK</Code>
            <Carrier i:nil="true"/>
        </DeliveryMethod>
    </DeliveryMethods>
    <Payments/>
</Checkout>

Checkout Data Model Overview

Visual Overview:
The diagram below illustrates the structure of the Checkout object, which is central to the checkout process.
Checkout data model

Key Entities in the Checkout Object

  • Basket: Contains all products/items, prices, fees, and promotions. See Basket guide.
  • Buyer, Payer, ShipTo: Customer objects representing who buys, pays, and receives the order.
  • Payments: List of payments already made (e.g., partial gift card payments).
  • PaymentMethods: List of available payment methods. The selected method has IsSelected: true.
  • DeliveryMethods: List of available shipping methods. The selected method has IsSelected: true.

Note:
The Checkout object is always resolved from Norce Commerce business rules. Any update (e.g., changing shipping) may affect fees, promotions, or available payment methods. Always use the latest Checkout object after any update.

Checkout Update Flow

Visual Overview:
The following diagram shows the recommended update flow for checkout.
Checkout process

  1. Handle the user action in your backend.
  2. Call the Norce Commerce Shopping Service to get the updated Checkout object.
  3. Map the new checkout object to your model and return it to the frontend.
  4. Write the new model to cache (use a short cache time).

For more on update patterns, see the frontend design guide and basket guide.

Required Data for Purchase

To complete a purchase, ensure the following:

  • One selected payment method
  • One selected delivery method
  • Customer information for Buyer, Payer, and ShipTo

Note:
For form-based payments, customer information may be collected by the payment service provider, not Norce Commerce.

Tip:
You can set default values (e.g., PaymentMethodId, DeliveryMethodId) when creating the basket to streamline the checkout process. See Working with Baskets.

Freight fees and Delivery

If you use Norce’s built-in freight framework, select a delivery method during checkout. Norce will automatically add the correct price and information to the basket and order.

You can also integrate with external delivery providers (e.g., NShift, Ingrid) by passing their information to the basket and order.

Purchase and Payment Processes

Norce Commerce supports multiple payment service providers (PSPs), grouped into three main types:

One-Step Payments

The customer completes payment in a single step, typically on the same page (e.g., invoice or pay-later methods).

One-step process Overview:
The following diagram shows the one-step payment process visually. One step payment process

Process:

  • User initiates purchase.
  • Backend calls a purchase method in Norce Commerce.
  • The response (PaymentResponse) contains status and next steps.

Purchase Methods:

  • Purchase: Requires only basket ID.
  • PurchaseEx: Allows overriding payment parameters.
  • PurchaseEx2: Allows passing a full checkout object and payment parameters.

PaymentResponse Fields:

  • Status, StatusDescription: Status details.
  • IsSynchronous: True for one-step payments.
  • OrderNo, PaymentReference, RedirectUrl, RedirectParameters: Order and payment details.

Two-Step Payments

The customer is redirected to a payment window (e.g., card payments).

Two-step process Overview:
The following diagram shows the two-step payment process visually. Two-step process

Process:

  1. Initiate purchase via Norce Commerce.
  2. Receive redirect URL and parameters.
  3. Redirect customer to PSP payment window.
  4. Customer completes payment and is redirected back.
  5. Validate payment using PaymentCallback or PaymentCallback2.

Callback Methods:

  • PaymentCallback: Validates payment and starts order process.
  • PaymentCallback2: Validates payment only.

Note:
Always validate the payment after redirection before showing the confirmation page.

Form-Based Payments

Description:
The payment form is embedded (e.g., in an iframe) on the checkout page. The PSP collects customer information and triggers the purchase.

Process:

  1. Call GetPaymentForm to get form embed information.
  2. Render the form in the UI.
  3. Customer completes payment in the form.
  4. Validate payment using PaymentFormCallback.

Callback Methods:

  • PaymentFormCallback: Validates form payment (does not start order process).
  • Use PaymentCallback if the order should be processed directly.

Order Confirmation

To display an order confirmation page:

  • Call GetOrderRequest to get order details.
  • Call GetCheckout to get the latest checkout object.

For two-step and form payments, pass the confirmation page URL to the PSP using the ShopCallbackUrl parameter.

Tip:
Add the BasketId as a query parameter to the ShopCallbackUrl for reliable confirmation page display.

Confirmation Notifications

Norce Commerce can send order confirmation emails using Sendgrid. Configure this in the Admin UI.
Alternatively, trigger notifications using Norce Commerce Events and look up order information via Norce Commerce Query.

Availability Checks During Checkout

You can check product availability during checkout using:

  • ListProductOnHandByBasket: Returns OnHand info for all basket items.

Note:
Norce does not validate basket availability. Implement your own validation rules as needed.

Payment Capture (Settle)

Some payments require capture (settlement) after order delivery. You can use Norce Commerce’s capture functionality or handle it in your ERP system.

Read more about Payment Capture.

Additional Functionality

Important Payment Parameters

Different PSPs support different parameters. Norce maps common parameters to simplify integration.

Parameter NameUsed InDescription
CountryCode (*)PurchaseEx, PurchaseEx2, GetPaymentFormCountry code for the purchase (ISO-3166-1 ALPHA-2, e.g., "SE", "FI"). Must be configured in Norce Commerce.
CultureCodePurchaseEx, PurchaseEx2, GetPaymentFormLanguage for the PSP UI (ISO 639, e.g., "sv", "de", "sv-SE").
ShopCallbackUrlPurchaseEx, PurchaseEx2, GetPaymentFormURL to redirect the customer after purchase completion (confirmation page).
ShopTermsUrlPurchaseEx, PurchaseEx2, GetPaymentFormURL for merchant terms and conditions.
CheckoutIdGetPaymentFormPSP’s unique checkout ID. Use in callback URLs.
ShopValidationUrlGetPaymentFormURL for Norce to call during validation if you want custom validation logic.
StartNewSessionGetPaymentFormForces a new session at the PSP, clearing persisted data.

Note:
For most PSPs, CountryCode cannot be updated mid-session. To change it, clear the old checkout ID and start a new session using StartNewSession.

Postman Samples

See Checkout samples in Postman.

Payment Adapters

Gift Card Payment Adapters

Further Reading