Lets sagen, ich habe ein Produkt, das in drei verschiedenen Kategorien gefunden werden kann, z. ID 104, 115 und 126.Magento: Produkt Sammlung von gemeinsamen mehrere Kategorien
Jetzt möchte ich eine Produktkollektion erhalten, die aus Produkten besteht, die auch in allen drei Kategorien gefunden werden sollten. Dies bedeutet, dass ein Produkt mit der Cat-ID 104 und 115 nicht in der Sammlung sein sollte, da 126 fehlt.
Wie mache ich das? :-)
Antwort Ape Antwort:
Versucht Ihr Ansatz. Der erste Teil meines Codes ist wie folgt:
$_year = $_product->getBbYear();
$_yearInterval = $this->getYearInterval();
$_minYear = $_year - $_yearInterval;
$_maxYear = $_year + $_yearInterval;
$_minPopularityScore = $this->getMinPopularityScore();
$categories = $_product->getCategoryIds();
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes());
// EXCLUDE PRODUCT FROM COLLECTION
$collection->addAttributeToFilter('entity_id', array('nin' => $_product->getId()));
// BUILD PRIMARY COLLECTION
if (!$_fallback) {
foreach ($categories as $catid) {
$collection->addAttributeToFilter('category_id', array('finset' => $catid));
}
// FILTER COLLECTION BASED ON RELEASE YEAR
$collection->addAttributeToFilter('bb_year', array('gt' => $_minYear));
$collection->addAttributeToFilter('bb_year', array('lt' => $_maxYear));
// FILTER COLLECTION BASED ON POPULARITY SCORE
$collection->addAttributeToFilter('bb_popularity_score', array('gt' => $_minPopularityScore));
// BUILD SECONDARY COLLECTION ON FALLBACK
}
jedoch, sobald ich die Schleife hinzufügen und mehrere Filter auf category_id fügt hinzu, wird die Seite nicht machen. Allerdings bekomme ich keine excecptions und auch Systemprotokoll ist für keine Hilfe ...
Bitte siehe aktualisierte Antwort :) – EibergDK