Comment obtenir dans prestashop produits filtrés par son attribut
Je n'ai aucune expérience dans prestashop.
Je vais essayer d'obtenir tous les produits qui correspond à une certaine valeur de son attribut.
[modifier]
Maintenant, je reçois tous les produits en utilisant Product::getProducts
. Après que je filtre matrice de résultats par array_filter. Je m'interroge sur la méthode pour récupérer filtrée directement les produits, où le filtrage est fait dans la base de données. Par exemple. passage d'une fonction ou d'un filtre chaîne comme
Product::getProductsBy( 'product_id > 10')
- Votre question est un peu vague. Voulez-vous à la liste, par exemple, tous les produits qui ont un attribut "couleur" avec la valeur "bleu" comme une option disponible?
- Maintenant, je reçois tous les produits en utilisant
Product::getProducts
. Après que je filtre matrice de résultats pararray_filter
. Je m'interroge sur la méthode pour récupérer filtrée directement les produits, où le filtrage est fait dans la base de données. Par exemple. passage d'une fonction de filtre ou un filtre chaîne . Produit::getProductsByFilter( 'product_id >10' ) - bonjour monsieur, je sais que c'est une vieille question, mais j'ai un problème merci de m'aider j'ai évoqué dans le commentaire ci-dessous votre réponse.
Vous devez vous connecter pour publier un commentaire.
La réponse courte est que non il n'y a pas quelque chose de construit dans qui peut faire cela, cependant, SI je comprends correctement, alors vous voulez une liste de produits qui ont une valeur d'attribut dans un format adapté à la sortie à l'aide de la liste des produits le thème de modèle.
Je vais supposer que vous démarrez à partir d'une liste déroulante de valeurs d'attribut au sein d'un groupe et en tant que tel, nous pouvons ignorer attribut groupement complètement. Par exemple, vous pouvez avoir un groupe d'attribut "Taille" (
id_attribute_group = 1
) avec sélection de valeurs de "M" et "L", ces derniers correspondant à des entrées dans leXX_attribute
table.Dans le XX_attribute table vous aurait
Dans le XX_attribute_lang table vous aurait
En supposant que vous ne vous souciez pas des catégories etc. - pour obtenir tous les produits disponible en taille "L" vous pourriez alors il suffit d'utiliser un simple requête telle que:
Vous avez alors à bascially reproduire la fonctionnalité utilisée en interne par Prestashop pour récupérer les détails du produit pour un tableau de product_ids obtenu ci-dessus pour passer à la fiche produit du modèle. Que de l'id de produit à cette étape est probablement la meilleure approche, car vous avez besoin de post-traiter les données du produit de toute façon pour la langue, la monnaie, impôts etc.
Pour obtenir le produit détaillée des données d'un tableau d'identifiants construit à partir de ci-dessus ou similaires requête de filtrage (par exemple stockées dans un tableau appelé
$product_ids
) que vous avez à faire quelque chose comme:Évidemment, je l'ai utilisé EN() pour filtrer les résultats de notre gamme de produits, qui pour un grand nombre de produits va devenir difficile, mais il donne l'idée générale! Un autre problème est que la requête ci-dessus est assez bien sorti d'une fonction similaire ailleurs dans Prestashop (toutes mes excuses si j'ai mal édité, n'importe où!) et en tant que tel peut se briser sur la mise à niveau....
Comme Paul l'a mentionné ci-dessus, votre question est très vague et peut être difficile à répondre correctement, sans information supplémentaire. Cependant, je vais essayer de proposer quelques solutions possibles:
Si vous êtes à la recherche pour l'achat d'un produit spécifique, tel qu'un iPod, avec des options pour la couleur et la taille, vous pouvez le faire en utilisant les Attributs & onglet Groupes et les Combinaisons de Générateur dans votre Catalogue.
Si vous êtes à la recherche pour affiner une liste de produits basés sur des paramètres tels que le prix, les caractéristiques, la couleur, etc. (pensez à comment vous magasinez sur Amazon.com, par exemple), vous pouvez configurer ceci en utilisant le haut-Layered Navigation module.
Si ni l'un ni l'adresse de votre question, s'il vous plaît poster des informations supplémentaires pour nous aider à mieux comprendre ce que vous demandez.
Source: je suis PrestaShop Community Manager du