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