Fórum OpenCart Brasil

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

Suporte geral sobre problemas técnicos para OpenCart v3.x.
#91594
Olá.
Tenho um OC 3.0.3.0
Com sistema multiloja.

www.dominio.com.br - loja desktop
m.dominio.com.br - versão mobile

Tudo funciona perfeito, layout entre outros, formatei um PWA e agora convertendo para TWA.

Meu único detalhe é que no admin chegam todos os pedidos, informando que são de app ou site.
Mas no lado do usuário frontend, o pedido que vêm do desktop não consegue ver no mobile e vise versa.

No inicio gostaria de unificar os pedidos na tela do usuário, que ele possa ver tanto o pedido do desktop como do mobile e saiba na informação por onde ele fez o pedido.

Gostaria de saber, pois não achei a informação, no sistema Multi loja, o usuário somente consegue ver os pedidos individuais feitos em cada loja?
Ou meu O.C esta com problemas, pois deveria funcionar assim?

Obrigado
Editado pela última vez por turcorossi em 23 Fev 2024, 12:13, em um total de 1 vez.
#91600
Resolvido!

Explicando melhor, se alguém realizar o mesmo processo que o meu.
A multiloja do OC. é para ser 2 lojas distintas em dominios diferentes ou dominio e subdominio com o mesmo painel administrativo.

No meu caso estou desenvolvendo um layout como desktop e outro somente para versão mobile, com a performasse no Google PageSpeed a mais alta, removendo todo o css e javascript desnecessario (Que ainda esta sendo modificado). Deixando o layout o mais leve possível, com isso estou criando dentro de um subdominio https://m.dominio.com.br que será um PWA - aplicação pelo navegador e logo mais um TWA - APP da Playstore, que irá rodar através do navegador.
Se o usuário acessar pelo www.dominio.com.br leva uma loja com outro layout. Se ele acessar através do celular, o script reconhece o modelo do sistema OP sendo Android ou IOS ou outro, e direciona ele ao m.dominio.com.br, quando ele acessa além de ser mais rápido em um layout com experiência mobile, ele tem a possibilidade de instalar que irá rodar pelo navegador, tanto Chrome,Edge ou Safari. E mais tarde quando finalizado o projeto poderá instalar através do PLAYSTORE (Android) ou AAPStore (Apple). Esse é o projeto com 90% conclusão.

No caso da multiloja existem 2 lojas diferentes tratadas diferentes com 1 administração. Função nativa do O.C.

O que fiz foi unificar os pedidos e diferencia-los por Site e APP, mas que tanto no admin e no histórico de pedidos do usuário deverá aparecer todos os pedidos.

Até que foi simples
No arquivo model no caminho do catalog/account/order.php

Busque por
Código: Selecionar todos
$query = $this->db->query("SELECT o.order_id, o.firstname, o.lastname, os.name as status, o.date_added, o.total, o.currency_code, o.currency_value FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_status os ON (o.order_status_id = os.order_status_id) WHERE o.customer_id = '" . (int)$this->customer->getId() . "' AND o.order_status_id > '0' AND o.store_id = '" . (int)$this->config->get('config_store_id') . "' AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.order_id DESC LIMIT " . (int)$start . "," . (int)$limit);
Substitua por
Código: Selecionar todos
$query = $this->db->query("SELECT o.order_id, o.firstname, o.lastname, os.name as status, o.date_added, o.total, o.currency_code, o.currency_value FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_status os ON (o.order_status_id = os.order_status_id) WHERE o.customer_id = '" . (int)$this->customer->getId() . "' AND o.order_status_id > '0' AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.order_id DESC LIMIT " . (int)$start . "," . (int)$limit);
Busque no mesmo arquivo:
Código: Selecionar todos
$query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` o WHERE customer_id = '" . (int)$this->customer->getId() . "' AND o.order_status_id > '0' AND o.store_id = '" . (int)$this->config->get('config_store_id') . "'");
E substitua por:
Código: Selecionar todos
$query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` o WHERE customer_id = '" . (int)$this->customer->getId() . "' AND o.order_status_id > '0'");
Assim o usuário ao acessar sua conta, poderá ver no histórico de pedidos todos os pedidos criados, indiferente da loja onde foi feito o pedido.

Grato e abs
reds gostou disso

Ola @felipesujf Se você extrai os arquiv[…]

extensção -> Módulos

Voltou ao normal sozinho

Olá Uso o OpenCart 2 e tenho algumas d&uac[…]

Night games. One night, no worries Real Women P[…]