Create discounts for orders
To create an order discount, you must perform the following:
- Get the orders manager.
Get an instance of the OrdersManager object.
- Get the order.
Get the order that the discount will be associated with. For more information, see For developers: Query orders.
- Get the parent discount.
Get an instance of the discount that will be applied to the order.
- Create a new order discount.
Create an instance of the OrderDiscount class by calling the CreateOrderDiscount method of the manager.
- Set the properties.
Set the properties of the OrderDiscount instance to the respective properties of the Discount instance.
- Set the savings amount.
To calculate the savings amount for the order discount, you must perform the following:
- Calculate the total discount of the order at this moment.
To calculate the total discount, sum the values of the SavingsAmount properties of the already added order discounts.
- Calculate the savings amount for the current order discount.
To calculate it, call the CalculateDiscountAmount static method of the DiscountCalculator class. As arguments pass the Discount instance and the difference between the sub total of the order and the total discount at the moment.
- Associate the order discount with the discount.
Set the ParentDiscount property of the OrderDiscount instance to the Discount instance.
- Associate the order discount with the order.
Set the ParentOrder property of the OrderDiscount instance to the Order instance. Add the order discount to the Discounts collection of the order.
- Update the total discount.
Update the value of the DiscountTotal property of the Order instance. To do this, use the values calculated while setting the SavingsAmount value of the OrderDiscount instance.
- Save the changes.
Save the changes to the manager.
Use the following code sample: