Puis-je ajouter d'autres attributs de magento plat catalogue de produits table?
Je suis dans le processus d'optimisation de boutique magento, et j'ai couru à travers un couple de messages que vous recommandons d'utiliser la Plate Catalogue de Produits pour les magasins avec une grande quantité de Références.
Que j'ai plus de 10K produits que j'ai pensé que je lui donnerais un essai. Cependant, lors de l'utilisation de la Plate Catalogue de Produits seulement quelques attributs sont chargés dans l'objet produit (par exemple, gestion des stocks, le nom, la description courte). Et mon modèle s'affiche quelques autres attributs dans la recherche, la navigation, affichage, tel que Fabricant et de la Couleur.
Est-il un moyen d'ajouter ces attributs à la télévision catalogue de produits de la table, alors ils peuvent aussi être consulté?
Vous devez vous connecter pour publier un commentaire.
1.4.x.x, il suffit d'aller dans les attributs que vous souhaitez être utilisé dans le "Plat Catalogue de Produits" et assurez-vous que la propriété "Utilisé dans la fiche Produit" est fixé à Oui. Après avoir apporté des modifications, réindexer "à Plat des Données de Produit"
Les propriétés suivantes cause de l'attribut à être inclus dans le "Plat Catalogue de Produits":
J'ai ce problème aussi, que je définirais comme "ne peut pas accéder à la collection de produits de l'attribut de mode plat" ou "addAttributeToSelect ne fonctionne pas en mode plat".
J'ai trouvé un "propre" solution:
Veuillez noter que dans le code ci-dessous j'ai utilisé le produit associé de la collection, mais cela s'applique à tout produit collection (plus précisément, rien à hériter de
Mage_Eav_Model_Entity_Collection_Abstract
)À défaut de code:
En mode plat, le code ci-dessus en silence ne parvient pas à ajouter l'attribut si il arrive de ne pas être dans le plat de table.
Code de travail:
La
joinAttribute
méthode ajoute une jointure à la requête. Il fonctionne même si cela duplique un attribut qui est déjà dans la table à plat.Notez que j'ai utilisé un
left
rejoindre là-bas, pour s'assurer qu'il récupère les produits simy_custom_attribute
n'est pas défini sur ces produits. Vous pouvez le changer pourinner
si vous êtes seulement intéressés dans les lignes oùmy_custom_attribute
est réglé.(testé dans CE 1.6.2.0)
Les autres ont habituellement une réponse suffisante (paramètre Utilisé Dans la Liste des Produits pour Oui), mais j'ai trouvé un cas limite qui aurait été utile de savoir quand j'étais à la recherche de la même chose.
Si vous êtes en utilisant un custom modèle de source pour l'attribut personnalisé que vous souhaitez inclure dans le plat de table produit, vous devrez remplacer
getFlatColums()
dans le source de la classe du modèle. Oui, je sais que c'est mal orthographié, mais originaire de Magento pour vous.Échantillon:
Source: http://www.dconstructing.com/2012/03/14/custom-product-attributes-and-flat-database-tables-in-magento
Si vous souhaitez faire usage d'un attribut dans un module tout en utilisant le plat de table produit (filtre une collection de produits par exemple), vous pouvez l'ajouter à un module Module_File.xml