manux-cli
Version:
CLI para configuração de plataformas headless de e-commerce
395 lines (392 loc) • 11.9 kB
text/typescript
import { validateField } from './src/validators/schemas';
export const integrations = [
{
name: 'VTEX',
alias: 'vtex',
description: 'A Plataforma de Comércio Composable e Completa.',
url: 'https://vtex.com/pt-br/',
status: 'soon',
types: ['ecommerce'],
},
{
name: 'Shopify',
alias: 'shopify',
description: 'Experimente a Shopify gratuitamente e abra ou amplie sua empresa com uma plataforma que é muito mais que um software de e-commerce e conta com ferramentas para gerenciar tudo o que você precisa.',
url: 'https://www.shopify.com/br',
status: 'available',
types: ['ecommerce'],
requires: [
{
type: 'text',
name: 'url',
required: true,
message: 'Qual o URL da sua conta na Shopify?',
validate: (value: string) => validateField(value, 'url', true)
},
{
type: 'text',
name: 'accessToken',
required: true,
message: 'Qual o accessToken da sua conta na Shopify?',
validate: (value: string) => validateField(value, 'accessToken', true)
},
{
type: 'text',
name: 'apiKey',
required: false,
message: 'Qual o apiKey da sua conta na Shopify?',
validate: (value: string) => validateField(value, 'apiKey', true)
},
{
type: 'text',
name: 'apiSecretKey',
required: false,
message: 'Qual o apiSecretKey da sua conta na Shopify?',
validate: (value: string) => validateField(value, 'apiSecretKey', true)
},
],
},
{
name: 'Nuvemshop',
alias: 'nuvemshop',
description: 'Com a Nuvemshop, você cria uma loja virtual grátis sem a necessidade de conhecimentos técnicos e sem limite de produtos, vendas e visitas.',
url: 'https://www.nuvemshop.com.br/',
status: 'available',
types: ['ecommerce'],
requires: [
{
type: 'text',
name: 'url',
required: true,
message: 'Qual o URL da sua conta na Nuvemshop?',
validate: (value: string) => validateField(value, 'url', true)
},
{
type: 'text',
name: 'token',
required: true,
message: 'Qual o token da sua conta na Nuvemshop?',
validate: (value: string) => validateField(value, 'token', true)
},
{
type: 'text',
name: 'username',
required: true,
message: 'Qual o username da sua conta na Nuvemshop?',
validate: (value: string) => validateField(value, 'username', true)
},
]
},
{
name: 'Linx Commerce',
alias: 'linx-commerce',
description: 'Descubra as melhores soluções de e-commerce que conectam seu varejo físico e digital. Plataforma completa Linx Commerce para aumentar vendas e integrar canais com eficiência.',
url: 'https://www.linxcommerce.com.br/',
status: 'available',
types: ['ecommerce'],
requires: [
{
type: 'text',
name: 'url',
required: true,
message: 'Qual o URL da sua conta na Linx Commerce?',
validate: (value: string) => validateField(value, 'url', true)
},
{
type: 'text',
name: 'username',
required: true,
message: 'Qual o username da sua conta na Linx Commerce?',
validate: (value: string) => validateField(value, 'username', true)
},
{
type: 'text',
name: 'password',
required: true,
message: 'Qual o password da sua conta na Linx Commerce?',
validate: (value: string) => validateField(value, 'password', true)
},
{
type: 'text',
name: 'cdn',
required: true,
message: 'Qual o cdn da sua conta na Linx Commerce?',
validate: (value: string) => validateField(value, 'cdn', true)
},
]
},
{
name: 'Uappi',
alias: 'uappi',
description: 'A Plataforma de e-commerce com tecnologia sob medida e proximidade, para manter seu negócio sempre um passo à frente.',
url: 'https://uappi.com.br/',
status: 'available',
types: ['ecommerce'],
requires: [
{
type: 'text',
name: 'url',
required: true,
message: 'Qual o URL da sua conta na Uappi?',
validate: (value: string) => validateField(value, 'url', true)
},
{
type: 'text',
name: 'token',
required: false,
initial: 'wapstore',
message: 'Qual o token da sua conta na Uappi?',
validate: (value: string) => validateField(value, 'token', true)
},
]
},
{
name: 'Yourviews',
alias: 'yourviews',
description: 'Uma solução integrada de avaliação de produtos e jornada de compra.',
url: 'https://qa.hiplatform.com/yourviews',
status: 'available',
types: ['reviews'],
requires: [
{
type: 'text',
name: 'url',
required: true,
message: 'Qual o URL da sua conta na Yourviews?',
validate: (value: string) => validateField(value, 'url', true)
},
{
type: 'text',
name: 'token',
required: true,
message: 'Qual o token da sua conta na Yourviews?',
validate: (value: string) => validateField(value, 'token', true)
}
]
},
{
name: 'Trustvox',
alias: 'trustvox',
description: 'Transforme seus clientes em seus maiores vendedores.',
url: 'https://trustvox.com',
status: 'soon',
types: ['reviews']
},
{
name: 'Ebit',
alias: 'ebit',
description: 'A Ebit mede a reputação das lojas virtuais por meio de pesquisas com consumidores reais, gerando dados estratégicos e táticas para o mercado online.',
url: 'https://www.ebit.com.br/',
status: 'soon',
types: ['reviews']
},
{
name: 'Yotpo',
alias: 'yotpo',
description: 'Transforme suas avaliações em geradores de receita.',
url: 'https://yotpo.com',
status: 'soon',
types: ['reviews']
},
{
name: 'Beonly',
alias: 'beonly',
description: 'Crie e automatize jornadas de compra personalizadas no seu e-commerce.',
url: 'https://www.beonly.com.br/',
status: 'soon',
types: ['showcase']
},
{
name: 'Linx Impulse',
alias: 'linx-impulse',
description: 'Aumente a Performance do seu E-commerce. Linx Impulse.',
url: 'https://www.linx.com.br/linx-impulse/',
status: 'available',
types: ['search', 'showcase'],
requires: [
{
type: 'text',
name: 'url',
required: true,
default: 'https://api.linx.com.br',
message: 'Qual o URL da sua conta na Linx Impulse?',
validate: (value: string) => validateField(value, 'url', true)
},
{
type: 'text',
name: 'account',
required: true,
message: 'Qual o account da sua conta na Linx Impulse?',
validate: (value: string) => validateField(value, 'account', true)
},
{
type: 'text',
name: 'secretKey',
required: true,
message: 'Qual o secretKey da sua conta na Linx Impulse?',
validate: (value: string) => validateField(value, 'secretKey', true)
},
{
type: 'text',
name: 'username',
required: true,
message: 'Qual o username da sua conta na Linx Impulse?',
validate: (value: string) => validateField(value, 'username', true)
},
{
type: 'text',
name: 'password',
required: true,
message: 'Qual o password da sua conta na Linx Impulse?',
validate: (value: string) => validateField(value, 'password', true)
},
]
},
{
name: 'Smarthint',
alias: 'smarthint',
description: 'Mostre aos seus clientes o que eles precisam e venda até 30% mais!',
url: 'https://www.smarthint.co/',
status: 'soon',
types: ['search', 'showcase']
},
{
name: 'Algolia',
alias: 'algolia',
description: 'Pesquisa de IA que encontra o que os usuários precisam.',
url: 'https://www.algolia.com/',
status: 'soon',
types: ['search']
},
{
name: 'RD Station',
alias: 'rd-station',
description: 'Automatize seu Marketing com Inteligência Artificial integrada.',
url: 'https://www.rdstation.com.br/',
status: 'soon',
types: ['email', 'crm', 'marketing', 'sales']
},
{
name: 'Flowbiz',
alias: 'flowbiz',
description: 'Inteligência em CRM e automação para escalar resultados.',
url: 'https://www.flowbiz.com.br/',
status: 'soon',
types: ['email', 'crm', 'marketing', 'sales', 'cart']
},
{
name: 'Dinamize',
alias: 'dinamize',
description: 'Transforme leads em vendas com nossa plataforma completa.',
url: 'https://dinamize.com.br/',
status: 'soon',
types: ['email', 'marketing', 'sales']
},
{
name: 'ActiveCampaign',
alias: 'activecampaign',
description: 'Automação de marketing para qualquer negócio.',
url: 'https://www.activecampaign.com/',
status: 'soon',
types: ['email'],
requires: [
{
type: 'text',
name: 'url',
required: true,
message: 'Qual o URL da sua conta na Mailchimp?',
validate: (value: string) => validateField(value, 'url', true)
},
{
type: 'text',
name: 'token',
required: true,
message: 'Qual o token da sua conta na Mailchimp?',
validate: (value: string) => validateField(value, 'token', true)
}
]
},
{
name: 'Mailchimp',
alias: 'mailchimp',
description: 'Transforme e-mails em receita.',
url: 'https://mailchimp.com/pt-br/',
status: 'available',
types: ['email']
},
{
name: 'Utils',
description: 'Configuração de utilitários (Google Analytics, Tag Manager, Site Verification, Microsoft Clarity e Facebook Pixel).',
status: 'available',
types: ['utils'],
requires: [
{
type: 'text',
name: 'Google Analytics',
alias: 'ga',
required: false,
message: 'Qual o ID do Google Analytics?',
validate: (v: string) => validateField(v, 'text', false)
},
{
type: 'text',
name: 'Google Tag Manager',
alias: 'gtm',
required: false,
message: 'Qual o ID do Google Tag Manager?',
validate: (v: string) => validateField(v, 'text', false)
},
{
type: 'list',
name: 'Google Site Verification',
alias: 'google-site-verification',
required: false,
message: 'Digite a(s) Google Site Verification (separadas por vírgula):',
separator: ','
},
{
type: 'text',
name: 'Microsoft Clarity',
alias: 'clarity',
required: false,
message: 'Qual o ID do Microsoft Clarity?',
validate: (v: string) => validateField(v, 'text', false)
},
{
type: 'text',
name: 'Facebook Pixel',
alias: 'facebook-pixel-id',
required: false,
message: 'Qual o ID do Facebook Pixel?',
validate: (v: string) => validateField(v, 'text', false)
},
{
type: 'text',
name: 'Facebook Ad Account ID',
alias: 'facebook-ad-account-id',
required: false,
message: 'Qual o ID da conta de anúncios do Facebook Pixel?',
validate: (v: string) => validateField(v, 'text', false)
},
]
}
];
export interface IntegrationRequire {
name: string;
alias?: string;
required: boolean;
default?: string;
type?: string;
message: string;
separator?: string;
validate?: (value: any) => { success: boolean; error?: string };
}
export interface Integration {
name: string;
alias?: string;
description: string;
url: string;
status: string;
types: string[];
requires: IntegrationRequire[];
}