No Opencart existe uma funcionalidade para automatizar o envio de e-mail de pedido ao administrador que enviamos ao cliente após fazer um pedido.
Para Opencart 2.2
Siga as etapas a seguir para automatizar o envio de e-mails de pedidos ao administrador:
Abra o painel de administração e vá para Sistema -> Configuração. Nesta página, você verá uma listagem da loja.
Abra uma loja no modo de edição clicando no ícone de edição.
Abra o “Opção” guia e verifique “Correio de alerta de novo pedido” na seção de checkout. Selecione o ‘Sim‘ botão de rádio e salvar.
Consulte as capturas de tela abaixo
Observação: Função adicionar histórico de pedidos() no arquivo catalog/model/checkout/order.php é usado para enviar e-mail para e-mail para admin. Se você quiser fazer alguma alteração no e-mail, pode fazer esta função. Procurar por ‘if ($this->config->get(‘config_order_mail’)) {‘ para encontrar o código para enviar e-mail para o administrador.
Para Opencart 2.3
Siga as etapas a seguir para automatizar o envio de e-mails de pedidos ao administrador:
Abra o painel de administração e vá para Sistema -> Configuração. Nesta página, você verá uma listagem da loja.
Abra uma loja no modo de edição clicando no ícone de edição.
Abra o ‘enviar‘ e verifique se há “Correio de Alerta” no “Alertas de e-mail” seção. Marque a caixa de seleção ‘ordens‘ e salve.
Consulte as capturas de tela abaixo
Observação: função addHistórico do Pedido() in catalog/model/checkout/order.php file é usado para enviar e-mail para e-mail para admin. Se você quiser fazer alguma alteração no e-mail, pode fazer esta função. Procurar por ‘if (in_array(‘order’, (array)$this->config->get(‘config_mail_alert’))) {‘ para encontrar o código para enviar e-mail para o administrador.
No final:
A fim de melhorar a funcionalidade da sua loja OpenCart, a Knowband oferece uma grande variedade de opções gratuitas e pagas Extensões OpenCart. Com uma grande variedade de recursos disponíveis nesses módulos, o administrador da loja pode facilmente iniciar, desenvolver e expandir seus negócios. Para saber mais sobre a funcionalidade e os recursos dos Módulos OpenCart, sinta-se à vontade para nos contatar em support@Knowband.com.
Depois de ler este blog, você poderá exibir todos os produtos quando a pesquisa estiver em branco.
Problema Declaração
Atualmente no Opencart, quando o usuário pesquisa por qualquer string usando a funcionalidade de pesquisa, nenhum produto será retornado se nenhum produto de pesquisa for encontrado no banco de dados. Queremos que retorne todos os produtos quando a pesquisa estiver vazia.
Implementação de Código
Para conseguir isso, teremos que fazer algumas alterações na função de modelo que estamos usando para buscar produtos do banco de dados com base na palavra-chave de pesquisa inserida. Aqui estamos fazendo mudanças getProducts () ?function of model catálogo / modelo / catálogo / product.php como estamos usando esta função para exibir resultados com base na palavra-chave de pesquisa.
Nota: você pode fazer as mesmas alterações na função de modelo que está usando para buscar produtos. Aqui está o código que nós adicionamos no modelo:
/ * Verificado se o resultado vazio (linhas afetadas 0) da consulta está sendo executado para buscar dados com base na palavra-chave de pesquisa. * Se sim, adicione nova consulta para buscar novos produtos adicionados e execute os mesmos. * Ao fazer isso, exibiremos nossos novos produtos na página de pesquisa, em vez de mostrar a página em branco. * / if ($ query-> num_rows == 0) {$ sql = "SELECIONAR DISTINCT p.product_id FROM". DB_PREFIX. "product p LEFT JOIN". DB_PREFIX. "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN". DB_PREFIX. "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' E p.date_available <= NOW () E p2s.store_id = '". (int) $ this-> config-> get ('config_store_id'). "'GROUP BY p.product_id PEDIDO POR p.product_id DESC LIMIT 20"; $ query = $ this-> db-> consulta ($ sql); }
Adicione este código logo após a execução da consulta principal ou logo após a linha ($ query = $ this-> db-> consulta ($ sql)). Nesse código, primeiro verificamos o número de linhas afetadas pela consulta principal (usada para buscar dados com base na palavra-chave de pesquisa). Se a linha afetada for 0 ($ query-> num_rows == 0) Em seguida, adicionamos nossa consulta para buscar novos produtos adicionados. Ao fazer isso, exibiremos nossos novos produtos na página de pesquisa, em vez de mostrar a página em branco.
Nota: aqui escrevemos a consulta para buscar novos produtos adicionados a partir do banco de dados, se a pesquisa estiver vazia. Você também pode adicionar consultas para buscar produtos especiais ou de melhor vendedor de acordo com sua necessidade.
Resumo
Depois de fazer as seguintes alterações no arquivo de modelo, novos produtos adicionados serão exibidos quando a pesquisa estiver vazia.
Depois de ler este blog, você será capaz de buscar produtos do banco de dados Opencart com base no parâmetro que é passado da URL.
Exigência
Temos que exibir os produtos mais recentes com base no parâmetro passado no URL. Usando este parâmetro, temos que decidir se temos que exibir produtos especiais ou não.
Implementação de Código
Para implementar isso, precisamos fazer mudanças em nosso controlador e modelo. No controlador nós adicionamos a condição para passar o parâmetro e no modelo faremos mudanças na consulta de acordo com o parâmetro passado. Para lidar com condição estamos usando show_special parâmetro no código. Abaixo está o código que temos que adicionar no controlador (catalog / controller / extension / module / latest.php):
/ * Checando a chave show_special no parâmetro get * Esta chave ($ show_special) será usada para buscar dados condicionalmente do banco de dados. * ie if $ show_special = 1 então exibe produtos que especiais * $ show_special = 0 então exibem produtos que não têm especiais * else * exibem todos os produtos independentemente de especiais * / if (isset ($ this-> request-> get [' show_special '])) {// passando o valor na variável se definido na URL $ show_special = $ this-> request-> get [' show_special ']; } else {// Caso contrário, uma string vazia será passada $ show_special = ''; } // Criando uma variável a ser passada para o modelo $ filter_data = array ('start' => ($ page - 1) * $ limite, 'limite' => $ limite, 'show_special' => $ show_special); // Chamando a função model para buscar dados do banco de dados de acordo com os dados passados na matriz filter_data. $ results = $ this-> model_catalog_product-> getProductLatest ($ filter_data);
Neste código, primeiro verificamos se 'show_special'parâmetro é definido no URL ou não. Se sim, defina o valor do parâmetro em uma variável $ show_special e se não, defina a variável como em branco. Então nós criamos uma matriz ($ default_data) com os valores em nome dos quais temos que buscar produtos do banco de dados. Então nós chamamos a função modelo getProductLatest () para buscar os produtos mais recentes de acordo com a variável passada ($ filter_data) na função. Aqui está a função que temos que adicionar no modelo (catálogo / modelo / catálogo / produto):
public function getProductLatest ($ data = array ()) {// Definindo $ join e $ condition parameters para buscar dados de produtos especiais se ($ data ['show_special'] == '1') {$ join = "LEFT JOIN" . DB_PREFIX. "product_special ps ON (ps.product_id = p.product_id)"; $ condition = "AND ps.customer_group_id = '". (int) $ this-> config-> get ('config_customer_group_id'). "'AND ((ps.date_start =' 0000-00-00 'OU ps.date_start <NOW ()) AND (ps.date_end =' 0000-00-00 'OU ps.date_end> AGORA () OU ps.date_end = '0001-01-01')) "; } // Configurando os parâmetros $ join e $ condition para buscar dados de produtos que não são specil elseif ($ data ['show_special'] == '0') {$ join = "LEFT JOIN". DB_PREFIX. "product_special ps ON (ps.product_id = p.product_id)"; $ condition = "AND ps.product_id IS NULL"; } else {// Definindo os parâmetros $ join e $ condition para buscar dados de todos os produtos, independentemente do especial $ join = ''; $ condition = ''; } // Consulta para buscar dados de produtos do banco de dados. Adicionado $ join e $ condition parâmetro na consulta para buscar dados de acordo $ sql = "SELECT DISTINCT p.product_id FROM". DB_PREFIX. "product p LEFT JOIN". DB_PREFIX. "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN". DB_PREFIX. "product_to_store p2s ON (p.product_id = p2s.product_id) $ aderir WHERE p.status = '1' E p.date_available <= NOW () E p2s.store_id = '". (int) $ this-> config-> get ('config_store_id'). "'$ condition GROUP BY p.product_id ORDER BY p.product_id DESC"; // Configurando o limite na consulta se passou LIMIT do controlador. if (isset ($ data ['iniciar']) || isset ($ data ['limite'])) {if ($ data ['início'] <0) {$ data ['início'] = 0; } if ($ data ['limite'] <1) {$ data ['limite'] = 20; } $ sql. = "LIMITE". (int) $ data ['iniciar']. ",". (int) $ data ['limite']; } $ product_data = array (); // Execute a consulta $ query = $ this-> db-> query ($ sql); // Loop para definir dados buscados na variável para passar no controlador. foreach ($ query-> linhas como $ result) {$ product_data [$ resultado ['product_id']] = $ this-> getProduct ($ resultado ['product_id']); } // Retorna os dados dos produtos para o controlador. return $ product_data; }
No modelo, definimos variáveis $ join e $ condition com base nas seguintes três condições:
Se show_special for 1: Neste caso, exibimos apenas produtos que são especiais. Como em todo o caso, os dados de produtos especiais são armazenados na tabela oc_product_special, por isso adicionamos a junção da tabela oc_product à tabela oc_product_secial para buscar dados apenas de produtos especiais.
Se show_special for 0: Neste caso, exibimos produtos que não estão configurados como especiais. Então, para encontrar produtos que não são especiais, temos que buscar produtos que estão em uma tabela especial, mas na tabela oc_product_special. Para isso, adicionamos a junção LEFT da tabela oc_product com a tabela oc_product_secial e a condição adicionada "ps.product_id IS NULL".
Se show_special for diferente de 0 e 1: Neste caso, temos que buscar todos os produtos, sejam eles especiais ou não. Então, para isso, buscamos diretamente os dados da tabela oc_product.
Depois de adicionar todas as três condições possíveis, escrevemos a consulta e a executamos. Em seguida, definimos todos os dados buscados $ product_data matriz e retornar o mesmo para o controlador.
Nota: aqui para buscar os produtos mais recentes, acabamos de usar 'Order by product_id DESC' na consulta. Se você deseja buscar dados de produtos que foram adicionados nos últimos dias, então você pode adicionar mais uma condição na cláusula WHERE, ou seja, date_added> 'any date'.
Resumo
Depois de seguir o procedimento acima, você poderá buscar os produtos especiais mais recentes com base no parâmetro passado para produtos especiais na URL.
Este documento dará uma ideia de como criar URLs SEO Friendly no Opencart (versão 2.x). Também explicará como personalizar a função Opencart para criar URLs de SEO diferentes das páginas padrão (página do produto, página da categoria etc.). Este documento também explicará como redirecionar 301 URLs de URLs antigos para novos URLs e URLs excluídos. O objetivo principal deste documento é aprender sobre como criar URLs SEO Friendly no Opencart (versão 2.x) e redirecionamentos de URL para manter nossa classificação de SEO no Google. Os URLs amigáveis para SEO são URLs bem elaborados que fornecem aos humanos e aos mecanismos de pesquisa uma indicação fácil de entender sobre o que será a página de destino.
Etapa padrão no Opencart para ativar o URL de SEO
No Opencart, existem configurações que temos que gerenciar no painel de administração para ativar URLs amigáveis para SEO.
A seguir estão as etapas para habilitar:
Abra o painel de administração. Vá para Sistema > Configuração. Em seguida, clique no botão de edição correspondente à loja na página de detalhes da loja.
Na página de configuração do sistema de edição, abra a guia ‘Servidor’.
No servidor, a guia seleciona o botão de opção ‘Sim’ correspondente a ‘Usar URL de SEO’ e, em seguida, clica no botão Salvar.
Ao fazer isso, o administrador poderá usar URLs de SEO.
Para salvar o URL de SEO de qualquer página de produto, vá para Catálogo > Produtos no painel de administração. Clique no botão de edição correspondente ao nome do produto. Na página de edição do produto, clique no botão ‘Dados‘ aba. Na guia Dados, há uma opção para ‘Palavra-chave SEO‘. Insira o URL de SEO do produto e salve. Consulte a tela abaixo:
categoria Página
Para salvar o URL de SEO de qualquer página de categoria, vá para Catálogo > Categorias no painel de administração. Clique no botão editar correspondente à categoria. Na página de edição da categoria, clique no botão ‘Dados‘ aba. Na guia Dados, há uma opção para ‘URL SEO“. Digite o URL de SEO da categoria e salve. Consulte a tela abaixo:
Página fabricante
Para salvar o URL de SEO de qualquer página de fabricante, vá para Catálogo > Fabricantes no painel de administração. Clique no botão de edição correspondente ao fabricante. Na página de edição do fabricante, há uma opção para ‘URL SEO“. Digite o URL de SEO do fabricante e salve.
Para salvar o URL de SEO de qualquer página de informações, vá para Catálogo > Informações no painel de administração. Clique no botão editar correspondente à página de informações. Na edição, a página de informações clica na guia ‘Dados’. Na aba Dados, há uma opção para ‘SEO URL’. Insira o SEO URL da página de informações e salve.
Consulte a tela abaixo:
Observação: O administrador também pode salvar o URL de SEO ao adicionar um novo produto, categoria, fabricante e página de informações. Se o administrador quiser criar um URL de SEO para qualquer página personalizada, ele deverá fazer as alterações de acordo (explicado abaixo no mesmo documento).
Fluxo técnico para URLs
No Opencart (versão 2.x) quando o usuário acessa qualquer URL (SEO ou não-SEO) ele chama o arquivo controlador seo_url.php localizado em catalogue/controller/startup. Este arquivo é chamado para encontrar o URL de SEO.
Observação: �O URL de SEO de cada página é armazenado na tabela ‘url_alias’ no banco de dados. Se o cliente acessar qualquer URL não SEO, ele chamará o arquivo seo_url.php. Nesse arquivo, há um código que pesquisa a URL SEO da URL Não SEO na coluna ‘palavra-chave’ da tabela url_alias correspondente à coluna ‘consulta’
Tabela url_alias no banco de dados
A tabela url_alias é usada para salvar URLs de SEO de todas as páginas. Existem as seguintes 3 colunas na tabela por padrão:
url_alias_id: Chave primária da tabela.
Consulta: contém o id de diferentes páginas como product_id, category_id e outras páginas.
Palavra-chave: contém a palavra-chave do URL de SEO da página correspondente
Criação de URL de SEO para páginas que não sejam padrão
Se o administrador criou páginas de destino e deseja veicular um URL de SEO para a página. Para isso primeiro tem que fazer uma entrada da página na tabela url_alias.
1 exemplo:
Se o administrador criou a página de destino ‘Sports’, ele deve fazer uma entrada na tabela url_alias como:
Na coluna de consulta: sport_id=1
Na coluna de palavras-chave: esportes
O administrador também deve fazer alterações no arquivo do controlador seo_url.php para sport_id.� O administrador deve adicionar uma condição para sport_id igual a product_id e category_id. Agora, se o administrador inserir a URL “host/index.php?route=product/landing_page&sport_id=1”, o código pesquisará a palavra-chave seo na tabela url_alias correspondente a sport_id=1 e, em seguida, exibirá a URL ‘host/sports’.
2 exemplo:
Neste exemplo, criaremos um URL de SEO para a página do blog. Para isso, temos que adicionar uma condição no arquivo do controlador e fazer uma entrada na tabela url_alias correspondente ao blog_id: Veja abaixo a captura de tela do arquivo seo_url.php:
No Opencart, se o administrador deseja criar novos URLs de SEO e deseja redirecionar 301 (redirecionamento permanente) ou 302 (redirecionamento temporário) em um novo URL, o administrador deve fazer as seguintes alterações no arquivo do controlador e na tabela url_alias.
Crie uma nova coluna old_keyword na tabela url_alias do tipo ‘varchar‘.
Handel condition no arquivo do controlador para pesquisar na coluna old_keyword se o usuário pesquisar o URL antigo.
Exemplo: Para redirecionar do URL antigo do ‘termos e condições‘ para a nova URL. Se o administrador quiser redirecionar qualquer página de informações do URL antigo para o novo, ele deve fazer uma entrada na tabela url_alias. Consulte a captura de tela abaixo:
Aqui
a palavra-chave antiga é: shop/terms-conditions.html
nova palavra-chave: ajuda/condições de termos
Mudanças no arquivo do controlador: Em seo_url.php, o administrador do controlador tem que lidar com as condições se a URL não for encontrada na coluna da palavra-chave. O primeiro sistema pesquisará o URL inserido na coluna de palavras-chave. Se não for encontrado, pesquisará na coluna old_keyword. Se encontrado, será redirecionado para o novo URL correspondente. Por favor, consulte a captura de tela abaixo:
Redirecionamentos de URL no Opencart para páginas excluídas
Se o administrador quiser redirecionar o URL de categorias, produtos ou outras páginas excluídas na página inicial, ele poderá fazer alterações no arquivo do controlador de acordo.
Exemplo: Aqui, redirecionaremos 301 URLs de categorias excluídas Etapas para redirecionar URL de categorias excluídas:
Crie um arquivo e defina uma matriz com a chave como URL de categoria excluída e valor como URL para o qual o administrador deseja redirecionar. Consulte a captura de tela abaixo para criar uma matriz de categorias excluídas.
��� Nota: Aqui definimos o valor em branco porque queremos redirecionar os URLs das categorias excluídas para a página inicial
Adicione uma condição no controlador seo_url.php para redirecionar da URL de categoria excluída para a nova URL.
Nesse código primeiro, incluímos um arquivo contendo URLs de categorias excluídas e, em seguida, verificamos se a URL inserida está no array definido ou não. Se sim, redirecionado para um novo URL, caso contrário, redirecionado para a página não encontrada.
No final:
Uma variedade de módulos e extensões OpenCart, gratuitas e pagas, estão disponíveis em Banda de conhecimento para impulsionar a operação da sua loja. Para saber em detalhes sobre as plataformas OpenCart, módulos disponíveis ou qualquer funcionalidade relacionada à plataforma, sinta-se à vontade para nos enviar um e-mail para support@Knowband.com.
As reações são mais expressivas em comparação com os botões simples de curtir e não gostar. Usando reações o usuário pode facilmente expressar seu pensamento porque os emoticons são basicamente uma forma de mostrar as emoções. Por outro lado, se usarmos o botão curtir e não gostar, o usuário não poderá mostrar a emoção exata. Usando emoticons podemos tornar nosso site mais expressivo para o usuário.
Objetivos do blog
Neste blog, você encontrará uma maneira fácil e rápida de implementar a funcionalidade Reações. Depois de passar pelo blog, você poderá criar um sistema de reação para o seu site igual ao botão Curtir do Facebook.
Trabalho
Haverá um botão Curtir e o restante dos botões Reação. Ao focar o botão Curtir, os botões Reação serão exibidos. JQuery será usado para lidar com os toques nos botões de reação. Ao tocar no botão de reação, uma solicitação Ajax é enviada na página like.php. A lógica para salvar/atualizar dados no banco de dados pode ser escrita na página do manipulador. Ao tocar no texto de reação novamente, a reação é desfeita e desta vez estamos enviando Ajax na página undo_like.php. Toda a funcionalidade para mostrar/ocultar os botões de reação e animação é adicionada através de JavaScript e CSS.
Criando a estrutura HTML
Antes de trabalhar na lógica, teremos que criar o layout. O HTML para o layout está a seguir –
Reações do Facebook Reações do Facebook Como Banda de conhecimento e 4.3.0 mil outros
Adicionando Estilo
Estamos usando dois arquivos CSS (style.css e react.css) para adicionar estilo na página.
Nota: Você pode encontrar os arquivos CSS na compilação completa do projeto.
Adicionando Funcionalidade
Assim que nosso layout estiver pronto, podemos trabalhar nas funcionalidades. Primeiro, lidaremos com os toques nos botões Curtir e Reação. Para isso, usaremos jQuery e adicionaremos os eventos de clique. O código para adicionar os eventos de clique é fornecido abaixo –
// Adicionando o evento click assim que o documento estiver pronto $(document).ready(function () { // Adicionando o evento click no botão de reação usando o nome da classe $(".emoji").on("click ", function() { // like click // Aqui estaremos escrevendo o código, que será executado ao tocar no botão de reação }); });
No foco do botão de reação, estaremos enviando a solicitação Ajax na página php. A solicitação Ajax é fornecida abaixo –
// Enviando solicitação Ajax na página do manipulador (like.php) para realizar as operações do banco de dados $.ajax({ type: "POST", url: "php/like.php", data: "", success: function (response) { // Este código é executado após o sucesso do Ajax } })
Em seguida, teremos que criar uma página de manipulador. Este pode ser um arquivo php simples.
Observação: O usuário pode realizar alterações no banco de dados no arquivo do manipulador de acordo com o requisito. O que quer que seja retornado/impresso nesse arquivo é retornado à solicitação Ajax e podemos atualizar o layout de acordo. Aqui nós adicionamos o código para atualizar o layout para mostrar a reação salva atualmente. O código completo do arquivo react.js está a seguir –
$(document).ready(function () { $(".emoji").on("click", function () { // Aqui estamos obtendo a reação que é tocada usando o atributo data-reaction definido em main page var data_reaction = $(this).attr("data-reaction"); // Enviando solicitação Ajax na página do manipulador para realizar as operações do banco de dados $.ajax({ type: "POST", url: "php/like.php ", data: "data_reaction=" + data_reaction, success: function (response) { // Este código será executado depois que o Ajax for bem-sucedido $(".like-details").html("Você, Knowband e 10k outros") ; $(".reaction-btn-emo").removeClass().addClass('reaction-btn-emo').addClass('like-btn-' + data_reaction.toLowerCase()); $(".reaction- btn-text").text(data_reaction).removeClass().addClass('reaction-btn-text').addClass('reaction-btn-text-' + data_reaction.toLowerCase()).addClass("active") ; if (data_reaction == "Like") $(".like-emo").html(' '); else $(".like-emo").html(' '); } }) }); $(".reaction-btn-text").on("click", function () { // desfaz like click if ($(this).hasClass("active")) { // Enviando solicitação Ajax na página do manipulador para executar as operações do banco de dados $.ajax({ type: "POST", url: "php/undo_like.php", data: "", success: function (response) { // Manipula quando o Ajax é bem sucedido $(". react-btn-text").text("Like").removeClass().addClass('reaction-btn-text'); $(".reaction-btn-emo").removeClass().addClass('reaction -btn-emo').addClass("like-btn-default"); $(".like-emo").html(' '); $(".like-details").html("Knowband e 1k outros"); } }) } }) });
Resumo
Você pode baixar o projeto completo no seguinte local –
Neste tutorial, não abordamos a conexão e as operações do banco de dados, pois a lógica do banco de dados pode ser diferente de acordo com suas necessidades. Com a ajuda deste projeto, você pode implementar facilmente a funcionalidade de reações igual ao Facebook em sua página da web.