0

我已经创建了一个分组产品并向其中添加了数量为 1 和重量为 0 的关联产品。所以当我在主页搜索中搜索此分组产品时,该产品不显示,那么有没有办法批量更新产品的重量?我已引用此链接http://www.magentocommerce.com/boards/viewthread/266066/并批量更新了重量,但因此搜索不起作用,但是当我从管理员后端更新每个产品的重量时,它的工作我有几乎超过 100000 种产品任何帮助将不胜感激

4

2 回答 2

1

我觉得这可能是数据重新索引的问题,你可以通过这个答案

Magento 1.7 导入产品问题

如果您仍然有问题,请转到 admin->Catalog->Attributes->Manage Attributes 并单击 weight 进行编辑。在编辑屏幕上,您可以将“在产品列表中使用”的值设置为“否”,如果设置为“是”并重新索引数据,我认为它会解决您的问题。

于 2013-10-28T06:37:11.117 回答
0

我编写了简单的脚本来批量更新产品的重量。我有一个包含 2 列的 csv,第一列是 sku,另一列是要更新的产品的权重。下面是脚本

set_time_limit(0);

$mageFilename = 'app/Mage.php';
require_once $mageFilename;
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
umask(0);
Mage::app('admin');
Mage::register('isSecureArea', 1);

 try{

$csv = new Varien_File_Csv();
$file = 'set_products_with_weight.csv';
$products = $csv->getData($file);
$count = 0;

$resource = Mage::getSingleton('core/resource');
$readConnection = $resource->getConnection('core_read');
$writeConnection = $resource->getConnection('core_write');

foreach($products as $product)
{

    $weight = (float) $product[1];

    $query = 'UPDATE catalog_product_entity_decimal set value = '.$weight.' WHERE attribute_id = 80 AND entity_id IN (SELECT entity_id FROM catalog_product_entity where sku ="'.$product[0].'")';
    $results = $writeConnection->query($query);


}

} catch(Exception $e) {

    print_r($e);

}

其中80是weight属性的attribute_id。您需要在数据库中检查这一点。或者,您可以使用带有attribute_id 的内部联接更新查询,并按attribute_code=weight 过滤。

于 2016-12-29T05:50:13.540 回答