Medusa
MedusaJS est une plateforme e-commerce open-source et headless qui aide les développeurs à créer et gérer des boutiques en ligne avec flexibilité et évolutivité. Contrairement aux plateformes e-commerce traditionnelles, MedusaJS offre un framework backend qui permet aux utilisateurs de personnaliser et étendre les fonctionnalités de leur boutique tout en ayant la liberté de choisir n'importe quelle technologie frontend pour l'expérience client. MedusaJS prend en charge des fonctionnalités comme la gestion des produits, le suivi des stocks, le traitement des commandes et les intégrations de paiement, mais est hautement extensible, permettant aux utilisateurs d'ajouter des plugins et API personnalisés pour répondre à leurs besoins spécifiques. Il est idéal pour les développeurs cherchant une solution flexible, centrée sur l'API pour créer des systèmes e-commerce sur mesure.
Notre plugin permet d'envoyer des SMS et d'effectuer des appels text-to-speech.
Installation
Via Yarn
yarn add @seven.io/medusa
Via NPM
npm install @seven.io/medusa
Configuration
Après installation, ajoutez vos identifiants au fichier .env
:
SEVEN_API_KEY="<VOTRE_CLÉ_API>" # voir https://help.seven.io/en/api-key-access
La dernière étape est d'ajouter le plugin et ses options au tableau plugins
dans le fichier medusa-config.js
:
const plugins = [
//...
{
resolve: '@seven.io/medusa',
options: {
apiKey: process.env.SEVEN_API_KEY,
sms: {
flash: true, // envoyer optionnellement comme flash - voir https://help.seven.io/en/flash-sms
from: 'Medusa', // ID expéditeur - voir https://help.seven.io/en/set-sender-id
},
voice: {
json: true, // si true, l'API retourne une réponse JSON détaillée
from: '+49179876543210', // doit être vérifié (voir https://app.seven.io/settings#callerid) ou un numéro partagé (voir https://help.seven.io/en/shared-numbers)
}
},
}
]
Utilisation
Utilisation dynamique
Le service seven peut être résolu dynamiquement pour envoyer des SMS et effectuer des appels text-to-speech.
Exemple :
const sevenService = scope.resolve("sevenService")
// envoyer SMS
sevenService.sendSms({
from: 'Medusa', // optionnel
text: "Cher client !",
to: "+49179876543210",
// ajouter optionnellement plus de paramètres selon la documentation sur https://docs.seven.io/en/rest-api/endpoints/sms#send-sms
})
// effectuer un appel text-to-speech
sevenService.sendVoice({
from: '+49179876543210', // optionnel
text: "Cher client !",
to: "+49179876543210",
// ajouter optionnellement plus de paramètres selon la documentation sur https://docs.seven.io/en/rest-api/endpoints/voice#send-voice-call
})
Utilisation basée sur l'abonnement
Cet exemple montre comment envoyer un SMS après qu'une commande soit passée.
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: 'MaBoutique',
text: `Merci pour votre commande avec l'ID #${id}. Nous vous informerons dès l'expédition.`,
to: shipping_address.phone,
})
}
}