How much do you allow Sitecore (or other CMS) to manage?

I am wondering how much content you usually need to allow CMS to manage, in particular for user generated content. I think specifically about Sitecore, since I have an upcoming project that will be written with it, but this can be applied to any CMS.

Let's say you had a typical e-commerce site with products for sale, and users could leave reviews for these products, as well as buy products that create orders on the site.

I get the impression by looking at the Sitecore documentation and on the web that you can use Sitecore to manage every piece of content. Each product is its own element in Sitecore, but every time a user submits a review, it creates a review element under this product. When a user makes a purchase, he creates an order item in the content tree.

It seemed pretty awful to me at first. I would just think that you would use CMS for driver content. I could understand that you have products if you need to, but I would put everything else in separte RDb, which is linked to Sitecore through the product identifier. This works more, but right, if everything was hosted on Sitecore, could you have performance issues?

On the other hand, if everything was placed inside your CMS, you would not need to have an additional data layer, and you could probably use the built-in caching of your CMS. It would be much easier to allow your editors to approve or reject reviews, as they could simply manage all this through the Sitecore administrator, rather than create a custom page for him.

Have you worked on sites that have always done this in one direction, or have you tried both? How successfully did you find them?

+4
source share
3 answers

I have not used sitecore, but my answer is based on experience from umbraco and EpiServer.

I tried both and in principle, it depends. If you need to request this data a lot - it must go to the user database, because the databases behind most CMS are abstract and difficult to query, since you will be a standard database. You will find that you write a lot of code templates to circumvent restrictions such as losing input, empty values, etc. This is due to the way the types / pages of the CMS document are defined by the user, i.e. custom properties. However, along this path, you will need to create an administration tool for this user data, which may or may not be integrated into your CMS server. So you need to weigh the options here.

Some CMS offerings (such as EpiServer) allow you to manage custom data sources from within using a provider model to represent relational or other data (XML, web service invocation) as if they were pages in a CMS.

These are your main considerations, it's up to you what exactly is on your specific project.

+3
source

I used Sitecore CMS and did some work with Sitecore Ecommerce Basics . If you intend to create an e-commerce site with Sitecore, you will want to use the Basics of E-Commerce as a built-in e-commerce structure on Sitecore. Products, prices, delivery options, payments are made in the Sitecore content tree. If you want to add customer reviews, you can expand Sitecore templates to handle this, or you can connect an external database, as you mentioned, and link them using the Sitecore GUID. You can manage as much as you want in Sitecore, so itโ€™s a matter of knowing the size of your site and the expectations that you manage. Will you have several products or hundreds? How many reviews do you expect? A few tons? Sitecore has a problem with the efficiency of working with information that when more than 100 immediate children are present in an element (I think that comment elements are under the product), Sitecore works less efficiently for this element. I recommended that you submit information about your site to the SDN forum and receive direct feedback from Sitecore certified developers.

+1
source

The sites I worked with usually use a combination.

Those. for a commercial site, I probably have all the products, categories, etc. in Sitecore. But then when things like comments, ratings, reviews, etc., are part of a separate database attached to an element. This usually makes sense when you have a lot of data, which will make the content tree in Sitecore too large for it to work correctly (i.e. you will need to create code to automatically split it into subfolders or other tricks).

I find that the biggest problem with the Sitecore data structure is that it can sometimes be too attached to the tree structure in which it resides. And some of the data is not suitable for a tree structure. If this happens, I would like to use something other than Sitecore for its structure and storage.

And from cc, if a structure starts to become too complex or illogical to work with, it could be a sign that something else needs to be used.

But all that Sitecore said is great for some data structures. Like typical web page content, structured as pages and snippets. I.e. elements that do not fit into the normal structure of the website, but somewhere else link to regular pages. For example, if there are several common โ€œcontent boxesโ€ that can be used on multiple pages, but should be selected by the content authors, using these external elements may be a good solution.

+1
source

All Articles