We are currently using Epi Server 7.5 with the latest version of Epi Server Commerce system.
Epi Server Commerce catalogue is quite flexible.
There are features like bundles and packages which are quite useful for us.
But we have some complicated scenarios that aren't in the scope of the basic Epi Server Commerce functionalities.
We need to extend the basic products and product's variations with a collection of attributes.(e.g. a specific product variant must have a collection of summaries)
We also need to define some specific entries in the catalogue which must represents real life entities like an album or an artist.
That's why we are going to extend the basic Commerce catalogue with Meta Data Plus engine or/and Business Foundation Framework.
We went through Epi Server Commerce documentation but we are still not sure what is the best way to do it.
As far as we understand BFF is more powerful but if we use it then we will lose some features like products caching and lucene search.
Also Meta Data Plus engine is the default way for extending the catalogue.
That's why I want to ask you several questions on Epi Server Commerce Catalogue:
1) How is Commerce Catalogue supposed to be extended with a collection of attributes?
(e.g. when there is a product variation with a collection of attributes. In this case we have 1:N relationship between the product's variation and its additional attributes)
2)What about a collection of complex attributes?
Let's say that we have a product's variation that has a list of summaries and every summary contains 3 or 4 fields.
3) Is Meta Data Plus engine the recommended way for extending Epi Server Commerce Catalogue.
4) If we want to use BFF then how difficult will be to import/export data in/from the catalogue?
We have more than 250 million products in our catalogue and we aren't sure how easy will be to import/export data with BFF.
Maybe in that case we will need some kind of a custom implementation.
5)What about caching with BFF? Do you think that is very difficult to be implemented?
Is there any workaround here?
6)We want to create some custom product category types like artists. What is the best way to do it with Epi Server Commerce system?
7)In some scenarios we need to extend a product's variation with an attribute which is restricted to a specific set of values.
(e.g. every product's variation has a rating which is a value from 1 to 5. We want these values(from 1 to 5) to appear as a dropdown(or similar UI component) in the commerce catalogue so the administrator to be restricted to select one of these values. Is is possible to be done?
Thanks for the help,
A lot of interresting questions, that we have also been discussing. However I don't think your requirements are as complex as yours.
I'm also pretty new to EPiServer, so I can't answer your questions, but I can give you some input on some of our thoughts.
First of all, you specify a Metaclass on your product or variant. This Metaclass contains a list of Metafields. These Metafields contain the values that are relevant for you product. We have found a Metafield that is calle Dictionary. This looks like a key/value pair list that you can create on your product. Will this solve some of your problems? If the Dictionary is enough, you may not even need to extend the product datamodel, just use the build-in mechanism for specifying properties on a product.
Take a look at the possible Metafield types, and see if they fit your needs.
What we have been looking at, is extinding the Metafield definition itself. We want to specify more properties on a Metafield than the properties already available. An example is a "FacetType" property that we would like to specify. Say we have a metafield called Brand. Which kind of facet should we generate for this meteafield? I know that there is a configuration file that can handle some of this, but the current configuration file is too limited to our needs, and why not add the properties directly to the Metafield specification. The Metafield specification has an Attributes collection that you can modify by code. So by code we can specify the FacetType as an attribute. If you also need to modify the metafield and metaclass specification, you can also take a look at the Attribute collection. We haven't found a way to make the attributes appear on the Commerce Manager GUI, but we are still looking into this.
I hope that some of my comments may be of help to you.