Magento – Asignar productos relacionados con código
Aquí os dejo un scrpt que asigna los relacionados a un producto trabajando con los sku.
Atención: este script elimina los relacionados anteriores. No me hago responsable de lo que hagáis con este script. Haced copias de seguridad antes. Si lo utilizáis es sobre vuestra responsabilidad.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <?php echo "<br />Debug > Comienza"; echo "<br />Asignamos productos relacionados<br />-----------------------------------------------------"; // Load Magento require_once 'app/Mage.php'; Mage::app(); // Array con los skus de los productos a los que queremos asignar relacionados $skus = array('A26','A27','A28','A3','A36','A360','A38','A44','A91','A92','A94','A95','A96','A97'); // Array con los skus de los relacionados que queremos asignar a cada uno de los anteriores productos $relateds = array( array('B25','B29','B92'), array('B61','B370','K23'), array('B21','B11','B37'), array('B30','B31','B24','B20'), array('C44','K57','B2','B54'), array('Q-88','K22','B59'), array('Z44','ZM-11','B2'), array('Z36','Q8','V11','B57'), array('Z94','V5','B25','B12'), array('Z26','Z29','B8'), array('B91','B61'), array('Z36','Q-83','K12'), array('X2','Z15'), array('V5','Z20','K9')); $indexskus= 0; // Para todos los productos a los que asignar relacionados foreach ($skus as $sku){ echo "<br />SKU: ". $sku ." ----------------------------------"; // Averiguamos el ID del producto $productId = Mage::getModel('catalog/product')->getResource()->getIdBySku($sku); // Creamos el producto $product = Mage::getModel('catalog/product')->load($productId); $position= 1; // Para todos los productos relacionados del producto que estamos tratando foreach ($relateds[$indexskus] as $related) { // Averiguamos el ID del producto relacionado $relatedId = Mage::getModel('catalog/product')->getResource()->getIdBySku($related); // Posición que ocupará el producto relacionado (yo lo hago consecutivo) $param[$relatedId]= array('position'=>$position); echo "<br />>: ". $sku ." -> ". $related; $position++; } // Asignamos los productos relacionados al producto que estamos tratando $product->setRelatedLinkData($param); // Guardamos el producto $product->save(); $indexskus++; } echo "<br />Debug > Finaliza"; ?> |
Atención: este script elimina los relacionados anteriores. No me hago responsable de lo que hagáis con este script. Haced copias de seguridad antes. Si lo utilizáis es sobre vuestra responsabilidad.