Um cliente tem mais de 20.000 produtos em 7 sites. Eles costumavam ter 4 sites e a maioria dos produtos está associada a 4 sites. Qual é a melhor e mais rápida maneira de percorrer os produtos e atualizá-los para incluir os novos sites.
Eu tenho o seguinte código, no entanto, é muito lento:
$ productCollection = Mage :: getModel ('catalog / product') -> getCollection () -> addFieldToFilter ('sku', array ('like' => '02% ')); foreach ($ productCollection como $ product) { echo $ product-> getSku (); $ product-> setWebsiteIds (array (1,2,3,4,5,6,7)); experimentar { $ product-> save (); eco "- salvo."; } catch (exceção $ e) { echo '-'. $ e-> getMessage (); } eco "\ n"; }
Eu estava pensando em usar o método de caminhada do iterador, mas entendo que a loja / site não é exatamente um atributo, portanto, não pode ser facilmente atualizado por conta própria.
Se você deseja adicionar apenas os produtos atribuídos a todos os 4 sites existentes anteriormente, use este:
Veja também: Filtrar produtos por site usando AND
Pode ser um script de instalação do Magento ou um script PHP descartável (neste caso, adicione
include 'app/Mage.php';
na parte superior e remova-o do servidor após o uso)fonte
Etapa 1: obter todos os IDs do site / criar uma variedade de IDs do site
Etapa 2: obtenha todos os códigos de produto
Etapa 3: adicionar IDs de site a todos os produtos
Nota: Se você deseja remover o site do produto. use remover em vez disso adicione palavra
fonte
Outra solução se a sua preguiça chegar ao ponto de não querer criar nenhum arquivo PHP:
Trabalhou para mim.
fonte