如何在所有商店中启用所有产品

时间:2013-04-28 17:01:00

标签: magento product

我正在使用Magento(1.7),我只是通过多店铺扩展了我的旧商店(store1)和store2。我有很多产品(大约1500个),它们都在Store1中可见,但在新商店(store2)中不可见。是否有一种简单的方法可以为alle商店启用所有产品?

2 个答案:

答案 0 :(得分:9)

在管理员的产品网格中,选择所有带有“全选”按钮的产品。从'actions'下拉菜单中;选择“更新属性”。在“网站”标签中;选择所需的网站,然后单击“保存”。 接下来,重新索引所有数据:

转到:系统>指数管理。
选择所有项目并通过提交表格开始重新索引。

答案 1 :(得分:2)

有几种方法可以做到这一点。首先,也是最简单的方法是使用管理员中的批量编辑功能。转到您的管理产品页面,单击全选,将操作下拉列表更改为“更改属性”,然后单击“提交”。然后,在“网站”选项卡上,确保在“将产品添加到网站”区域中选中新网站,然后单击“保存”。

如果您需要以编程方式执行此操作并且拥有自己的网站ID,则可以在Magento根目录中的PHP脚本中添加类似的内容:

<?php

require_once('app/Mage.php');
umask(0);
Mage::app('admin');

$website_ids = array(1, 2); // I'm assuming your website IDs are 1 and 2.
// $website_ids = getWebsitesArray();

$product_collection = Mage::getModel('catalog/product')->getCollection();
foreach($product_collection as $product) {
    $product->setWebsiteIds($website_ids);
    $product->save();
}

只是为了好的衡量标准,以下是如何以编程方式获取该website_ids数组:

/* @return array */
function getWebsitesArray() {
    $ret = array();
    $website_collection = Mage::app()->getWebsites(true);
    foreach($website_collection as $website) {
      $ret = array_push($website->getId());
    }

    return $ret;
}