Jump to content

Layered navigation block - Multistore Setup instruction please?


Recommended Posts

Hi

 

Does anyone out there have a comprehensive 'how to' instructions to set up the "Layered navigation block" on a multistore.. having real issues with it not acting the same on all stores (we have x4 stores x 4 currencies)

 

Works OK on the default store, but then on other stores 'prices slider' missing and sub categories not showing..

 

Any pointers on set up much appreciated, sort of running out of ideas here..  :wacko:

 

Thanks in advance.. 

 

NickC

Edited by Teapot Creative (see edit history)
Link to comment
Share on other sites

  • 1 month later...
  • 4 months later...

Hi

 

The  price slider does not work for Multi-Store with Multiple Currencies. (Our current  stores: x4 stores x4 currencies)

 

We have tried to create templates for each store including the Price slider option, but it does not show in all stores. We have re-indexed missing prices and all other indexing option, but still the prices filter does not work. Although it does work for ll other filter options.

 

Nick

Link to comment
Share on other sites

  • 1 month later...
  • 2 years later...

Try the following from here

 


Okay I have found a quick workaround for this issue.

 

Edit file modules/blocklayered/blocklayered.php

 

Go to the line 881 and replace

Db::getInstance()->execute('
INSERT INTO `'._DB_PREFIX_.'layered_product_attribute` (`id_attribute`, `id_product`, `id_attribute_group`, `id_shop`)
SELECT pac.id_attribute, pa.id_product, ag.id_attribute_group, product_attribute_shop.`id_shop`
FROM '._DB_PREFIX_.'product_attribute pa'.
Shop::addSqlAssociation('product_attribute', 'pa').'
INNER JOIN '._DB_PREFIX_.'product_attribute_combination pac ON pac.id_product_attribute = pa.id_product_attribute
INNER JOIN '._DB_PREFIX_.'attribute a ON (a.id_attribute = pac.id_attribute)
INNER JOIN '._DB_PREFIX_.'attribute_group ag ON ag.id_attribute_group = a.id_attribute_group
'.(is_null($id_product) ? '' : 'AND pa.id_product = '.(int)$id_product).'
GROUP BY a.id_attribute, pa.id_product , product_attribute_shop.`id_shop`'
);

with

Db::getInstance()->execute('
            INSERT INTO `'._DB_PREFIX_.'layered_product_attribute` (`id_attribute`, `id_product`, `id_attribute_group`, `id_shop`)
            SELECT pac.id_attribute, pa.id_product, ag.id_attribute_group, pas.id_shop
            FROM '._DB_PREFIX_.'product_attribute pa
            INNER JOIN '._DB_PREFIX_.'product_attribute_shop pas ON pas.id_product_attribute = pa.id_product_attribute
            INNER JOIN '._DB_PREFIX_.'product_attribute_combination pac ON pac.id_product_attribute = pa.id_product_attribute
            INNER JOIN '._DB_PREFIX_.'attribute a ON (a.id_attribute = pac.id_attribute)
            INNER JOIN '._DB_PREFIX_.'attribute_group ag ON ag.id_attribute_group = a.id_attribute_group
            '.(is_null($id_product) ? '' : 'AND pa.id_product = '.(int)$id_product).'
            GROUP BY a.id_attribute, pa.id_product, pas.id_shop'
        );

I'll try to send a pull request to developers because I don't like "hardcoding" like this  :)

 

Link to comment
Share on other sites

  • 2 months later...

There is a problem with the indexing of prices in a multistore, multi currency setup - it indexes all prices across all stores as the default currency of the default store, instead of setting each store currency appropriately. Any tips on how to fix this?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...