Adding donations to purchases

This guide describes how to add donations to the purchases as order rows, so that the chosen donation is added to the payment.

1. Add the Donation product type to your client

First, you need to create products specific for donations. This type lets you create products that are not fees and not used in Norce Commerce’s business rules for physical products, like reservation for example. These products are also not included in Norce’s billing reports.

  1. Under Products → Settings → Product types , add Donations as a new product type.
  2. (optional) Rename or Change description of the type.

Add product type 1 Add product type 2

2. Create a product flag or category

Next, you need to put your donation products somewhere in your catalog where they easily can be fetched. We suggest to add a product flag to make it easy to list them all later using the API. A separate category might also be good to make sure that they are not shown on other listings.

  1. Create new flag under Products → Flags .
  2. Create a new category under Categories .
    1. Set var rates based on each markets tax rules for donations.

Flag

Category

3. Create donation products

Donation products are much the same as ordinary products, but with the type = Donation. Set price based on your suggested donation amount. Add some content, like texts, image, etc.

  1. Create product
    1. Manufacturer could be yourself
    2. Status could be “hidden”
    3. Add onhand row, but set it to 0
    4. Add a price and make sure the product is included in the market price lists you want show it in.

Product

Onhand

Price

4. Create donation products as variants or lists

It is easy to create lists of donations or choices, by using different products for different receivers of the donations and different variants for different amounts.

  1. Add variants for same product with different amounts.
  2. Add many products all with the same flag.

Price

5. Implement the Checkout flow

Then, its time to implement the donation buttons in the front end.

You can use the donation products as is, with your sale prices from Norce, or you can easily implement a “add your own amount” by using manual price.

  1. Call ListProduct2 with your Product flag as parameter and display the list in the checkout or basket summary page.
  2. Call InsertBasketItem when the user clicks on the button for the donation.

Use Manual price in the basket to set your own amount.

Get the donations /api/1.1/ProductService.svc/rest/ListProducts2?categorySeed=xxx&flagseed=yyy

Add the donations to the cart /api/1.1/ShoppingService.svc/rest/InserBasketItem?basketid=xxx

With the body

SimpleCustom set amount
Copy
Copied
{
    "PartNo": "D1000017",
    "Quantity": 1,
    "Comment": "This is a donation with pre-set amount on the pricelist",
    "PriceListId": 1
}
Copy
Copied
{
    "PartNo": "D1000017",
    "Quantity": 1,
    "Comment": "This is a donation with custom amount",
    "PriceListId": 1,
    "Price": 50.00,
    "IsPriceManual": true
}

6. Payment and order

The payment and order flow works in a normal way, but make sure that the ERP system receives the donation type of products correctly on the order.

Donation order line has the donation type.

Copy
Copied
... Details removed
{
     "LineNo": "1",
     "ParentLineNo": null,
     "Type": "Donation",
     "TypeGroup": "AddedFee",
     "PartNo": "D1000017",
     "ErpPartNo": "D1000017",
     "InternalProductId": "38342592",
     "Description": "Help for Ukraine",
     "Quantity": "1",
     "UnitOfMeasure": null,
     "UnitPrice": "213.00",
     "UnitPriceOriginal": "213.00",
     "Discount": "0.00",
     "UnitVat": "0.00",
     "PriceListNo": "1",
     "VatRate": "0.00",
     "Comment": "This is a donation",
     "AdditionalInfo": null
}
... Details removed