3

我刚刚建立了一个 Magento 多商店,我正试图弄清楚如何在我的主页上展示这 3 家商店的产品。问题是我的代码只显示当前商店的帖子。例如:商店(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; ?>

谢谢你们,伙计们!

4

2 回答 2

0

Magento 对产品使用平面表,因此您将拥有每个商店的数据库表,其中仅包含为该商店启用的产品。按照这个原则,不可能使用默认的 Magento 获得所有产品。

为了让您走上正轨:您需要根据 catalog_product 表(不是平面表)进行自己的查询。

于 2012-11-27T16:17:02.220 回答
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 文件,可以根据我的需要进行编辑。

哟!

于 2012-11-28T16:41:58.047 回答