Medusa
MedusaJS é uma plataforma de e-commerce headless e de código aberto que ajuda desenvolvedores a criar e gerenciar lojas online com flexibilidade e escalabilidade. Ao contrário das plataformas de e-commerce tradicionais, o MedusaJS oferece um framework de backend que permite aos usuários personalizar e expandir a funcionalidade de suas lojas, enquanto têm a liberdade de escolher qualquer tecnologia de frontend para a experiência do cliente. O MedusaJS suporta funcionalidades como gerenciamento de produtos, rastreamento de inventário, processamento de pedidos e integrações de pagamento, mas é altamente extensível, permitindo que os usuários adicionem plugins e APIs personalizados para atender às suas necessidades específicas. É ideal para desenvolvedores que buscam uma solução flexível e centrada em API para criar sistemas de e-commerce sob medida.
Nosso plugin permite o envio de SMS e a realização de chamadas de texto para fala.
Instalação
Via Yarn
yarn add @seven.io/medusa
Via NPM
npm install @seven.io/medusa
Configuração
Após a instalação, adicione suas credenciais ao arquivo .env:
SEVEN_API_KEY="<SUA_CHAVE_API>" # veja https://help.seven.io/de/articles/9582186-wo-steht-mein-api-key
O último passo é adicionar o plugin e suas opções ao array plugins no arquivo medusa-config.js:
const plugins = [
//...
{
resolve: '@seven.io/medusa',
options: {
apiKey: process.env.SEVEN_API_KEY,
sms: {
flash: true, // Alternativamente, envie como flash, consulte https://help.seven.io/en/articles/9582226-flash-sms
from: 'Medusa', // Identificação do remetente - consulte https://help.seven.io/en/articles/9582265-set-sender-id
},
voice: {
json: true, // se verdadeiro, a API retorna uma resposta JSON detalhada
from: '+49179876543210', // deve ser verificado, consulte https://app.seven.io/settings#callerid
}
},
}
]
Uso
Uso Dinâmico
O serviço seven pode ser resolvido dinamicamente para enviar SMS e realizar chamadas de texto para fala.
Exemplo:
const sevenService = scope.resolve("sevenService")
// Enviar SMS
sevenService.sendSms({
from: 'Medusa', // optional
text: "Caro cliente!",
to: "+49179876543210",
// Adicione opcionalmente outros parâmetros de acordo com a documentação em https://docs.seven.io/pt/rest-api/pontos-de-extremidade/sms
})
// Fazer uma chamada de texto para voz
sevenService.sendVoice({
from: '+49179876543210', // opcional
text: "Caro cliente!",
to: "+49179876543210",
// Adicione opcionalmente outros parâmetros de acordo com a documentação em https://docs.seven.io/pt/rest-api/pontos-de-extremidade/voz
})
Uso Baseado em Assinatura
Este exemplo mostra como enviar um SMS após um pedido ser feito.
export default class SmsSubscriber {
constructor({
eventBusService,
orderService,
sevenService,
}) {
this.sevenService_ = sevenService;
this.orderService = orderService;
eventBusService.subscribe('order.placed', this.sendSMS);
}
sendSMS = async ({id}) => {
const {shipping_address} = await this.orderService.retrieve(id, {
relations: ['shipping_address']
})
if (!shipping_address.phone) return
this.sevenService_.sendSms({
from: 'Loja',
text: `Obrigado pelo seu pedido com o ID #${id}. Iremos informá-lo assim que o envio for efetuado.`,
to: shipping_address.phone,
})
}
}