Я пытаюсь написать сценарий, который отображает 1) общий объем продуктов, 2) общий объем настраиваемых продуктов, 3) общее количество продуктов в пределах набора атрибутов "Нет", 4) общий объем заказов, и 5) общая сумма $ заказов в течение определенного промежутка времени в Magento.
Я решил 4) и 5), но есть проблемы с поиском решений для 1) 2) и 3). Может ли кто-нибудь помочь?
---------------------------After 2/3/2015 ---------------------------
Вот модифицированная версия кода с помощью @Blastfreak, проблема с этим кодом заключается в том, что он отображает неправильное количество настраиваемых продуктов и продуктов "Нет" - похоже, что общая сумма была отображена независимо:
$productModel = Mage::getModel('catalog/product');
$collection = $productModel->getCollection();
//Attribute Set "None" and "NONE"
$attributeSetId_None1 = Mage::getModel('eav/entity_attribute_set')
->load($attrSetName, 'None')
->getAttributeSetId();
$attributeSetId_NONE2 = Mage::getModel('eav/entity_attribute_set')
->load($attrSetName, 'NONE')
->getAttributeSetId();
//1) Total Products
$TotalProducts = $collection->getSize();
//2) Configurable Products
$TotalConfigurableProduct= $collection->addAttributeToFilter('type_id', array('eq' => 'configurable'))->getSize();
//3) Total Productw within attribute set none
if ($attributeSetId_None1 || $attributeSetId_NONE2){
$Total_None1= $collection->addAttributeToFilter('attribute_set_id',$attributeSetId_None1)->getSize();
$Total_NONE2= $collection->addAttributeToFilter('attribute_set_id',$attributeSetId_NONE2)->getSize();
$TotalNone=$Total_None1+$Total_NONE2;
}
else{
$TotalNone=0;
}
$TotalConfigurableAndNone=$TotalConfigurableProduct+$TotalNone;
Вместо использования getSize() или count() я обнаружил, что цикл foreach может отображать правильное количество элементов. Например:
foreach ($TotalConfigurableProduct as $total_config)
{
$k++; //the correct amount of configurable products
}
Ваше решение для следующего:
<?php
$productModel = Mage::geModel('catalog/product');
$collection = $productModel->getCollection;
//1) Total Products
$TotalProducts = $collection->getSize();
//2) Configurable Products
$TotalConfigurableProduct= $collection->addAttributeToFilter('type_id', array('eq' => 'configurable'))->getSize();
//3) Total Productw within attribute set none
$TotalConfigurableProduct= $collection->addAttributeToFilter('attribute_set_id','attribute set id here')->getSize();