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,
        })
    }
}