
# ShipSmart Plugin for WooCommerce

[![Quality Gate Status](https://code-review.apiki.com/api/project_badges/measure?project=Apiki_shipsmart-plugin_AYgGI79DnnQI-V6nS-fd&metric=alert_status&token=sqb_43b5e3bfd37b3e7874dd4e2fa263cc46581807c2)](https://code-review.apiki.com/dashboard?id=Apiki_shipsmart-plugin_AYgGI79DnnQI-V6nS-fd)

Solução para logística crossborder. Cálculo de frete, impostos, gestão de pedidos e envios internacionais.

## Pré-requisitos

Antes de instalar o plugin, certifique-se de que você possui:

- **WordPress** >= 5.0
- **PHP** >= 7.4
- **WooCommerce** >= 5.3 (versão mais recente recomendada)
- **Node.js** >= 16.20.0 (usar essa versão)
- **Composer** >= 2.0
- **NPM** ou **Yarn**

## 🚀 Instalação e Configuração

### 1. Clone do Repositório

```bash
git clone https://github.com/Apiki/shipsmart-plugin.git
cd shipsmart-plugin
```

### 2. Instalação das Dependências

#### 2.1. Dependências PHP (Composer)
```bash
composer install
```

#### 2.2. Dependências Node.js
**Usando NPM:**
```bash
npm install
```

**Ou usando Yarn:**
```bash
yarn install
```

### 3. Build dos Assets

**Para desenvolvimento:**
```bash
npm run dev
# ou
yarn dev
```

**Para produção:**
```bash
npm run build
# ou
yarn build
```

### 4. Configuração do Ambiente WordPress

#### 4.1. Banco de Dados
Se você ainda não possui um site WordPress configurado:

1. Crie um banco de dados
2. Configure um site WordPress com as seguintes características:
   - **Tema**: Qualquer tema compatível com WooCommerce
   - **Plugins obrigatórios**: WooCommerce
   - **Configuração básica**: Moeda, país, zona de envio

#### 4.2. Instalação do Plugin
1. Copie a pasta do plugin para `wp-content/plugins/shipsmart-plugin`
2. Acesse o painel administrativo do WordPress
3. Vá em **Plugins** > **Plugins Instalados**
4. Ative o plugin **"Shipping with ShipSmart for WooCommerce"**

### 5. Configuração de Produtos

Para testar o plugin adequadamente, você precisa criar produtos com as seguintes informações obrigatórias:

#### 5.1. Criação de Produtos de Teste
1. Acesse **Produtos** > **Adicionar Novo**
2. Configure os seguintes campos obrigatórios:

**Dados do Produto:**
- Nome do produto
- Preço
- **Peso** (obrigatório para cálculo de frete)
- Dimensões (Largura, Altura, Comprimento)

**Campos Específicos do ShipSmart:**
- **Código HS** (Harmonized System Code)
- **Custo Base** (para cálculo de impostos)

#### 5.2. Exemplo de Produto
```
Nome: Camiseta Teste
Preço: R$ 50,00
Peso: 0.2 kg
Dimensões: 30cm x 20cm x 2cm
Código HS: 61091000
Custo Base: R$ 25,00
```

### 6. Configuração do Plugin

#### 6.1. Acesso às Configurações
1. No painel do WordPress, acesse **WooCommerce** > **ShipSmart**
2. Ou acesse diretamente o menu **ShipSmart** no painel lateral

#### 6.2. Configurações Principais

**API Configuration:**
- **API Key**: Insira sua chave da API do ShipSmart
- **Environment**: Selecione entre Sandbox (testes) ou Production

**Shipping Settings:**
- Configure as zonas de envio internacional
- Defina os contratos de frete disponíveis
- Configure os métodos de envio do ShipSmart

**Product Settings:**
- Ative os campos customizados (Código HS, Custo Base)
- Configure valores padrão se necessário

#### 6.3. Configuração de Métodos de Envio
1. Acesse **WooCommerce** > **Configurações** > **Envio**
2. Selecione a zona de envio desejada (ou crie uma nova para envios internacionais)
3. Adicione o método **"ShipSmart"**
4. Configure:
   - Título do método
   - Contrato associado
   - Configurações específicas

### 7. Testes

#### 7.1. Teste Básico de Funcionamento
1. Acesse a loja (frontend)
2. Adicione um produto com peso configurado ao carrinho
3. Vá para o checkout
4. Preencha um endereço internacional
5. Verifique se o frete do ShipSmart está sendo calculado

#### 7.2. Teste de API
1. No painel do ShipSmart, acesse **Configurações**
2. Clique em **"Testar Conexão com API"**
3. Verifique se a conexão está funcionando

#### 7.3. Teste de Pedido Completo
1. Finalize um pedido de teste
2. Acesse **Pedidos** no painel
3. Verifique se as informações do ShipSmart estão presentes
4. Teste a sincronização com a plataforma ShipSmart

## Desenvolvimento

### Scripts Disponíveis

```bash
# Desenvolvimento com watch
npm run dev

# Build para produção
npm run build

### Problemas Comuns

1. **Plugin não aparece no admin**
   - Verifique se executou `composer install`
   - Confirme que as dependências estão instaladas

2. **Assets não carregam**
   - Execute `npm run build` ou `yarn build`
   - Verifique se a pasta `dist/` foi criada

3. **Erro de API**
   - Verifique a chave da API
   - Confirme se está usando o ambiente correto

4. **Frete não calcula**
   - Confirme que os produtos têm peso configurado
   - Verifique se os códigos HS estão preenchidos
   - Confirme que as zonas de envio estão configuradas

5. **Frete não aparece pra ser selecionado**
    - Confime se ativou os fretes nas configurações
    - Confirme se o endereço e de um pais diferente da loja
    - Confime se é chace api esta correta, para isso acesse o site de stage e valide se aparece no checkou o frete
```

### 8. Motivo da criação da branch stage
Por questões de organização, foi definido que seria melhor manter uma branch dedicada apenas ao plugin atualizado. Assim, a stage deve conter todas as últimas atualizações do plugin, diferentemente das demais branchs que incluem também a instalação completa do WordPress. Dessa forma, ela será a versão mais próxima possível do que é disponibilizado no WordPress.org para o plugin ShipSmart.
