Automatischer Mailversand bei geringem Lagerbestand

Hallo zusammen,

ich möchte gerne folgendes umsetzen: Wenn nach dem Verkauf eines Artikel der Lagerbestand z. B. nur noch 3 St. erreicht, dann soll automatisch eine Mail mit dem betroffenen Artikel an eine definierte Adresse verschickt werden.

Hat so was schon mal jemand umgesetzt? Falls ja, wie denn?

Danke!

Viele Grüße

Vorweg, genau für diesen Zweck gibt es auch fertige Plugins, einfach mal im Store schauen.

Für Leute die ein wenig basteln möchten, müsste man das doch eigentlich mit dem Flow Builder lösen können.
Jetzt mal schnell runtergebrochen, ohne es testen zu können:

Auslöser: Bestellabschluss / Bestellung / Eingang

Bedingung: Neue Regel im Rule Builder → Position mit Lagerbestand kleiner gleich 3

Aktion: E-Mail verschicken. Neues E-Mail Template anlegen, mit der lineItems[0] Variable kann man auf die einzelnen Positionen der Bestellung zugreifen.

Mehr zu den E-Mail Templates hier:

Hallo Novac,

vielen Dank für die schnelle Antwort.

Mir fällt dazu noch was ein. Bei Shopware 5 gab es doch die Möglichkeit, einen Cronjob einzuplanen, der automatisch eine Mail mit den Artikeln verschickt, bei denen der Lagerbestand einen bestimmten Mindestbestand unterschritten hat. Hier hatte ich das gefunden: Lager-Mindestbestand hat welche Funktion?

Funktioniert dies bei Shopware 6 auch? Das wäre natürlich eine super Lösung.

Danke!

Viele Grüße

Cronjobs / Scheduled Tasks sind auch in Shopware6 natürlich möglich. Das ist aber absolut nicht mein Fachgebiet, keine Ahnung wie man das mit den Lagerbestandsbenachrichtigungen dort einrichtet.

Nein, diese Funktion gibt es in Shopware 6 ohne Plugin / eigens erstellten Flow nicht mehr.

Hallo, ich habe den Mailversand mal wie vorgeschlagen eingerichtet und ich muss sagen es funktioniert! Allerdings habe ich im E-Mail-Template den Typ „Lagerbestandshinweis“ verwendet, da gibt es keine Variablen zur Auswahl.
Im Mail-Text kann man mit {{product.productNumber}} die Produktnummer ausgeben.

1 „Gefällt mir“

@windes könntest du bitte Schritt für Schritt erklären, wie du das gemacht hast?

Wie siehst du, welche Produkte einen geringen Lagerbestand haben?

Wenn ich als E-Mail-Typ „Lagerbestandshinweis“ auswähle, sind die Variablen in der Seitenleiste gesperrt. Wäre es nicht besser, einen anderen E-Mail-Typ zu wählen?

Hallo, ich habe mich an die Beschreibung von @Novac im 2ten Post gehalten.

Im Rule Builder wird geschaut ob ein Artikel mit Warenbestand <= 3 bestellt wird, wenn die Bedingung wahr ist wird im Flow Builder eine Regel abgearbeitet und die Mail versendet.

Wäre bestimmt besser! Nur welchen? Denn wenn eine Variable im Mail-Text steht wird keine Mail versendet. Ich komme hier noch nicht so recht weiter. Ich bin da auch nicht so fit, mit den ganzem Variablen Kram!

Edit: Weiter oben habe ich geschrieben: „Im Mail-Text kann man mit {{product.productNumber}} die Produktnummer ausgeben.“ Das haut leider nicht hin, im Log findet man diese Fehlermeldung: Failed rendering string template using Twig: Variable „product“ does not exist in „7a011c2b22e34ccb470ca63d1f2f0ffa“ at line 2.

Ich habe noch ein wenig rum probiert und mich an einem anderem Mailtemplate (Bestellbestätigung) orientiert.
So funktioniert die Email mit Ausgabe der Artikelnummer:

  1. Im Rulebuilder habe ich die Bedingung von „Position mit Lagerbestand“ in „Position mit verfügbarem Bestand“ geändert.
    Dadurch wird sofort, nach Bestellausgang, die Mail ausgelöst. Ansonsten erst nach Abschluss der Bestellung. Zum testen war die Variante besser.
  2. Im E-Mail Template habe ich folgenden Code eingefügt:
<h2>Lagerbestandswarnung</h2> 
<p>Der Artikel mit der Artikelnummer:

{% for lineItem in order.lineItems %}
{% if lineItem.payload.productNumber is defined %}{{ lineItem.payload.productNumber|u.wordwrap(80) }}{% endif %}      
{% endfor %}

muss nachbestellt werden!</p>

Mal sehen ob das meiner Kundin genügt.
VG Steffen Winde

PS: Mein Testshop läuft mit 6.5 unter 6.4 habe ich noch Probleme, da wird die Artikelnummer nicht ausgegeben.

2 „Gefällt mir“

Hallo!

