n8n-nodes-atendix 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -0
- package/dist/nodes/Atendix/Atendix.node.js +12 -1
- package/package.json +3 -3
package/README.md
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Atendix - Conector Tray Commerce para n8n 🚀
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
O **Atendix** é o conector definitivo para integrar sua loja **Tray Commerce** ao ecossistema de automação do **n8n**. Esqueça a complexidade de lidar com tokens manuais e exposição de chaves sensíveis.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## ✨ Por que usar o Atendix?
|
|
12
|
+
|
|
13
|
+
- 🔒 **Segurança Total:** Suas chaves `Consumer Key` e `Consumer Secret` ficam protegidas e nunca são expostas no workflow.
|
|
14
|
+
- 🔄 **Autenticação Automática:** Gerenciamento inteligente de `Access Token` e `Refresh Token` sem interrupções.
|
|
15
|
+
- ⚖️ **Respeito ao Rate Limit:** Implementação nativa de *Throttling* (500ms) para garantir conformidade com o limite de 180 req/min da Tray.
|
|
16
|
+
- 💼 **Modelo SaaS:** Licenciamento centralizado para garantir suporte e atualizações contínuas.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 🛠️ Instalação
|
|
21
|
+
|
|
22
|
+
Para instalar este nó em sua instância n8n:
|
|
23
|
+
|
|
24
|
+
1. Acesse **Settings** (Configurações).
|
|
25
|
+
2. Vá em **Community Nodes** (Nós da Comunidade).
|
|
26
|
+
3. Clique em **Install a node**.
|
|
27
|
+
4. Digite o nome do pacote: `n8n-nodes-atendix`.
|
|
28
|
+
5. Aceite os termos e clique em **Install**.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 🔑 Configuração das Credenciais
|
|
33
|
+
|
|
34
|
+
Após a instalação, configure sua credencial Atendix com apenas dois campos:
|
|
35
|
+
|
|
36
|
+
1. **API Address:** A URL da sua loja (ex: `https://{SUA_LOJA}.commercesuite.com.br/web_api`).
|
|
37
|
+
2. **Authorization Code:** O código de autorização gerado no painel da Tray.
|
|
38
|
+
|
|
39
|
+
> **Nota:** Certifique-se de que sua loja possui uma licença ativa em [Atendix.co](https://atendix.co) para liberar o tráfego de dados.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 📦 Recursos Disponíveis (v1.0.1)
|
|
44
|
+
|
|
45
|
+
- ✅ **Pedidos:** Busca por ID e Listagem com filtros de status e data.
|
|
46
|
+
- ✅ **Clientes:** Busca por e-mail ou documento (CPF/CNPJ).
|
|
47
|
+
- ✅ **Produtos:** Consulta rápida por ID ou SKU.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## ⚙️ Requisitos Técnicos
|
|
52
|
+
|
|
53
|
+
- **n8n version:** >= 1.0.0
|
|
54
|
+
- **Node.js:** >= 18.x
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 📄 Licença
|
|
59
|
+
|
|
60
|
+
Distribuído sob a licença MIT. Veja `LICENSE` para mais informações.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 📞 Suporte e Contato
|
|
65
|
+
|
|
66
|
+
Dúvidas ou problemas com a ativação da sua licença?
|
|
67
|
+
- **Site:** [https://atendix.co](https://atendix.co)
|
|
68
|
+
- **E-mail:** contato@atendix.co
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.Atendix = void 0;
|
|
10
10
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
11
|
+
const wait = (ms) => new Promise(res => setTimeout(res, ms));
|
|
11
12
|
class Atendix {
|
|
12
13
|
constructor() {
|
|
13
14
|
this.description = {
|
|
@@ -201,7 +202,7 @@ class Atendix {
|
|
|
201
202
|
console.error('LICENSE CHECK RESPONSE: ' + licenseCheck.autorizado);
|
|
202
203
|
if (!licenseCheck || licenseCheck.autorizado !== true) {
|
|
203
204
|
console.error('Resposta inválida do servidor de licenças:', licenseCheck);
|
|
204
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Sua licença Atendix para a loja ${storeBaseUrl} não está ativa ou não pode ser validada. Para liberar seu acesso e automatizar sua operação, acesse https://atendix.
|
|
205
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Sua licença Atendix para a loja ${storeBaseUrl} não está ativa ou não pode ser validada. Para liberar seu acesso e automatizar sua operação, acesse https://atendix.co e assine um plano agora mesmo!`);
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
208
|
catch (error) {
|
|
@@ -243,6 +244,11 @@ class Atendix {
|
|
|
243
244
|
if (resource === 'order') {
|
|
244
245
|
if (operation === 'get') {
|
|
245
246
|
const orderId = this.getNodeParameter('orderId', i);
|
|
247
|
+
if (i > 0) {
|
|
248
|
+
// Dá uma respirada de 500ms entre cada item da lista
|
|
249
|
+
// 500ms = 2 requisições por segundo = 120 por minuto (Seguro dentro dos 180)
|
|
250
|
+
await wait(500);
|
|
251
|
+
}
|
|
246
252
|
responseData = await this.helpers.httpRequest({
|
|
247
253
|
method: 'GET',
|
|
248
254
|
url: `${baseUrl}/orders/${orderId}`,
|
|
@@ -256,6 +262,11 @@ class Atendix {
|
|
|
256
262
|
qs.status = filters.status;
|
|
257
263
|
if (filters.limit)
|
|
258
264
|
qs.limit = filters.limit;
|
|
265
|
+
if (i > 0) {
|
|
266
|
+
// Dá uma respirada de 500ms entre cada item da lista
|
|
267
|
+
// 500ms = 2 requisições por segundo = 120 por minuto (Seguro dentro dos 180)
|
|
268
|
+
await wait(500);
|
|
269
|
+
}
|
|
259
270
|
responseData = await this.helpers.httpRequest({
|
|
260
271
|
method: 'GET',
|
|
261
272
|
url: `${baseUrl}/orders`,
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-atendix",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Conector Atendix para integração com Tray Commerce",
|
|
5
5
|
"keywords": ["n8n-community-node-package"],
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"homepage": "https://atendix.
|
|
7
|
+
"homepage": "https://atendix.co",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Atendix",
|
|
10
|
-
"email": "contato@atendix.
|
|
10
|
+
"email": "contato@atendix.co"
|
|
11
11
|
},
|
|
12
12
|
"main": "index.js",
|
|
13
13
|
"scripts": {
|