我刚刚建立了一个Magento多店,我正在试图弄清楚如何在我的主页上展示这三家商店的产品。问题是我的代码只显示当前商店的帖子。 ex:商店(1)显示商店的产品(1) 商店(2)显示商店的产品(2) 但我不需要这样。我需要所有商店的所有产品
到目前为止,这是我的代码。有人能帮助我吗?<?php
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->setVisibility(array(2,3,4))
->setOrder('created_at', 'desc')
->setPage(1, 20)
->setStoreId('1');
?>
<?php foreach($_productCollection as $_product) : ?>
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(250, 150); ?>" alt="" />
<a href="<?php echo $_product->getProductUrl(); ?>"> <?php echo $_product->getName(); ?> </a>
<div class="grddescription"><?php echo $_product->getDescription(); ?>
<?php endforeach; ?>
谢谢你,伙计!
答案 0 :(得分:0)
Magento为产品使用平面表,因此每个商店都有一个数据库表,只有为该商店启用的产品。使用此原理,无法使用默认的Magento获取所有产品。
为了让您走上正轨:您需要根据catalog_product表(不是平面)自行创建查询。
答案 1 :(得分:0)
我找到了让它运转的方法!
在一个与magento无关的外部文件中(我把它放在root中) 我打电话给magento(在外面,所以我能够使用它的所有功能,而不必担心限制),像这样;
<?php
define('MAGENTOO', realpath('/var/wwweb/magento/'));
require_once(MAGENTOO . '/app/Mage.php');
$app = Mage::app();
?>
而不是这个;
<?php
$products = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('status', 1);
$block = Mage::getSingleton('core/layout')->createBlock('catalog/product_list')
->setTemplate('/catalog/product/glist.phtml')
->setCollection($products);
echo $block->toHtml();
?>
我能够从所有网站获得所有产品!
注意:感谢glist.phtml显示所有产品,这是一个简单的list.phtml文件,可以根据我的需要进行编辑。
哟!