2013-10-29 9 views
7

दोनों स्टोर्स की एक अलग रूट श्रेणी है। मुख्य स्टोर डिफ़ॉल्ट नमूना डेटा है, द्वितीय स्टोर में केवल एक उत्पाद है जिसे मैं जोड़ा गया था। मैंने सोचा होगा कि स्टोर फ़िल्टर का उपयोग करके, मौजूदा स्टोर की मूल श्रेणी के भीतर केवल उत्पाद ही दिखाए जाएंगे। लेकिन मुझे हर उत्पाद दिख रहा है। मैं अपने वर्ग दृश्य टेम्पलेट में निम्नलिखित रख कर यह परीक्षण कर रहा हूँ:Magento स्टोर आईडी द्वारा उत्पाद संग्रह फ़िल्टर प्राप्त करें

$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()); 
}; 

अगर मैं दुकान आईडी प्रिंट, यह मेरे लिए सही संख्या दे रही है। मेरे पास दूसरे स्टोर में केवल एक उत्पाद है, तो मुझे वापस आने वाले सभी स्टोरों से हर उत्पाद क्यों मिल रहा है? मैं स्टोर 2 में दिखाने के लिए मुख्य स्टोर में प्रत्येक उत्पाद सेट नहीं कर सकता और फिर एक दृश्यता फ़िल्टर जोड़ सकता हूं, लेकिन यह हमेशा के लिए ले जाएगा।

echo $_testproduct->getStoreId() 

कैसे इस समस्या को हल करने के लिए:

इसके अलावा, मैं सिर्फ देखा है, अगर मैं उत्पादों की दुकान आईडी गूंज, मैं वर्तमान आईडी प्राप्त करने, नहीं दुकान में डाला गया है?

उत्तर

5

इस प्रयास करें यदि आप

$counter = ""; 
/*$model=Mage::getModel('catalog/product')->setStoreId($post['stores']); 
$rootCategoryId = Mage::app()->getStore($post['stores'])->getRootCategoryId(); 
$products = $model->getCollection(); 
$products->addStoreFilter($post['stores']); 
$products->addAttributeToFilter('sku', array('nlike' => 'B%')); 
$products->addAttributeToFilter('status',1); 
$counter=$products->getData();*/ 
$model=Mage::getModel('catalog/product')->setStoreId($post['stores']); 
$category_model = Mage::getModel('catalog/category'); 
$rootCategoryId = Mage::app()->getStore($post['stores'])->getRootCategoryId(); 
$_category = $category_model->load($rootCategoryId); 
$all_child_categories = $category_model->getResource()->getAllChildren($_category); 
foreach($all_child_categories as $storecategories): 

$category = Mage::getModel('catalog/category')->load($storecategories); 
$products = $category->getProductCollection(); 
//echo "Category id is::".$storecategories."Products are::".count($products); 
//echo "<br/>"; 
foreach($products as $collection): 
    $removecatindex = $collection->getData(); 
    unset($removecatindex['cat_index_position']); 
    $counter[] = $removecatindex; 
    endforeach; 
endforeach; 
5

आप भी इस तरह संसाधन मॉडल के लिए एक दुकान फिल्टर जोड़ने की कोशिश कर सकते हैं के रूप में मिलती है:

$collection = Mage::getResourceModel('catalog/product_collection') 
    ->addStoreFilter($this->getStoreId()) 
    ->addAttributeToSelect('*'); 
2
$collection = Mage::getModel('catalog/product')->getCollection()->addStoreFilter($store_id) 
->addAttributeToSelect('*') // select all attributes 
->setPageSize(5000) // limit number of results returned 
->setCurPage(1); // set the offset (useful for pagination) 

// we iterate through the list of products to get attribute values 
foreach ($collection as $product) { 
    echo $product->getName(); //get name 
    echo (float) $product->getPrice(); //get price as cast to float 
    echo $product->getDescription(); //get description 
    echo $product->getShortDescription(); //get short description 
    echo $product->getTypeId(); //get product type 
    echo $product->getStatus(); //get product status 

    // getCategoryIds(); returns an array of category IDs associated with the product 
    foreach ($product->getCategoryIds() as $category_id) { 
     $category = Mage::getModel('catalog/category')->load($category_id); 
     echo $category->getName(); 
     echo $category->getParentCategory()->getName(); // get parent of category 
    } 
    //gets the image url of the product 
    echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA). 
     'catalog/product'.$product->getImage(); 
    echo $product->getSpecialPrice(); 
    echo $product->getProductUrl(); //gets the product url 
    echo '<br />'; 
} 
संबंधित मुद्दे