Magento - addStoreFilter pas de travail?

Lors de l'obtention d'une collection de produits dans Magento, j'attendrais la StoreFilter de le faire, le filtre par la banque actuelle. Mais je ne peux pas le faire fonctionner.

Dire que j'ai 2 magasins de jeu: Magento - addStoreFilter pas de travail?

Et les deux magasins ont une racine différente catégorie. Magasin principal est la valeur par défaut des données de l'échantillon, Store2 a juste un produit que j'ai ajouté. J'aurais pensé qu'en utilisant le magasin de filtre, seuls les produits relevant de la catégorie de base de la banque actuelle serait en place. Mais je suis tout le produit de l'affichage. Je suis en essais en plaçant les éléments suivants dans ma catégorie modèle de vue:

$store_id = Mage::app()->getStore()->getId();
$_testproductCollection = Mage::getResourceModel('reports/product_collection')
->setStoreId($storeId)
->addStoreFilter($store_id)
->addAttributeToSelect('*');
$_testproductCollection->load();
foreach($_testproductCollection as $_testproduct){ 
echo $this->htmlEscape($_testproduct->getName()); 
};

Si je l'écho de l'ID de magasin, c'est de me donner le nombre exact. J'ai un seul produit en Magasin 2, alors pourquoi suis-je tout le produit de tous les magasins retourné? Je peux mettre tous les produits en Magasin Principal de ne pas afficher dans Store2, puis ajouter une visibilité filtre, mais cela prendrait une éternité.

Aussi, je viens de remarquer, si je reprends le magasin de produits ID, je reçois le courant ID, pas le magasin il est attribué à:

echo $_testproduct->getStoreId()

Ce qu'il se passe?

Mise à JOUR (8 avril 2011):
OK, donc j'ai essayé de rejoindre les champs de sorte que le store_id est inclus (comme suggéré ci-dessous), la section de code {{table}}.store_id = 1 est juste le réglage de tous les produits ont une store_id de 1. Comment puis-je obtenir le store_id associé avec le produit?

$_testproductCollection = Mage::getResourceModel('catalog/product_collection');
$_testproductCollection->joinField('store_id', 'catalog_category_product_index', 'store_id', 'product_id=entity_id', '{{table}}.store_id = 1', 'left');
$_testproductCollection->getSelect()->distinct(true);
$_testproductCollection->addAttributeToSelect('*')->load();

foreach($_testproductCollection as $_testproduct){  
echo $this->htmlEscape($_testproduct->getName())."<br/>"; 
echo "STORE IS ".$_testproduct->getData('store_id')."<br/>";
};

Si je coche catalog_category_product_index table de ma db, le store_id sont correctes.

quelle est la version de magento?
Version 1.4.2.0
Est-il une solution jusqu'à présent, d'avoir le même problème. J'ai absolument besoin de la productcollection de spécial storeview. J'ai un site web, 4 storeviews (2 langues de 2 magasins) qui divisez certaines catégories et certains pas. Im nouveau à magento donc je ne comprends pas la joinField() chose. Est-il un exemple ou une autre solution.
Voir ici - stackoverflow.com/questions/5078752/... - j'ai fini le filtrage par catégorie racine à la place.
Le filtrage par racine est très buggé, donc, retour à la présente maintenant, en essayant de savoir si ça va marcher...voir ci-dessus pour les mises à jour

OriginalL'auteur Marlon Creative | 2011-02-21