2013-01-16 21 views
0

我想追加一个类别id到Magento 1.7中的大量SKU。我使用了Import> Append Complex Data,虽然它检查了文件并运行正常,但没有将这些SKU添加到我想要的类别中。Magento 1.7追加复杂数据

因此,目标是将所有这些SKU保留在现在有类别,但增加了一个类别。

任何帮助,将不胜感激。即使它完全是一种不同的方法。

回答

0

做到这一点,最快的方法就是直接将这个作为使用SQL查询:

INSERT INTO `catalog_category_product` (
`category_id` , 
`product_id` , 
`position` 
) 
VALUES (
'4', '34', '0' 
), (
'4', '35', '0' 
); 

在这种情况下,这将增加的类别ID 4的产品识别码34和35.你可以创建一个小的PHP脚本,以便从您的SKU和类别ID文件中动态创建这样的查询。 查询成功执行后的重新索引。

另外,使用Magento的生态系统,而不是数据库,你可以这样做:

$categoryIds = array(); 
$toBeUpdatedProducts = array(4,6,7); // all the Ids you want to update 
$newCategoryId = 65; // Id of new category 
foreach ($toBeUpdatedProducts as $productId) { 
    $product = Mage::getModel('catalog/product')->load($productId); 
    $categoryIds = $product->getCategoryIds(); 
    $categoryIds[] = $newCategoryId; // Add new category to existing ones 
    $product->setCategoryIds($categoryIds); 
    $product->save(); 
} 
+1

通过直接的SQL脚本操作数据始终是一个糟糕的主意,当你有一个CRUD一个良好的ORM系统提供(这是Magento的情况)。 –

+0

@JernejGolja我不同意,至少总是这个词。通常,这是一个坏主意。但是,在某些情况下,当您处理大量数据时,整个ORM系统的开销会对简单操作的速度造成破坏性影响。 – mpaepper

+0

@JernejGolja为完整性添加了非数据库方式 – mpaepper