正如标题所说,我需要大众产品分配给一个类别,并从管理,我只可以一次编辑一个产品; 我不知道为什么它只是不工作,以质量从类别页面中的“类产品”标签中添加。
这就是为什么我需要一个快速,就像使用phpMyAdmin或东西一样的另一种方法。
任何帮助吗?
提前致谢!
正如标题所说,我需要大众产品分配给一个类别,并从管理,我只可以一次编辑一个产品; 我不知道为什么它只是不工作,以质量从类别页面中的“类产品”标签中添加。
这就是为什么我需要一个快速,就像使用phpMyAdmin或东西一样的另一种方法。
任何帮助吗?
提前致谢!
我创建了一个简单的脚本来做到这一点的Magento之外。 请务必先进行测试单一产品,并确保它看起来就像你所期望的。
// Load Magento
require_once 'path/to/app/Mage.php';
Mage::app();
// $productIds is an array of the products you want to modify.
// Create it however you want, I did it like this...
$productsIds = Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('sku', array('like' => 'something'))
->getAllIds();
// Array of category_ids to add.
$newCategories = array(20);
foreach ($productIds as $id) {
$product = Mage::getModel('catalog/product')->load($id);
$product->setCategoryIds(
array_merge($product->getCategoryIds(), $newCategories)
);
$product->save();
}
如果您想要覆盖产品的现有类别,改变array_merge(...)
只$newCategories
。
我会从事物的数据库端解决这一问题避而远之。 如果你去那个方向确认,并采取大量的备份和低使用过程中做到这一点。
在上Magento的论坛以下螺纹标识同样的问题。 其中一张海报建议以实例为原始的SQL方法。 同样,我会小心 - 请确保您的备份。
我喜欢从线程(发表Magento的MVP),最佳答案:
走进类别你不希望他们在,找到产品列表。 单击要删除,然后从下拉小删除的产品的复选框。
现在进入其中,你想他们,去到产品列表的类别。 选择NO下拉,使其显示的项目不在类别。 您可能需要做一个选择的搜索限制的东西,做一对夫妇迭代。 点击复选框,并告诉它添加的东西。
你不妨做到这一点使用Magento的API这是我使用大规模增加产品的脚本。 sku.txt每行包含一个SKU。
<?php
$wsdlUrl = "magento-root/index.php/api/soap/?wsdl";
$proxy = new SoapClient($wsdlUrl);
$sessionId = $proxy->login('apiuser', 'apipasswd');
$listOfDiscountedSKUFile = "sku.txt";
function readinFile($filePath)
{
$fp = fopen($filePath,'r') or exit("Unable to open file!");
$dataItems = array();
while(!feof($fp))
{
$dataItems[] = trim(fgets($fp));
}
fclose($fp);
var_dump($dataItems);
return $dataItems;
}
function addToCategory($sku,$categoryId)
{
global $proxy,$sessionId;
$proxy->call($sessionId, 'category.assignProduct', array($categoryId, $sku));
}
function IsNullOrEmptyString($question){
return (!isset($question) || trim($question)==='');
}
$categoryId = 82;//e.g.
$listOfSKU = readinFile($listOfDiscountedSKUFile);
foreach($listOfSKU as $sku)
{
addToCategory($sku,$category);
}
?>
我设法解决与下面的代码的问题:
$write = Mage::getSingleton('core/resource')->getConnection('core_write'); $x = 1171; $y = 2000; $categoryID = 4; $productPosition = 0; while($x <= $y) { $write->query("REPLACE INTO `catalog_category_product` (`category_id`, `product_id`, `position`) VALUES ($categoryID, $x++, $productPosition)"); } echo "The job is done"; ?>
我希望的代码是坦途,如果它不是,回复,我会尽力解释。
@nachito:在这里。