feat: Add manual email sending workflow and related database changes
- Implemented a new n8n workflow for manual email sending, including webhook trigger, order data fetching, email building, and sending. - Added logic to format email content with customer and order details. - Introduced new columns in the sales_orders table to track email sending status. - Updated database functions to handle new rental types and email status. - Created new RPCs for updating email status and retrieving email details for sales orders.
This commit is contained in:
+28
-4
@@ -89,6 +89,7 @@ export const translations = {
|
||||
bpfWeekendRate: "Wochenendmiete",
|
||||
bpfWeekendDef: "Wochenende: Samstag 9:00 – Sonntag 20:00",
|
||||
bpfMaxKm: "Max. km/Tag",
|
||||
bpfInclKmPerDay: "Inkl. km/Tag",
|
||||
bpfExtraKm: "Extra km",
|
||||
bpfPriceOverview: "Preisübersicht",
|
||||
bpfSelectForPrice: "Wähle Fahrzeug und Datum für eine Preisübersicht",
|
||||
@@ -176,7 +177,7 @@ export const translations = {
|
||||
adminVehicleTab: "Fahrzeug",
|
||||
adminPeriod: "Zeitraum",
|
||||
adminKaution: "Kaution (€)",
|
||||
adminMaxKmWeekend: "Max. km/Wochenendtag",
|
||||
adminMaxKmWeekend: "Inkl. km/Wochenende",
|
||||
adminTotalPrice: "Gesamtbetrag",
|
||||
adminLifetimeValueCol: "Gesamtwert",
|
||||
adminTabGeneral: "Allgemein",
|
||||
@@ -231,9 +232,20 @@ export const translations = {
|
||||
adminFirstContacted: "Erster Kontakt",
|
||||
adminFirstContactedEn: "First contacted",
|
||||
adminNote: "Notiz",
|
||||
adminNoteEn: "Note",
|
||||
adminNoteEn: "Note",
|
||||
adminSave: "Speichern",
|
||||
adminSaveEn: "Save",
|
||||
adminPricePerKm: "Preis extra km (€)",
|
||||
adminRentalType: "Miettyp",
|
||||
rentalTypeWeekend: "Wochenende",
|
||||
rentalTypeIndividuell: "Individuell",
|
||||
adminSortOrder: "Ordnung",
|
||||
adminEmailSent: "Email",
|
||||
sendEmailButton: "E-Mail senden",
|
||||
emailSentToast: "E-Mail wird erstellt und in Kürze gesendet...",
|
||||
emailAlreadySent: "Bereits gesendet",
|
||||
bpfIndividuellTitle: "Individuelle Mietdauer",
|
||||
bpfIndividuellDesc: "Bei Mietdauer über 2 Tagen erstellen wir ein persönliches Angebot. Wir prüfen Verfügbarkeit und melden uns in Kürze per E-Mail bei Ihnen.",
|
||||
},
|
||||
en: {
|
||||
navCars: "Fleet",
|
||||
@@ -323,7 +335,8 @@ export const translations = {
|
||||
bpfDailyRate: "Daily rate",
|
||||
bpfWeekendRate: "Weekend rate",
|
||||
bpfWeekendDef: "Weekend: Saturday 9 AM – Sunday 8 PM",
|
||||
bpfMaxKm: "Max. km/day",
|
||||
bpfMaxKm: "Max. km/day",
|
||||
bpfInclKmPerDay: "Included km/day",
|
||||
bpfExtraKm: "Extra km",
|
||||
bpfPriceOverview: "Price overview",
|
||||
bpfSelectForPrice: "Select vehicle and date for a price overview",
|
||||
@@ -411,7 +424,7 @@ export const translations = {
|
||||
adminVehicleTab: "Vehicle",
|
||||
adminPeriod: "Period",
|
||||
adminKaution: "Deposit (€)",
|
||||
adminMaxKmWeekend: "Max. km/weekend day",
|
||||
adminMaxKmWeekend: "Included km/weekend",
|
||||
adminTotalPrice: "Total",
|
||||
adminLifetimeValueCol: "Lifetime",
|
||||
adminTabGeneral: "General",
|
||||
@@ -469,6 +482,17 @@ export const translations = {
|
||||
adminNoteEn: "Notiz",
|
||||
adminSave: "Save",
|
||||
adminSaveEn: "Speichern",
|
||||
adminPricePerKm: "Extra km price (€)",
|
||||
adminRentalType: "Rental type",
|
||||
rentalTypeWeekend: "Weekend",
|
||||
rentalTypeIndividuell: "Custom",
|
||||
adminSortOrder: "Order",
|
||||
adminEmailSent: "Email",
|
||||
sendEmailButton: "Send Email",
|
||||
emailSentToast: "Email is being prepared and will be sent shortly...",
|
||||
emailAlreadySent: "Already sent",
|
||||
bpfIndividuellTitle: "Custom Rental Duration",
|
||||
bpfIndividuellDesc: "For rental periods over 2 days, we'll create a personalized quote. We'll check availability and get back to you via email shortly.",
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user