显示最近点击/查看主页Magento上的产品数据

时间:2017-05-17 08:56:56

标签: php magento

我在Magento的主页上有两个自定义块。其中一个块显示所有产品。另一个块应显示最近点击/查看的产品。 我已经创建了事件的观察者来获取点击的产品数据。 如何使用观察者的数据在主页的第二个块中显示产品的数据?我必须以某种方式从观察者传递数据。

Observer.php

<?php
include 'C:\wamp64\www\magento1924\app\code\local\Company\Namespace\Block\Recommended.php';

class Company_Namespace_Model_Observer {

public function getProductData($observer) {
    //Uncomment the line below to log what is contained here:
    //Mage::log($observer);

    $data = new Company_Namespace_Block_Recommended();
    $product = $observer->getProduct();
    $pId = $product->getId();
    $pName = $product->getName();


    //Mage::log($pId);
    Mage::log($pName);
    $data->recommended($pId, $pName);

}
}
?>

阻止文件Recommended.php

<?php
class Company_Namespace_Block_Recommended extends Mage_Core_Block_Template 
{    
public function recommended($pId, $pName){
    echo $pId;
    echo $pName;
    echo "Test!";
}
}
?>

Recommended.phtml

<h1>Recently viewed</h1>
<?php
    $this->recommended();
?>

所以我使用推荐的()函数打印出点击后的产品数据。当我在主页上点击某些内容时,它会转到产品视图页面,我也可以在其中看到(在上半部分)产品的名称和ID以及&#34;测试!&#34;(这也在函数中得到了回应)。 我想要的是,因为我在主页(在phtml文件中)中调用了相同的函数recommended(),我应该看到产品ID,名称以及&#34;测试!&#34 ;。问题是它只显示&#34;测试!&#34;。 我做错了吗?

2 个答案:

答案 0 :(得分:0)

我建议你使用cookies。用户点击产品后,将其ID保存在Cookie中。在块类中读取cookie值并抓住产品集合,如下所示:

$productIds = array('384','385','385'); // Dummy ids, fetch them from cookies

$products = Mage::getModel('catalog/product')
 ->getCollection()
 ->addAttributeToSelect('*') 
 ->addAttributeToFilter('status', 1)
 ->addAttributeToFilter('visibility', 4)
 ->addIdFilter($productIds);
 ; 

我希望这会给你一个想法。

答案 1 :(得分:0)

请按照以下步骤在主页上点击/查看:

1-点击CMS-&gt;小部件

2-单击“添加新窗口小部件实例”

3-选择类型 - &gt;最近浏览过的产品

4-选择设计包主题 - &gt;您的主题

5-单击继续按钮

6-前端属性

一个。提供小组件实例标题

湾分配到商店视图 - &gt;所有商店视图

℃。向下滚动,您会注意到“布局更新”部分

我。单击“添加布局更新”

II。显示开 - &gt;指定页面(您也可以选择任何其他选项)

  1. Page-&gt;(选择您想要的页面)

  2. 阻止参考 - &gt;(选择您的参考以显示它)

  3. 7-在窗口小部件选项中

    一个。设置'要显示的产品数'

    8-单击“保存”按钮并检查指定的页面。如果您没有看到任何内容,请不要忘记清除缓存。