Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v3.x.
#86561
Olá, estou com um problema no meu site que é desenvolvido baseado no OpenCart.

Quando se tem, por exemplo, 100 usuários logados ao mesmo tempo, o que está acontecendo: Não é a todo momento que acontece, mais acontece quando se tem um número maior de visitantes.

Quando um usuário cadastra um endereço (antes de criar o cadastro), o mesmo passa a ficar logado na conta de outro usuário. Se este usuário não percebe e finaliza o pedido, o pedido é finalizado na conta do outro usuário, ou seja, o usuário nem chega a criar a conta, apenas cadastra o endereço de entrega e loga indevidamente na conta de outro usuário.

Alguém teria alguma ideia de como resolver isto?

Pelo que percebi, o usuário que ainda não se cadastrou, loga na conta de outro usuário que está conectado ao mesmo momento no site, lembrando que isso está acontecendo quando se tem um número maior de visitantes.

O que pode estar acontecendo?

Alguém tem alguma ideia do que pode ser ou como solucionar este problema?

Obrigado
#86563
Olá @luck950.

Qual versão do OpenCart você está utilizando?

Algumas considerações:

- Se você estiver utilizando o sistema de cache da hospedagem denominado Varnish, você deve desativá-lo, pois esse sistema de cache não é compatível com o OpenCart 3, e causa problemas na exibição das páginas de produtos, carrinho e conta do cliente.
- Se você tiver ativado o recurso Google Speed do cPanel, você deve desativá-lo, pois ele causa problemas na exibição das páginas de produtos, carrinho e conta do cliente.
#86570
Olá Manoel,

Estou utilizando a Versão 3.0.3.2 (Brasil 1.4.3). Eu não tenho nenhum destes recursos que você mencionou ativados.

Algumas considerações: Eu já utilizo este site opencart há três meses e isso ocorreu em quatro ocasiões, da mesma forma: Um cliente estava logado em sua conta, outro visitante acabava de cadastrar o endereço. Aí este visitante, sem conta registrada ainda, logava na conta do outro cliente e inclusive finalizava o pedido na conta do outro cliente. Portanto, ao invés de cadastrar sua conta, finalizava o seu pedido com o endereço correto e tudo só que na conta de um cliente existente pois logou indevidamente em um cadastro existente.

O pior que o opencart está funcionando, aparentemente, sem erros. Apenas, raramente, em algumas ocasiões, ocorreu este erro grave de um visitante sem conta acaba de cadastrar um endereço e logar na conta de outro cliente.

Não tenho ideia do que possa ser. Será que é problema de cache da hospedagem?
#86573
Olá;

Creio que você fez um upgrade de versão de loja e quando fez importação de dados do banco teve problema e a tabela custumer ou address foi corrompida, é bem provável que uma das tabelas perdeu o primary key e auto_increment, sendo assim o ID de registro não muda, cheque os últimos registros dessas tabelas se tiver dois registro com o mesmo id é realmente o que relatei;
Manoel Vidal gostou disso
#86577
Perfeito, acertou em cima, eu acho que é isso mesmo o problema. Pois como você disse, eu paguei para um desenvolvedor fazer a migração de servidor do meu opencart. Antes hospedava na amazon e migrei para a minha nova hospedagem. Como posso resolver este problema da tabela que perdeu o primary key e auto_increment?
#86578
Você pode apenas reparar as tabelas address, *customer e *order; Agora se tiver concluído pedidos ou se desejar conservar os novos dados inseridos no banco você pode executar os comandos abaixo no banco, mais lembrando que deverá alterar os primary id para ordem crescente e associando os mesmos entre as tabelas que mencionei acima;

Em NUMERO-DO-ULTIMO-REGISTRO deve informar o ultimo registro da coluna primaria,

Código: Selecionar todos
ALTER TABLE `oc_address`
  ADD PRIMARY KEY (`address_id`),
  ADD KEY `customer_id` (`customer_id`);

ALTER TABLE `oc_address`
  MODIFY `address_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=NUMERO-DO-ULTIMO-REGISTRO;

ALTER TABLE `oc_customer`
  ADD PRIMARY KEY (`customer_id`);


ALTER TABLE `oc_customer`
  MODIFY `customer_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=NUMERO-DO-ULTIMO-REGISTRO;
#86581
Ola @luck950

Só para registrar aqui,
Eu ja tive problemas com o firewall SUCURI, em configurações do mesmo, nosso cliente em questão tinha colocado "CACHE TOTAL" e então tivemos o mesmo erro apresentado por você.
Toda via testamos as formas de cache disponíveis no SUCURI e resolvemos deixar desabilitado, pois ambas as formas tivemos outros problemas.
:)
Manoel Vidal gostou disso

Na instalação você está[…]

Grata Leandro! procurei, e na linha 45 esta outra […]

Erro Mensagem do MySQL: Documentação[…]

erro token

@alex3257 Esse erro se refere a está util[…]