Un cliente tiene más de 20000 productos con 7 sitios web. Solían tener 4 sitios web y la mayoría de los productos están asociados a 4 sitios web. ¿Cuál es la mejor y más rápida forma de recorrer los productos y actualizar los productos para incluir los nuevos sitios web?
Tengo el siguiente código, sin embargo, es demasiado lento:
$ productCollection = Mage :: getModel ('catálogo / producto') -> getCollection ()
-> addFieldToFilter ('sku', array ('like' => '02% '));
foreach ($ productCollection como $ product) {
echo $ producto-> getSku ();
$ product-> setWebsiteIds (array (1,2,3,4,5,6,7));
tratar {
$ producto-> save ();
echo "- guardado";
} catch (Excepción $ e) {
echo '-'. $ e-> getMessage ();
}
echo "\ n";
}
Estaba pensando en usar el método de iterador, pero entiendo que la tienda / sitio web no es exactamente un atributo, por lo que no se puede actualizar fácilmente por sí solo.

Si solo desea agregar los productos asignados a los 4 sitios web existentes anteriormente, use esto:
Consulte también: Filtrar productos por sitio web con AND
Puede ser un script de configuración de Magento o un script PHP desechable (en este caso, agréguelo
include 'app/Mage.php';en la parte superior y elimínelo del servidor después del uso)fuente
Paso 1: Obtenga todos los ID del sitio web / cree una matriz de ID del sitio
Paso 2: Obtenga todos los ID de producto
Paso 3: agregue identificadores de sitio web a todos los productos
Nota: si desea eliminar el sitio web del producto. use eliminar en lugar de agregar palabra
fuente
Otra solución si su pereza va al punto de no querer crear ningún archivo PHP:
Trabajó para mi.
fuente