Sitecore Commerce caching

You can configure Sitecore Commerce caching to optimize system performance. Sitecore Commerce uses the core libraries of the Sitecore caching framework and Entity Memory Caching.

You can define a cache store for each Commerce Environment. This allows caching to be cleared for a specific environment without affecting others. Cache stores are instantiated when the environment starts up. The cache store for an environment includes the following caches:

  • EntityCache - caches loaded Commerce Entities
  • SitecoreItemsByPath - caches a call to Sitecore to retrieve all the items in a particular path
  • ItemModel- caches loading of the ItemModel
  • LocalizedMessages – caches the loading of localized messaging from Sitecore Items in the Control Panel
  • PaymentOptions - caches the list of Payment Options from the Control Panel
  • FulfillmentOptions - caches the list of Fulfillment Options from the Control Panel
  • CsProducts - caches Commerce Server products
  • CatalogsDataSet - caches the Catalogs dataset from Commerce Server
  • ProductCatalog - caches the ProductCatalog from Commerce Server
  • ViewTerms - caches the ViewTerms from the Control Panel
  • PolicySet - caches any PolicySets that are loaded
  • CommerceServerObjects – caches any loaded Commerce Server objects
  • CommerceTerms - caches CommerceTerms from the Control Panel
  • Promotions.All - caches loaded Promotions, if this cache is enabled
  • Customer.All - caches loaded Customers, if this cache is enabled
Caching is administered using the CommerceOps API. API actions call GetCacheStoresCommand which in turn calls GetCacheStoresPipeline. API actions on cache stores include:
  • Get Cache Stores - retrieves a list of all instantiated cache stores. For example (GET): http://{{ServiceHost}}/{{OpsApi}}/GetCacheStores()
  • Get Cache Store – retrieves a specified cache store. For example (GET):

    http://{{ServiceHost}}/{{OpsApi}}/GetCacheStore(name='{{CacheStoreName}}')
    Clear Cache Store – clears a specified cache store. Example (PUT):
    http://{{ServiceHost}}/{{OpsApi}}/ClearCacheStore()
    Body:
    {
      "cacheStoreName": "{{CacheStoreName}}"
    }

Entity memory caching

Entity Memory Caching adds the ability to cache entities in memory. For any given entity in the system, caching policies define whether an entity can be cached in memory, its caching priority, and its caching expiration.

Property Type Description Default Required
EntityFullName string The fully qualified name of the entity "" Y
AllowCaching bool Whether the entity may be cached in memory True N
Priority string The priority for the entity in the cache (Normal/High) Normal N
Expiration long Time until the entity expires from the cache (milliseconds) 60000 N