Short Facts
- Auftrags-Abo-Vorlagen-Verwaltung
- Abo-Auftragsliste
- Abo-Auftrags-Bearbeiten-Maske.
Zusätzlicher Reiter "Abo-Ausführung" beim Auftrag bearbeiten/anlegen.
- Manuelle und zeitliche automatisierte Auftragsgenerierung aus Abo-Vorlage heraus
- Abo-Intervall Einstellung
- jährlich
- monatlich
- täglich
- freie Intervalle (cron).
- Abo-Start- und -End-Datum konfigurierbar
- Abo-Pausen konfigurierbar
- Optionale Daten-Aktualisierungen bei Abo-Ausführung möglich für bspw. (personalisierte) Preise, Rechnungs- und Lieferadressen
Was ist ein Abo-Auftrag?
Vereinfacht gesagt, ist ein Abo-Auftrag ein normaler Auftrag, der als Kopier-Vorlage genutzt wird, um daraus die eigentlichen Aufträge zu erzeugen.
Die Abo-Aufträge werden in einer eigenen Abo-Auftragsliste verwaltet.
Abo-Ausführung (Manuell)
Mit der Abo-Ausführung wird der eigentliche Abo-Auftrag kopiert in einen neuen eigenständigen Auftrag.
Dabei werden typischerweise alle Auftragsdaten des Abo-Auftrags kopiert, wie bspw.:
- Kunden-Zuordnung
- Rechnungs- und Lieferanschrift
- Auftragsposten (ohne Gutscheine) und Preise
- sonstige Felder
- Ggfs. Zahlungsvorgang / -einstellungen
Über erweiterte Einstellungen können die genaue abweichende Kopier-Vorgaben (pro Abo-Auftrag) geändert. Somit ist es zum Beispiel möglich ...
- immer die aktuelle "primäre Rechnungsadresse" (Kunden-Adressbuch) zu verwenden
- immer die aktuelle "primäre Lieferadresse" (Kunden-Adressbuch) zu verwenden
- aktuelle Standardpreise aus dem PIM zu verwenden
- aktuelle kundenspezifische Preise zu verwenden
Automatische Abo-Ausführung (Daemon)
Die Erzeugung von Aufträgen aus Abo-Aufträgen heraus kann komplett automatisiert werden.
Der Abo-Daemon läuft per Default stündlich, zur 15. Minute. Alle dann fälligen und mit Abo-Modus "automatisch" eingestellten Abo-Aufträge werden dann ausgeführt.
Die Ausführungszeitpunkte des Abo-Daemons selbst können wiederum angepasst werden. Dieser könnte bspw. nur täglich, wöchentlich oder einmal monatlich laufen. Alle bis dahin fällig gewordenen Abo-Aufträge werden eben erst dann erzeugt.
Abo-Pausen
Zu jedem Abo können individuelle Pausen-Intervalle hinterlegt werden.
- Es können mehrere Pausen-Intervalle hinterlegt werden.
- Die Pausen-Start- und -Endzeitpunkte müssen nicht genau auf Abo-Ausführungszeitpunkte o.ä. gesetzt werden. Sie können frei gewählt werden.
- Wird ein Abo-Auftrag ausgeführt und die Ausführungszeit fällt in eine konfigurierte Abo-Pause, so wird ..
- die Erzeugung eines neuen Auftrags einfach übersprungen und nächste reguläre Ausführungszeitpunkt für das Abo berechnet und gespeichert. Dieser Zeitpunkt kann sich dann eventuell immer noch in dem Pausen-Intervall befinden.
Es wird absichtlich nicht der erstmögliche Ausführungszeitpunkt nach der aktuellen Abo-Pause errechnet, da es sein könnte, dass während der Abo-Pause das Pausen-Ende zwischenzeitlich vorverlegt würde. - Ein spezieller Flow "orderperiodic_execute_pauseskip" ausgelöst, der entsprechend konfiguriert werden kann.
- die Erzeugung eines neuen Auftrags einfach übersprungen und nächste reguläre Ausführungszeitpunkt für das Abo berechnet und gespeichert. Dieser Zeitpunkt kann sich dann eventuell immer noch in dem Pausen-Intervall befinden.
Flows
Folgende Standard Flows stehen zur Anpassung zur Verfügung
- "orderperiodic_create"
- "orderperiodic_update"
- "orderperiodic_execute" - Nach erfolgreicher Abo-Ausführung. Enthält Daten zu dem Abo-Auftrag, sowie zu dem neu generiertem Auftrag.
- "orderperiodic_execute_pauseskip" - Wird ausgelöst nach versuchter Abo-Ausführung, wenn die Ausführungszeit in eine konfigurierte Abo-Pause fällt.
Konfiguration
Kopier-Einstellungen "default"
Es können optional "default"-Kopiereinstellungen in der Hublify-System-Variable "orderPeriodic_orderCopyOptions_default" hinterlegt werden.
Diese Kopiereinstellungen werden dann beim Ausführen eines Abo-Auftrags verwendet, wenn in dessen Abo-Einstellungen der Kopiermodus "default" ausgewählt wurde.
Hfy Var Syntax: "orderPeriodic_orderCopyOptions_default"
{ "copy_inv_address": "exact", // "exact|none|update_toprimary" "copy_dlv_address": "exact", // "exact|none|update_toprimary" "copy_prices": "exact", // "exact|update_std|update_personal" "copy_prd_replace": "exact", // "exact|rpl_newest". Future "rpl_newest_instock|rpl_oldest_instock" "copy_prdtype_product": true, "copy_prdtype_coupon": false, "copy_prdtype_shipping": true, "copy_prdtype_payment": true, "copy_prdtype_docs": true, "copy_prdtype_other": true, "copy_transactions": "exact", // "exact|none|update_todefault" // "exact" - copies amount & src-/trg-account-pointer // Exception: if order-persid changes the src-account is NOT copied! "override": { "o_type": "order" } }