gpt4 book ai didi

php - Magento,使用 SQL 以编程方式将类别添加到脚本中的产品

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:13 25 4
gpt4 key购买 nike

我正在确定以编程方式向产品添加类别的最佳方式。类别是从 magento 安装之外的第三方数据获得的,然后我解析此数据并想更新 magento:“catalog_category_product”表,将找到的类别与其各自的产品相关联。

在“catalog_category_product”中将类别添加到产品关联作为测试后,该类别没有出现在magento 前端站点上。经过更多搜索后,我在“catalog_category_product_index”表中添加了一个条目,该产品现在显示在前端站点的正确类别中。

这就是必要的吗?恐怕还有其他 magento 事件 Hook 与产品和类别相关联,它们可能正在更新我不知道的其他表格。

我能否使用 SQL 向这两个表中添加行而不会发生意外,或者我是否需要加载 magento 应用程序并通过 EAV 产品和类别模型执行此操作?我走在正确的轨道上吗?

更新

我实际上并没有“导入”任何新数据。产品和类别已经在系统中就位。我也没有添加任何自定义观察者,并且正在使用原始产品和类别模型。

我正在解析文本文件以获得正确的值,然后使用纯 SQL UPDATE 语句。

我只是想确保通过这条路线,我需要以编程方式更新的唯一表是“catalog_category_product”和“catalog_category_product_index”。

最佳答案

我个人不建议您使用纯 SQL,而是使用像这样的 API:

define('MAGENTO', realpath(dirname(__FILE__)));
require_once MAGENTO . '/app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

// Load products
$products = Mage::getModel('catalog/product')
->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID)
->getAll();

// Load categories
$category = Mage::getModel('catalog/category');
->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID);
$categories = $category->getAll();
foreach($products as $product) {
// Get relevant category
$product->setCategoryIds(array($category->getId()));
$product->save();
}

上面的代码是非常粗略的示例,但稍加调整就可以完成工作。如果您使用纯 SQL,则可能会破坏数据或关系,但使用 API Magento 应该会为您正确处理。

关于php - Magento,使用 SQL 以编程方式将类别添加到脚本中的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13294786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com