Skip to content

Commit

Permalink
initial
Browse files Browse the repository at this point in the history
  • Loading branch information
Ferreiramg committed Feb 14, 2018
0 parents commit 46a66b1
Show file tree
Hide file tree
Showing 17 changed files with 1,821 additions and 0 deletions.
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

61 changes: 61 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
Módulo Correios Opencart 3.0
-----------------------------------------------

Parâmetros usados pelos correios:
--------------------------------

[Visite:] (http://www.correios.com.br/para-voce/precisa-de-ajuda/limites-de-dimensoes-e-de-peso)

Nota: Sedex Hoje tem peso e dimensões máximas menores que o mensionado pelo site dos Correios.

Requisitos
----------
1 - PHP ^5.6

2 - [Template Switcher]( https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=31589&filter_member=JNeuhoff)

Instalação
----------

1 - Instale o módulo pelo admin (Extensões -> Instalador).

2 - Configure as opções do módulo Correios (Extensões -> Fretes).

Observações:
-----------

1) Os valores dos fretes obtidos diretamente do site dos Correios são estimativas que devem ser confirmados no ato da postagem.

2) Para o correto funcionamento do módulo é essencial o cadastro correto das dimensões e pesos do produtos.
As dimensões podem ser em milímetros ou centímetros. O peso em gramas ou kilogramas.

3) Se as opções dos Correios não aparecerem consulte o log de erros do OpenCart para mais detalhes.

4) Nem todo CEP é coberto por alguns serviços, como o Sedex 10. Neste caso, a opção de entrega deste serviço não aparecerá para o cliente.

NOTA:
-----------

> O sistema ainda não está totalmente pronto, não havendo um tratamento de erros. Estude o codigo e teste antes de colocalo em produção.
Erros mais comuns
-----------

*** OPÇÃO DOS CORREIOS NÃO APARECE NA LOJA ***

Várias razões pode contribuir para que os Correios não aparece nas opções de entrega:

-> CEP de origem e destino incorretos
-> Dimensões e pesos dos produtos em branco ou fora dos padrões dos Correios
-> Moeda (Real) não configurada na loja
-> Problemas com o webservice dos Correios (neste caso não tem muito o que fazer a não ser esperar o serviço voltar a normalidade)
-> Instalação da versão incorreta do módulo para a versão da sua loja.

----------------------------
Dúvidas, sugestões e avisos sobre bugs acessem o tópico do módulo no fórum do OpenCart Brasil:
http://forum.opencartbrasil.com.br/

----------------------------

Projeto Original de:
Júlio César Campos Guimarães
2 changes: 2 additions & 0 deletions upload/.gitinore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.phpintel
.idea
5 changes: 5 additions & 0 deletions upload/.idea/inspectionProfiles/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions upload/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions upload/.idea/upload.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 46 additions & 0 deletions upload/.idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

186 changes: 186 additions & 0 deletions upload/admin/controller/extension/shipping/correios.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
<?php

class ControllerExtensionShippingCorreios extends Controller
{
private $error = array();

public function index()
{
$this->load->language('extension/shipping/correios');

$this->document->setTitle($this->language->get('heading_title'));

$this->load->model('setting/setting');

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {

$this->model_setting_setting->editSetting('shipping_correios', $this->request->post);

$this->session->data['success'] = $this->language->get('text_success');

$this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true));
}

$data['heading_title'] = $this->language->get('heading_title');

$data['text_edit'] = $this->language->get('text_edit');
$data['text_enabled'] = $this->language->get('text_enabled');
$data['text_disabled'] = $this->language->get('text_disabled');
$data['text_all_zones'] = $this->language->get('text_all_zones');
$data['text_none'] = $this->language->get('text_none');
$data['text_yes'] = $this->language->get('text_yes');
$data['text_no'] = $this->language->get('text_no');

$data['entry_servicos'] = $this->language->get('entry_servicos');
$data['entry_codigo'] = $this->language->get('entry_codigo');
$data['entry_nome'] = $this->language->get('entry_nome');
$data['entry_a_cobrar'] = $this->language->get('entry_a_cobrar');
$data['entry_postcode'] = $this->language->get('entry_postcode');
$data['entry_contrato_codigo'] = $this->language->get('entry_contrato_codigo');
$data['entry_contrato_senha'] = $this->language->get('entry_contrato_senha');
$data['entry_max_declarado'] = $this->language->get('entry_max_declarado');
$data['entry_min_declarado'] = $this->language->get('entry_min_declarado');
$data['entry_max_soma_lados'] = $this->language->get('entry_max_soma_lados');
$data['entry_min_soma_lados'] = $this->language->get('entry_min_soma_lados');
$data['entry_max_lado'] = $this->language->get('entry_max_lado');
$data['entry_max_peso'] = $this->language->get('entry_max_peso');
$data['entry_mao_propria'] = $this->language->get('entry_mao_propria');
$data['entry_aviso_recebimento'] = $this->language->get('entry_aviso_recebimento');
$data['entry_declarar_valor'] = $this->language->get('entry_declarar_valor');
$data['entry_total'] = $this->language->get('entry_total');
$data['entry_prazo_adicional'] = $this->language->get('entry_prazo_adicional');
$data['entry_adicional'] = $this->language->get('entry_adicional');
$data['entry_status'] = $this->language->get('entry_status');
$data['entry_tax_class'] = $this->language->get('entry_tax_class');
$data['entry_geo_zone'] = $this->language->get('entry_geo_zone');
$data['entry_sort_order'] = $this->language->get('entry_sort_order');

