5

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

4

2 回答 2

9

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

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

于 2013-04-29T02:10:48.823 回答
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;
}
于 2013-04-28T20:03:21.663 回答