¿Cómo muevo una categoría a otra categoría con todas las categorías secundarias?Magento - Mover una categoría programáticamente
He intentado el siguiente solución:
$nodeId = 2269;
$parentId = 2268;
$tree = Mage::getResourceModel('catalog/category_tree')->load();
$node = $tree->getNodeById($nodeId);
$parentNode = $tree->getNodeById($parentId);
$parentChildren = explode(',', $parentNode->getChildren());
$afterId = array_pop($parentChildren);
$prevNode = $tree->getNodeById($afterId);
if (!$prevNode || !$prevNode->getId()) {
$prevNode = null;
}
$tree->move($node, $parentNode, $prevNode);
Sin embargo, mi resultado es algo retorcido. Si me muevo a la categoría raíz, el movimiento funciona, pero si me muevo a una categoría hija, obtengo resultados erróneos y categorías desaparecidas.
Estos son los valores de la ruta de campo en la base de datos:
Old: 1/2/3/2175/2269
New: 1/2/3/2175/2226/2268/2269
Correct: 1/2/3/2226/2268/2269
Creo que este método es más lento porque tiene que ir a través y redirigir todos los viejos productos a la nueva URL. –