$data['help_codigo'] = $this->language->get('help_codigo');
$data['help_nome'] = $this->language->get('help_nome');
$data['help_a_cobrar'] = $this->language->get('help_a_cobrar');
$data['help_postcode'] = $this->language->get('help_postcode');
$data['help_contrato_codigo'] = $this->language->get('help_contrato_codigo');
$data['help_contrato_senha'] = $this->language->get('help_contrato_senha');
$data['help_max_declarado'] = $this->language->get('help_max_declarado');
$data['help_min_declarado'] = $this->language->get('help_min_declarado');
$data['help_max_soma_lados'] = $this->language->get('help_max_soma_lados');
$data['help_min_soma_lados'] = $this->language->get('help_min_soma_lados');
$data['help_max_lado'] = $this->language->get('help_max_lado');
$data['help_max_peso'] = $this->language->get('help_max_peso');
$data['help_mao_propria'] = $this->language->get('help_mao_propria');
$data['help_aviso_recebimento'] = $this->language->get('help_aviso_recebimento');
$data['help_declarar_valor'] = $this->language->get('help_declarar_valor');
$data['help_total'] = $this->language->get('help_total');
$data['help_prazo_adicional'] = $this->language->get('help_prazo_adicional');
$data['help_adicional'] = $this->language->get('help_adicional');

$data['button_save'] = $this->language->get('button_save');
$data['button_cancel'] = $this->language->get('button_cancel');
$data['button_remove'] = $this->language->get('button_remove');
$data['button_add_servico'] = $this->language->get('button_add_servico');

$data['tab_general'] = $this->language->get('tab_general');

if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}

if (isset($this->error['required'])) {
$data['error_warning'] = $this->error['required'];
} else {
$data['error_warning'] = '';
}

$data['breadcrumbs'] = array();

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
);

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true)
);

$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true)
);

$data['action'] = $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true);

$data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true);


if (isset($this->request->post['shipping_correios_servicos'])) {
$data['correios_servicos'] = $this->request->post['shipping_correios_servicos'];
} else {
$data['correios_servicos'] = $this->config->get('shipping_correios_servicos');
}

if (empty($data['correios_servicos'])) {
$data['correios_servicos'] = array();
}

if (isset($this->request->post['correios_status'])) {
$data['correios_status'] = $this->request->post['shipping_correios_status'];
} else {
$data['correios_status'] = $this->config->get('shipping_correios_status');
}

if (isset($this->request->post['shipping_correios_tax_class_id'])) {
$data['correios_tax_class_id'] = $this->request->post['shipping_correios_tax_class_id'];
} else {
$data['correios_tax_class_id'] = $this->config->get('shipping_correios_tax_class_id');
}

if (isset($this->request->post['shipping_correios_tax_class_id'])) {
$data['correios_geo_zone_id'] = $this->request->post['shipping_correios_geo_zone_id'];
} else {
$data['correios_geo_zone_id'] = $this->config->get('shipping_correios_geo_zone_id');
}

if (isset($this->request->post['shipping_correios_sort_order'])) {
$data['correios_sort_order'] = $this->request->post['shipping_correios_sort_order'];
} else {
$data['correios_sort_order'] = $this->config->get('shipping_correios_sort_order');
}

$this->load->model('localisation/tax_class');

$data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses();

$this->load->model('localisation/geo_zone');

$data['geo_zones'] = $this->model_localisation_geo_zone->getGeoZones();

$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');


$this->response->setOutput($this->load->view('extension/shipping/correios', $data));

}

protected function validate()
{
if (!$this->user->hasPermission('modify', 'extension/shipping/correios')) {
$this->error['warning'] = $this->language->get('error_permission');
}

if (!empty($this->request->post['shipping_correios_servicos'])) {
foreach ($this->request->post['shipping_correios_servicos'] as $servico) {
if ((utf8_strlen($servico['codigo']) == 0) || (utf8_strlen($servico['nome']) == 0) || (utf8_strlen($servico['postcode']) == 0) || (utf8_strlen($servico['max_declarado']) == 0) || (utf8_strlen($servico['min_declarado']) == 0) || (utf8_strlen($servico['max_soma_lados']) == 0) || (utf8_strlen($servico['min_soma_lados']) == 0) || (utf8_strlen($servico['max_lado']) == 0) || (utf8_strlen($servico['max_peso']) == 0)) {
$this->error['required'] = $this->language->get('error_required');
break;
}
}
}

return !$this->error;
}
}
71 changes: 71 additions & 0 deletions upload/admin/language/en-gb/extension/shipping/correios.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?php
// Heading
$_['heading_title'] = 'Correios';

