Optimizely Customized Commerce provides two interfaces related to prices:
IPriceService. Used for read-only prices.
PriceDetailService. Used for editing prices.
See examples in the following how to get (list), save, and delete prices.
## List prices
Use IPriceDetailService.List() in the following examples to get price details for a catalog entry. If it is a variant or package, this method returns its own price. If it is a product or a bundle, this method returns prices for its child variants. There are overloads of List() which support filtering and paging, as exemplified below.
### List all prices
Use IPriceDetailService.List(ContentReference) to get price details for an entry.
### List price with paging
Use IPriceDetailService.List(ContentReference, int, int , int) to get price details for an entry with paging.
### List price with PriceFilter
Use IPriceDetailService.List(ContentReference, MarketId, PriceFilter, int, int , int) to get price details for an entry with filtering and paging.
## Save prices
Use IPriceDetailService.Save(IEnumerable<IPriceDetailService>) to add/edit price details. Commerce also provides an extension for IPriceDetailService.Save(IPriceDetailService) to add/edit only one price.
## Delete prices
Use IPriceDetailService.Delete(IEnumerable<long>) to delete price details. You also can use the IPriceDetailService.Delete(long) extension to delete a specific price detail.
The example below illustrates how to delete all prices for an entry.