Jump to content

Recommended Posts

Bonjour,

 

J'utilise la navigation à facettes pour filtrer ma liste de produits (vêtement) avec déclinaisons.

 

Malheureusement le filtre que j'ai mis en place (taille) ne prend pas en compte l'état du stock.

 

Je m'explique :

 

J'ai un filtre "disponibilité" (en stock/pas en stock) et un filtre "taille" (S/M/L/XL/XXL).

 

J'aimerais que lorsque je sélectionne "en stock" et "L", la liste ne contienne que les produits qui possèdent encore en stock une déclinaison taille "L".

 

Hors, ce n'est pas le cas...

 

Des idées ?

 

Merci,

 

David.

Link to comment
Share on other sites

Si je ne dis pas de bêtises, ce module permet de trier et de choisir seulement les éléments/critères renseignés dans ce même bloc. ça doit-être faisable pour un développeur de créer une requête pour renseigner automatiquement un champ disponibilité (à créer en doublon mais en caractéristique) dans la navigation à facettes.

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...

Bonjour,

 

C'est quand même dingue que l'on filtre les déclinaisons et que le stock ne soit pas pris en compte.

J'ai le problème sur mon site de chaussure.

Les clients filtre les tailles, mais les chaussures Hors Stock s'affiche quand même, c'est incompréhensible ?!

 

Peut être qu'une personne aurait trouvé une solution ?

 

A+

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

Je rencontre actuellement ce problème.

 

Je pense que le filtre prend en compte la disponibilité de la déclinaison par défaut du produit.

 

On a une paire de chaussures :

  • Taille 38. 10 en stock (Par défaut)
  • Taille 40 : indisponible

 

Si l'on applique les filtre de la manière suivante :

  • Taille 40
  • En stock

Le produit est affiché dans la recherche alors qu'il n'est pas en stock.

 

Ce qui est bizarre c'est que j'ai déjà vu un site Prestashop fonctionnelle avec cette option.

 

Si quelqu'un a une idée ...

 

Merci d'avance

Link to comment
Share on other sites

  • 2 years later...
  • 9 months later...
  • 3 months later...

Bonjour, 

 

SOLUTION -> Prestashop > 1.6.1

 

Fonctionnel sur ce lien : http://www.lamaisondekimmi.com/31-t-shirts-tops-fille

 

Regardez dans le fichier  modules/blocklayered/blocklayered.php

 

le code ajouter se trouve sur les lignes commençant par /*Here*/

 

Méthode : getProductByFilters

ligne 1838 : Foreach

 

foreach ($sub_queries as $sub_query)
{ //TODO Stock availabilty
$query_filters_where .= ' AND p.id_product IN (SELECT pa.`id_product`
FROM `'._DB_PREFIX_.'product_attribute_combination` pac
LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa
/* Here -> */ LEFT JOIN `'._DB_PREFIX_.'stock_available` sa ON (sa.id_product_attribute = pa.id_product_attribute)
ON (pa.`id_product_attribute` = pac.`id_product_attribute`)'.
Shop::addSqlAssociation('product_attribute', 'pa').'
/* Here -> */ WHERE sa.quantity > 0 AND '.implode(' OR ', $sub_query).') ';
}

 

Pour l'indicateur de stock disponible entre ()

Méthode : indexAttribute 

ligne 870 : 

 

 

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').'
/* Here -> */ LEFT JOIN `'._DB_PREFIX_.'stock_available` sa ON (sa.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).'
/* Here -> */  WHERE sa.quantity > 0
GROUP BY a.id_attribute, pa.id_product , product_attribute_shop.`id_shop`'
);

Edited by DigitalCommerce (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

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...