// Text
$_['text_edit'] = 'Editar o frete pelos Correios';
$_['text_shipping'] = 'Formas de Envio';
$_['text_success'] = 'Módulo Correios atualizado com sucesso!';

// Entry
$_['entry_servicos'] = 'Serviços - Adicione/configure os serviços que irá usar e remove os que não serão usados.';

$_['entry_codigo'] = 'Código';
$_['entry_nome'] = 'Nome';
$_['entry_a_cobrar'] = 'A cobrar';
$_['entry_postcode'] = 'CEP origem';
$_['entry_contrato_codigo'] = 'Código ADM';
$_['entry_contrato_senha'] = 'Senha';

$_['entry_max_declarado'] = 'Max declarado';
$_['entry_min_declarado'] = 'Min declarado';

$_['entry_max_soma_lados'] = 'Max soma lados';
$_['entry_min_soma_lados'] = 'Min soma lados';
$_['entry_max_lado'] = 'Lado Max';
$_['entry_max_peso'] = 'Peso Max';

$_['entry_mao_propria'] = 'Mão própria';
$_['entry_aviso_recebimento'] = 'Aviso rec.';
$_['entry_declarar_valor'] = 'Declarar valor';

$_['entry_total'] = 'Min frete grátis';
$_['entry_prazo_adicional'] = 'Prazo adicional';
$_['entry_adicional'] = 'Valor adicional (%)';

$_['entry_status'] = 'Situação';
$_['entry_tax_class'] = 'Grupo de Impostos';
$_['entry_geo_zone'] = 'Região Geográfica';
$_['entry_sort_order'] = 'Ordem';

// Button
$_['button_add_servico'] = 'Adicionar serviço';

// Help
$_['help_codigo'] = 'Código do serviço. Se tiver dúvida, consulte a comunidade do OpenCart ou o site dos Correios.';
$_['help_nome'] = 'Descrição do Serviço. É o nome que irá aparecer para o cliente nas formas de frete disponíveis.';
$_['help_a_cobrar'] = 'Habilite se o serviço é a cobrar.';
$_['help_postcode'] = 'CEP de origem';
$_['help_contrato_codigo'] = 'Código administrativo do contrato com os Correios. Requerido somente para serviços com contrato com os Correios.';
$_['help_contrato_senha'] = 'Senha do contrato com os Correios. Requerido somente para serviços com contrato com os Correios.';

$_['help_max_declarado'] = 'O Valor Declarado não deve exceder esse valor. É o limite máximo definido pelos Correios. Opção Declarar Valor deve estar habilitado.';
$_['help_min_declarado'] = 'O Valor Declarado não deve ser inferior a esse valor. É o mínimo definido pelos Correios. Opção Declarar Valor deve estar habilitado.';

$_['help_max_soma_lados'] = 'A soma resultante do comprimento + largura + altura não deve superar esse valor. É o limite máximo definido pelos Correios. Em cm';
$_['help_min_soma_lados'] = 'A soma resultante do comprimento + largura + altura não deve ser inferior a esse valor. É o mínimo definido pelos Correios. Em cm. Se a soma do pacote for inferior, este limite será usado.';
$_['help_max_lado'] = 'O comprimento ou largura ou altura do pacote não deve superar esse valor. É o maior lado do pacote definido pelos Correios. Em cm';
$_['help_max_peso'] = 'O peso do pacote não deve superar esse valor. É o maior peso definido pelos Correios. Em Kg';

$_['help_mao_propria'] = 'É o serviço opcional pelo qual o remetente recebe a garantia de que o objeto, por ele postado sob registro, será entregue somente ao próprio destinatário, através da confirmação de sua identidade.';
$_['help_aviso_recebimento'] = 'Aviso de Recebimento. É o serviço adicional que, através do preenchimento de formulário próprio, físico ou digital, permite comprovar, junto ao remetente, a entrega do objeto.';
$_['help_declarar_valor'] = 'É o serviço adicional pelo qual o cliente declara o valor de um objeto postado sob registro, para fins de ressarcimento, em caso de extravio ou espoliação. Alguns serviços exigem sua habilitação, como Sedex a Cobrar e PAC a Cobrar.';

$_['help_total'] = 'Total da compra (carrinho) para habilitar o frete grátis para esse serviço.';
$_['help_prazo_adicional'] = 'Prazo de entrega adicional (em dias) somado ao prazo dos Correios.';
$_['help_adicional'] = 'Adicional somado ao valor final do frete. Em %';

// Error
$_['error_permission'] = 'Atenção: Você não possui permissão para modificar o módulo Correios!';
$_['error_required'] = 'Atenção: Há campos obrigatórios vazios ou nenhum serviço foi adicionado!';
?>
Loading

0 comments on commit 46a66b1

Please sign in to comment.