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.

Información relacionada

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*