Update the customer statistic
The customer statistic must be updated either when a new order is made/paid or when an order is deleted. When deleting an order using the DeleteOrder method of the OrdersManager instance, the statistic is automatically updated. When creating an order through the API you have to manually update the statistic. Depending on your logic you can execute the code below when creating an order or when setting its status to Paid.
NOTE: The code example below updates not only the customer statistic, but the customer money as well.
To update the customer statistic, when an order is created, you must perform the following:
- Get an instance of the manager.
Get an instance of the OrdersManager object.
- Get the specified customer.
Get an instance of the customer. For more information, read For developers: Query customers.
- Get the specified order.
Get an instance of the specified order. For more information, see For developers: Query orders.
- Create an instance of the CustomerStatisticUpdater class.
The CustomerStatisticUpdater class exposes a method that handles the updating of the customer statistic.
- Update the customer statistic.
To update the customer statistic, call the UpdateCustomerOrderStatistics method and pass the instances of the customer and the order as arguments. If no customer statistic exists for the customer, the method will create one internally. Note that this method will update the customer money as well. Also, you do not have to call the SaveChanges method of the manager, because it is called internally by the CustomerStatisticUpdater.
NOTE: In case you delete an Order in a way different than using the DeleteOrder method of the manager, you must manually update the statistic. In this case use the UpdateCustomerOrderStatisticsAfterDeleteOrder method of the CustomerStatisticUpdater class. Like the other method, this one also updates the customer money as well.
Use the following code sample: