TL; DR : Existe alguma razão para que os produtos simples associados a um produto configurável tenham que estar no mesmo conjunto de atributos que o próprio produto configurável? Quero dizer, existe algum motivo técnico ? Eu sei o motivo do "senso comum". Se você vende um par de sapatos , todas as versões, dependendo da cor e tamanho, também precisam ser sapatos .
Versão longa : tive a tarefa de "mesclar" alguns produtos configuráveis. Quero dizer de 2 ou mais para fazer apenas um. Eu não queria fazê-los manualmente por causa da quantidade de produtos e não queria passar por$product->load(..)->set...()->save()
devido à quantidade de tempo que levou para executar o script. Então, eu interrompi o processo porque tinha certeza de que nenhum dos produtos simples se sobrepunha. Houve uma combinação única de tamanho e cor. Eu fiz isso:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
onde $simpleProductIds
existe uma matriz de todos os IDs de produtos simples associados todos aos produtos configuráveis que precisam ser mesclados.
Isso funcionou perfeitamente para a maioria dos produtos, mas havia alguns que apresentavam problemas.
Se eu chamasse
$productIds = $product->getTypeInstance()->getUsedProductIds()
Eu obteria todos os IDs de produtos simples, mas no back-end apenas alguns deles apareceram. Depois de cavar por algum tempo, descobri que os únicos mostrados eram aqueles no mesmo atributo definido como o produto configurável. O outro conjunto de atributos é muito semelhante ao primeiro, apenas algumas pequenas diferenças, mas contém os atributos configuráveis (tamanho e cor).
E agora a coisa estranha. No front-end, esperava ver todos os produtos ($ productIds no código acima) ou apenas os produtos no mesmo conjunto de atributos. Bem, havia algo entre.
- 20 IDs de produtos associados - 5 tamanhos, 4 cores
- 10 produtos associados no back-end - 5 tamanhos, 2 cores - as outras 2 cores (10 produtos) estavam em um conjunto de atributos diferente
- 15 combinações no frontend - 5 tamanhos 3 cores (???)
Consegui resolver o problema alterando o conjunto de atributos para os produtos que não apareceram, mas ainda estou confuso.
Nota : Não tente fazer isso em casa. Ou você pode experimentá-lo em casa, mas não em um servidor ativo.