Normalmente, esse é um erro nos dados ou na implementação da coleção.
Aqui está uma solução para um problema mais amplo. Isso funciona na coleção arbitrária, não apenas para Catalog_Model_Product
.
Etapa 1. Modificar o arquivo de núcleo lib/Varien/Data/Collection.php
, function addItem()
mas, ao contrário esta resposta sugere, não escondem o erro.
Em vez disso, adicione informações de erro extras à exceção lançada:
if (isset($this->_items[$itemId])) {
throw new Exception('Item ('.get_class($item).
') with the same id "'.$item->getId().'" already exist' .
'. SQL that caused this: ' . $this->getSelect());
}
Etapa 2. Pegue a consulta incorreta do seu relatório de erros e execute-a manualmente. Veja quais registros duplicam a chave de coleção. Adicione order by <key field>
conforme necessário.
Dissecar a consulta removendo as tabelas participantes uma por uma e ver qual registro causou a duplicação.
Eu acredito que este patch deve estar no centro.
group by
para obter apenas o ID do produto exclusivo. Veja magento.stackexchange.com/questions/12773/…