Developer forum

Forum » Feature requests » Multi shop support in Rapido

Multi shop support in Rapido

Gheorghe Balan
Reply

Hi

I have recently found out that the newest Rapido (v 2.0) does not support a multi - site and multi-shop scenario. 

I have been advised by DW support to create a feature request. 

My customer and I were unaware that this was a custom extension, and this would generate a lot of delays and frustration both for us, and for our end-customer since we have to build not only an index that filters our the shops based on a shop id, but also a menu which supports the same filtering. 

The current .xslt based menu displays all the products on all the shops, regardless of any custom fields in the Lucene index, så the whole .xslt rendering that Rapido ships with has to be dropped and re-built in order to display only the products that belong to a given shop.

It would be a lot easier if Rapido simply did that filtering by itself, or allowed to set which products should be displayed on which site, not only on the "products" page, but also in the menu.

This feature would be highly appreciated, so please consider it for development.

Regards,

Gheorghe


Replies

 
Nicolai Pedersen
Reply

Hi Gheorghe

Well, it is always a great idea to check the feature lists instead of hoping and anticipating: https://doc.dynamicweb.com/rapido/features

A rule of thumb, here and everywhere, is that if it is not explicitly on the feature list, you might want to check if the feature is there before selling it.

Anyways, that said, Rapido does - to the best of my knowledge - support multisite and multishop setup. I think it is a matter of configuration. The navigation XSLT renders whatever you have configured on the website, so I cannot see why that needs to be rewritten. I might be wrong.

So if you describe what you want to achieve, your setup and the problem you have encountered, preferably with screen dumps and maybe even a URL, we might be able to help you sort it out.

Thanks, Nicolai

 
Adrian Ursu Dynamicweb Employee
Adrian Ursu
Reply

Hi Gheorghe,

I confirm it should work. We have started a trial of Rapido with the purpose of demoing exactly this situation, only using a single Shop instead of 2 shops but 2 separate websites (not layers) with 2 languages each.

I admit I have not tried including the Products in the xslt navigation, since that's the only way I would see the products being featured in the XSLT menu, but if the Categories are set correctly in the navigation, it should render anyway only the products of the categories included and not all products from all categories.

Off course, this is the theory and the way it is supposed to work :)

If you encounter something different, it might not be a Rapido specific issue but rather a platform specific issue.

Providing specific details about the problem and how to reproduce it, help me a lot in the past. And it still helps :)

Adrian

 
Gheorghe Balan
Reply

Hi Nicolai

Thank you for the reply and for your thoughts.

Rapido and Dynamicweb can be configured to a certain extent. It is possible to configure the Lucene index for products and the query by adding one field (ShopID), and to filter out the products based on that value, on the product list page only.The navigation is unaware of the shopID field on the products index. It would simply render all the products in the index, or rather their categories, regardless of the shop that is configured.

For this reason the navigation that deals with rendering the product categories has to be re-written, as it is now at least.This set - up will work for one website with one shop, also for more websites with one shop, but not for multiple websites and multiple shops.

The set-up that I made for a client is as follows: one dynamicweb installation with 4 websites (in the content area) and 4 shops (in the e-commerce area).

The 4 url's are: http://testhjj.hjj.dk/, http://testarmadan.hjj.dk/http://testairconteknik.hjj.dk/http://testbkfklima.hjj.dk/

The solution is simply a copy of Rapido v 2.0. 

Refer to case number CAS-05401-B7G3M1 CRM:00760848 for login credentials. 

If you look at it now - it simply renders the same products on every shop in the navigation. If I navigate to the armadan shop for example, and choose a product category (for instance Mountain bikes) it will redirect to the test.hjj.dk. The same behavior is applicable for airkonteknik and bkfklima.

In fact the navigation should be different since each website should only show products from its own shop. 

There are no parameters for the product navigation that allow choosing a data source. 

As far as I saw there are two files that can be used in order to render the product navigation: BaseMegaMenu.xslt, or BaseMenuWithDropdown.xslt. 

I believe that our solution is using the BaseMegaMenu.xslt. As far as I can see the issue could be solved if I had the possilibity of adding a ShopID when calling the xslt template.

Currently the call to .xslt looks like this: 

@RenderNavigation(new
            {
                id = "topnavigation",
                cssclass = "menu dw-mod dwnavigation",
                startLevel = @startLevel,
                ecomStartLevel = @startLevel+1,
                endlevel = 5,
                expandmode="all",
                template = "BaseMenuWithDropdown.xslt"
            });

If I had a ShopID parameter I could just add that from the master layout.

What do you suggest ?

Gheorghe

 

 
Nicolai Pedersen
Reply
This post has been marked as an answer

Hi Gheorghe

The navigation does not render products at all. Only groups - it is true that the product list needs that one extra parameter on the search to be shop context agnostic.

You do not have to change anything in the xslt - just change the shop on the "Products" page.

See dump - right click on the product properties page, choose the "Navigation" button from the options tab. Also refer to the documentation: https://doc.dynamicweb.com/documentation-9/content/content/pages#3241

BR Nicolai

Capture.PNG
Votes for this answer: 1
 
Gheorghe Balan
Reply

That did the trick. Much appreciated. 

Br

Gheorghe