vielen Dank! Weißt du denn auch einen Weg, wie man über einen Cronjob oder ähnliches eine Mail verschickt, in der alle Artikel enthalten sind, die z. B. unter 2 St. Lagerbestand haben? Bei Shopware 5 ging das doch mit dem Feld „Mindestbestand“ und dem entsprechenden Cronjob.

Bei Shopware 6 klappt das nicht mehr so, oder?

Viele Grüße

Moin!

Für Dein Ziel habe ich leider nichts im Core gefunden - ich kann natürlich auch was übersehen haben, aber ohne programmatischen Aufwand scheint das so nicht mehr möglich zu sein. Vielleicht wäre hier ein Blick in den Plugin-Store doch ganz sinnvoll…

Wäre eigentlich ein geiles Feature, wenn man Flows aus dem Flow Builder auch an Scheduled Tasks, statt Ereignissen, knüpfen könnte.

LG;LA

@Rol, @Max_Shop, @littleAmused

Hier kann man dafür stimmen, dass man bei Unterschreiten eines bestimmten Lagerbestands benachrichtigt wird: Storage stock alert / warning via Email – Have an idea? Share it!

Bitte stimmt dafür.

1 „Gefällt mir“

Nabend,

warum nicht einfach im Flow Builder für das Event „order placed“ eine Prüfung des Lagerbestandes rein und wenn z.B. < 10, dann eine beliebige Mail an sich senden mit „Bestellung X prüfen, Lagerbestand eines Artikels unterschritten“? Würde sowas nicht ausreichen?

VG Benjamin

Wenn einzelne Produkte unterschiedliche Lagermindestbestände haben sollen, ist das nicht mehr ganz so einfach, oder? Dann würde generell z.B. „<10“ nicht ausreichen. Viele Grüße, Romina

Ja, da hast Du leider recht. Wenn es wirklich um verschiedenste Produkte mit unterschiedlichsten Lagermindestständen geht, dann wird es schwierig.

Bei uns kommt das sehr häufig vor, Beispiel Schrauben:

Einen Sortimentskoffer mit unterschiedlichen Schrauben kann man einen Lagermindestbestand von z.b. 1 zuweisen, da dieser nicht in größeren Stückzahlen gekauft wird.

Aber eine Schraube die einzeln gekauft werden kann, sehr wohl. Schnell mal legt ein Kunde davon z.b. 35 Stück in den Warenkorb.

Aus diesem Grund wäre für uns diese Funktion sehr wichtig.

@Marc_E dann stimm für diese Funktion: Storage stock alert / warning via Email – Have an idea? Share it!

Ich hab das erstellt

Falls es jemand brauchen kann: … zumindest kann man eine Mail schicken lassen, wenn ein bestellter Artikel - mit seiner Bestellung (das ist der Auslöser) - unter den Bestand von „X“ fällt.

1. MENÜ EINSTELLUNGEN (Shop) → RULE BUILDER → REGEL ERSTELLEN
Name: Mindestbestandes Warnung
Prio: 1
Beschreibung: …beliebig…
Typ: Flow Builder
Bedingung: Position mit verfügbarem Bestand → mind. eine → Ist kleiner → 1 (oder was man eben möchte)
siehe: https://www.lembi.de/pd/shareX_329772772.png

  1. MENÜ EINSTELLUNGEN (Shop) → FLOW BUILDER → FLOW HINZUFÜGEN
    2.1 . Registerkarte „Allgemein“
    Name: Niedriger Lagerbestand
    Beschreibung: … beliebig …
    Prio: 1
    Aktiv: ja
    siehe: https://www.lembi.de/pd/shareX_329772892.png
    2.2. Registerkarte Flow:
    Auslöser: BESTELLABSCHLUSS → BESTELLUNG → EINGANG (siehe: https://www.lembi.de/pd/shareX_329775843.png)
    Bedingung (WENN): Regel aus Rule-Builder „Mindestbestand Warnung
    Aktion WAHR: Email verschicken, Template „Geringer Lagerbestand, Lagerbestandshinweis“ (das gibt’s als default. Als Empfänger: „Administrator“ einstellen)
    Aktion FALSCH: …nichts auswählen
    siehe: https://www.lembi.de/pd/shareX_329772877.png

  2. MENÜ EINSTELLUNGEN (Shop) → EMAIL TEMPLATES → Email „Lagerbestandshinweis“ bearbeiten
    Inhalt für HTML Mail z.B.:

<div style="font-family:Verdana, Geneva, sans-serif; font-size:12px;">
<b>Lagerbestandswarnung</b><br> 
<br>
Lagerbsestand kleiner "1" erreicht für:<br>
<br>
{% for lineItem in order.lineItems %}
    {% if lineItem.payload.productNumber is defined %}
        &bull; {{ lineItem.payload.productNumber|u.wordwrap(80) }}: {{ lineItem.label|u.wordwrap(80) }}<br>
    {% endif %}      
{% endfor %}
<br>
<br>

siehe: https://www.lembi.de/pd/shareX_329774247.png

Hoffe es hilft. Läuft hier auf 6.5.8.7.
Die Mail wird getriggert, wenn eine Bestellung eingeht, die den Lagerbestand eines bestellten Artikels „kleiner 1“ (hier im Beispiel) setzt.

Gruß
Alex