Medusa

MedusaJS es una plataforma de comercio electrónico sin cabeza y de código abierto que ayuda a los desarrolladores a crear y gestionar tiendas en línea con flexibilidad y escalabilidad. A diferencia de las plataformas de comercio electrónico tradicionales, MedusaJS ofrece un marco de backend que permite a los usuarios personalizar y ampliar la funcionalidad de su tienda, mientras tienen la libertad de elegir cualquier tecnología frontend para la experiencia del cliente. MedusaJS admite funciones como gestión de productos, seguimiento de inventario, procesamiento de pedidos e integraciones de pago, pero es altamente extensible, lo que permite a los usuarios agregar complementos y API personalizados para satisfacer sus necesidades específicas. Es ideal para desarrolladores que buscan una solución flexible y centrada en API para crear sistemas de comercio electrónico a medida.

Nuestro complemento permite enviar SMS y realizar llamadas de texto a voz.

Instalación

A través de Yarn

yarn add @seven.io/medusa

A través de NPM

npm install @seven.io/medusa

Configuración

Después de la instalación, agregue sus credenciales al archivo .env:

SEVEN_API_KEY="<SU_CLAVE_API>" # ver https://help.seven.io/de/articles/9582186-wo-steht-mein-api-key

El último paso es agregar el complemento y sus opciones al arreglo plugins en el archivo medusa-config.js:

const plugins = [
    //...
    {
        resolve: '@seven.io/medusa',
        options: {
            apiKey: process.env.SEVEN_API_KEY,
            sms: {
                flash: true, // Alternativamente, envíelo como flash, consulte https://help.seven.io/en/articles/9582226-flash-sms
                from: 'Medusa', // Identificación del remitente: véase https://help.seven.io/en/articles/9582265-set-sender-id
            },
            voice: {
                json: true, // Si es verdadero, la API devuelve una respuesta JSON detallada.
                from: '+49179876543210', // Debe estar verificado, véase https://app.seven.io/settings#callerid
            }
        },
    }
]

Uso

Uso dinámico

El servicio de seven se puede resolver dinámicamente para enviar SMS y realizar llamadas de texto a voz.

Ejemplo:

const sevenService = scope.resolve("sevenService")

// SMS senden
sevenService.sendSms({
    from: 'Medusa', // opcional
    text: "Dear customer!",
    to: "+49179876543210",
    // Añada opcionalmente otros parámetros según la documentación disponible en https://docs.seven.io/es/rest-api/puntos-finales/sms.
})

// Text-zu-Sprachanruf tätigen
sevenService.sendVoice({
    from: '+49179876543210', // opcional
    text: "Dear customer!",
    to: "+49179876543210",
    // Añada opcionalmente otros parámetros según la documentación disponible en https://docs.seven.io/es/rest-api/puntos-finales/voz.
})

Uso basado en suscripción

Este ejemplo muestra cómo se envía un SMS después de realizar un pedido.

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: 'Tienda',
            text: `Gracias por su pedido con el ID #${id}. Le informaremos tan pronto como se haya enviado.`,
            to: shipping_address.phone,
        })
    }
}