Magento obtenir tous les produits
Je suis en train d'essayer d'obtenir l'ensemble magento collection de produits, sans filtres ou des restrictions, mais je n'arrive pas à obtenir tous les produits.
J'ai essayé diverses méthodes déjà, mais ils ont tous de me donner une sélection très limitée de produits. Disons que le magasin contient de 5000 produits, mais il ne montre que de 500. Quand je vérifie le catalogue -> produits ne me montrer l'ensemble de la liste.
Mage::getModel('catalog/product')->getCollection();
Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('*');
Mage::getModel("catalog/product")->getResourceCollection()->load();
Tous de retour pour le même montant (500), même si je m'attends à me donner de 5000 produits. Je préfère ne pas utiliser Zend ou PHP et il suffit de coller à l'Magento façon de les obtenir.
Personne ne sait comment faire pour vraiment obtenir TOUS les produits ou peut me pointer dans la bonne direction, pourquoi ce n'est pas de travail?
Le select-string qui est renvoyée est:
SELECT 1 AS `status`, `e`.`entity_id`, `e`.`type_id`, `e`.`attribute_set_id` FROM `catalog_product_flat_4` AS `e`
En fait, ils ne sont pas tous... Quand je vais faire un catalogue de produits, et je filtre en magasin j'ai encore plus de produits (disons 3000). Si j'en outre un filtre sur activé/désactivé, il me donne 10 produits de la 500 retourné. Donc j'ai encore le "miss" de 10 produits, même lorsque ces filtres sont définis par défaut.
Récupérer la requête de base de données avec
echo (string) Mage::getModel('catalog/product')->getCollection()->getSelect();
et l'ajouter à votre question, qui pourrait aider les choses.J'ai ajouté l'sélectionnez la chaîne à la question relative à votre demande.
Dans lequel stocker le contexte est cette course?
OriginalL'auteur JNDPNT | 2012-01-16
Vous devez vous connecter pour publier un commentaire.
Plusieurs possibilités ici:
1. Intérieure de limitation, comme 500.
2. Certains d'échange limitation. Produits par page(en db résumé)
3. Certains lazyload limitation.
Peut-être, il y a certains plus de problème, mais je pense que c'est une limite intérieure.
OriginalL'auteur Jevgeni Smirnov
OriginalL'auteur ashraf mohammed
Et quelque chose comme ceci:
Avec cette méthode, j'obtiens plus de 500, mais tous mes produits...
N'est-il pas une mauvaise pratique de
load()
l'intérieur d'une boucle?J'ai du mal à répondre parce que je n'ai pas touché à Magento depuis plus de 1 an. sinon, comment voulez-vous faire? Peut-être vous pourriez recueillir tous les id et ensuite de demander pour cette id mais je ne me souviens pas si c'est possible. J'ai été en utilisant cette boucle pour un script interne, de sorte que les performances question n'est pas important dans mon cas.
OriginalL'auteur Alexandre
Éteignez votre flat_catalog_product dans l'admin > système > configuration > catalogue > catalogue. Après cela, vous allez obtenir un produit collection. Même si c'est une solution de contournement, il m'a aidé à réaliser ce dont j'avais besoin pour atteindre.
OriginalL'auteur Joey Gomes
Vous utilisez peut-être à Plat Catalogue de la Structure du Produit . Cette create table séparée pour chaque magasin.
Utilisez le Code ci-dessous pour imprimer requête sql . vous allez voir la collection est venue de table à plat comme
OriginalL'auteur Santosh kumar