【问题标题】:Magento Update all products manufacturer using SQL QueryMagento 使用 SQL 查询更新所有产品制造商
【发布时间】:2015-02-28 17:46:37
【问题描述】:

我想使用 SQL/mysql 查询外壳更新所有产品的制造商。 我怎样才能做到这一点?

【问题讨论】:

  • 你知道UPDATE的SQL语法吗?
  • 是的,我需要应该使用的表和字段名称..你知道吗?

标签: mysql sql magento attributes


【解决方案1】:

使用magmi,当数据量很大时,它是一个更好的选择。

Magmi 链接:http://sourceforge.net/projects/magmi/

Magmi 维基:http://wiki.magmi.org/index.php?title=Main_Page

【讨论】:

  • 非常感谢,我已经安装了,请问如何使用magmi更新制造商属性?
【解决方案2】:

使用 EAV 模式存储制造商值,编写原始 SQL 来更改这些值是噩梦,请改用 ORM(在模块 sql 目录中使用设置脚本)。

$installer = new Mage_Catalog_Model_Resource_Setup();
$installer->startSetup();

$products = Mage::getModel("catalog/product")->getCollection()->addAttributeToSelect('*');
foreach($products as $product) {
    $product->setManufacturer(...);
    $product->save();
}
$installer->endSetup();`

【讨论】:

  • 我想使用产品名称的第一个单词来设置制造商的想法,例如:Samsung Galaxy Apple iPad Sony LCD etc. 所以我想添加三星,苹果和索尼作为制造商产品
  • 非常感谢我按照以下方式完成了 $installer = new Mage_Catalog_Model_Resource_Setup(); $installer->startSetup(); $products = Mage::getModel("目录/产品")->getCollection()->addAttributeToSelect('*'); foreach($products as $product) { $pieces = explode(" ", $product->getName()); if (strtolower($pieces[0]) == "digium") { $product->setManufacturer(6); } if (strtolower($pieces[0]) == "polycom") { $product->setManufacturer(8); } if (strtolower($pieces[0]) == "grandstream") { $product->setManufacturer(9); } $product->save();睡眠(2); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 2022-06-22
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
相关资源
最近更新 更多