Eu tenho um problema estranho com as vendas de regra da Magento Target.
Cenário: Magento EE 1.12. Mais de 30 visualizações de loja na mesma instância do Magento. 30k + produtos. A maioria dos produtos tem as mesmas configurações em todas as visualizações da loja. Eu criei uma regra para mostrar upsells da seguinte maneira. "Mostrar produtos da mesma categoria com preço 100% ou mais que o produto atual". Configurações para mostrar upsells: 'Apenas com base em regras' (o problema é reproduzido em 'Com base em regras e selecionado'). Eu salvei a regra. reindexou tudo. Tudo parece bom, surgem os upsells (para os produtos que testei), conforme definido pela regra, MAS… Depois de algum tempo para o mesmo produto em uma loja, os upsells aparecem e, em outros, não. O produto tem as mesmas configurações em todas as visualizações da loja. (e deve ter o mesmo aumento de vendas.)
Se eu modificar algo na regra e salvá-lo novamente, as vendas diretas começarão a aparecer em todas as visualizações da loja, mas após algum tempo o problema será reproduzido.
Após digitar o código, descobri que os upsells gerados pela regra de destino são mantidos na tabela enterprise_targetrule_index_upsell para evitar a análise de todas as regras a cada vez. Aqui está como isso funciona. (a tabela é truncada ao salvar uma regra) Se houver algum upselling de 'regra de destino' na tabela que mencionei, eles serão recuperados. Se não estiverem, as regras serão analisadas e o resultado será colocado na tabela de índices. Aqui estão alguns registros dessa tabela para um produto específico.
+-----------+----------+-------------------+---------------------------------------------------------------------+---------------------+
| entity_id | store_id | customer_group_id | product_ids | customer_segment_id |
+-----------+----------+-------------------+---------------------------------------------------------------------+---------------------+
| 17372 | 2 | 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 | 0 |
| 17372 | 5 | 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 | 0 |
| 17372 | 17 | 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 | 0 |
| 17372 | 18 | 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 | 0 |
| 17372 | 19 | 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 | 0 |
| 17372 | 20 | 0 | | 0 |
| 17372 | 21 | 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 | 0 |
| 17372 | 22 | 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 | 0 |
| 17372 | 23 | 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 | 0 |
Como você pode ver, os upsells do produto com o ID 17372 são iguais em todas as visualizações da loja, exceto store_id 20, que está em branco. Não há nada de especial na loja 20. Todos os produtos envolvidos aqui estão disponíveis em todas as lojas.
Qualquer ideia?
Obrigado. Marius.
fonte
cron
configurado corretamente? IIRC as regras são re-construída todas as noites e sem um ativocron
irá produzir um comportamento estranhoRespostas:
No EE 1.13, esse bug parece estar corrigido (mas o EE 1.13 se foi)
Em
Enterprise_TargetRule_Model_Resource_Index::saveProductIndex
, a linha com o problema foi substituída por (dica: 4th param "false")$targetRule->bindRuleToEntity($ruleId, $productId, 'product', false);
e, em
Mage_Rule_Model_Resource_Abstract
, a funçãobindRuleToEntity
foi alterada para:e a linha
$adapter->delete(...)
foi enroladaOutro bug, shell / indexer.php --reindex targetrule, não faz nada; portanto, você não pode reindexar via cron / console, corrigindo adicionando
Enterprise_TargetRule_Model_Index
:MAIS TARDE: veja este patch https://github.com/magendooro/targetrulefix
fonte
Integrity constraint violation:for key '5B1C775075460366570ABDA2839BC68A'
-> essa chave vementerprise_targetrule_index_related
... você tem alguma idéia se está relacionada às alterações mencionadas?Decidi adicionar o que encontrei como resposta para que esta pergunta não seja marcada como não respondida.
ao salvar um produto, as regras de destino são indexadas para esse produto e acaba fazendo isso :(
Mage_Rule_Model_Resource_Abstract::bindRuleToEntity()
)Isso exclui todos os outros produtos da lista de produtos afetados. Se eu definir o modo do índice de targetrule como 'manual', o problema não será reproduzido. Mas isso não resolve. Apenas o esconde.
Do meu ponto de vista, este é um grave bug do Magento EE.
fonte