Medusa
MedusaJS ist eine Open-Source, Headless-E-Commerce-Plattform, die Entwicklern hilft, Online-Shops mit Flexibilität und Skalierbarkeit zu erstellen und zu verwalten. Im Gegensatz zu traditionellen E-Commerce-Plattformen bietet MedusaJS ein Backend-Framework, das es Nutzern ermöglicht, die Funktionalität ihres Shops anzupassen und zu erweitern, während sie die Freiheit haben, jede Frontend-Technologie für das Kundenerlebnis zu wählen. MedusaJS unterstützt Funktionen wie Produktverwaltung, Bestandsverfolgung, Bestellabwicklung und Zahlungsintegrationen, ist jedoch hochgradig erweiterbar, sodass Nutzer benutzerdefinierte Plugins und APIs hinzufügen können, um ihre spezifischen Anforderungen zu erfüllen. Es ist ideal für Entwickler, die nach einer flexiblen, API-zentrierten Lösung suchen, um maßgeschneiderte E-Commerce-Systeme zu erstellen.
Unser Plugin ermöglicht das Senden von SMS sowie das Durchführen von Text-zu-Sprache-Anrufen.
Installation
Über Yarn
yarn add @seven.io/medusa
Über NPM
npm install @seven.io/medusa
Einrichtung
Nach der Installation fügen Sie Ihre Zugangsdaten zur .env
-Datei hinzu:
SEVEN_API_KEY="<IHR_API_SCHLÜSSEL>" # siehe https://help.seven.io/de/articles/9582186-wo-steht-mein-api-key
Der letzte Schritt besteht darin, das Plugin und seine Optionen zum plugins
-Array in der medusa-config.js
-Datei hinzuzufügen:
const plugins = [
//...
{
resolve: '@seven.io/medusa',
options: {
apiKey: process.env.SEVEN_API_KEY,
sms: {
flash: true, // alternativ als flash senden, siehe https://help.seven.io/de/articles/9582226-flash-sms
from: 'Medusa', // Absenderkennung - siehe https://help.seven.io/de/articles/9582265-absenderkennung-setzen
},
voice: {
json: true, // wenn true, gibt API detaillierte JSON-Antwort zurück
from: '+49179876543210', // muss verifiziert sein, siehe https://app.seven.io/settings#callerid
}
},
}
]
Verwendung
Dynamische Verwendung
Der seven-Dienst kann dynamisch aufgelöst werden, um SMS zu senden und Text-zu-Sprache-Anrufe zu tätigen.
Beispiel:
const sevenService = scope.resolve("sevenService")
// SMS senden
sevenService.sendSms({
from: 'Medusa', // optional
text: "Dear customer!",
to: "+49179876543210",
// fügen Sie optional weitere Parameter gemäß der Dokumentation unter https://docs.seven.io/de/rest-api/endpunkte/sms
})
// Text-zu-Sprachanruf tätigen
sevenService.sendVoice({
from: '+49179876543210', // optional
text: "Dear customer!",
to: "+49179876543210",
// fügen Sie optional weitere Parameter gemäß der Dokumentation unter https://docs.seven.io/de/rest-api/endpunkte/voice
})
Abonnementbasierte Verwendung
Dieses Beispiel zeigt, wie eine SMS gesendet wird, nachdem eine Bestellung aufgegeben wurde.
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: 'MeinShop',
text: `Danke für Ihre Bestellung mit der ID #${id}. Wir werden Sie gleich nach dem Versand informieren.`,
to: shipping_address.phone,
})
}
}