Das Recurring Framework

Wiederkehrende Zahlungen für Abonnements habe ich in Drupal Commerce zuletzt einfach via Rules gelöst: Den betreffenden Produkte habe ich dazu ein Interval-Feld hinzugefügt und beim Kauf den Rules Scheduler aktiviert, der nach Ablauf des Intervals die Bestellung dubliziert. Über eine Rules des Payment Providers (in meinem Fall Payone) habe ich die Transaktion der Ausgangsbestellung geladen und den dortigen Request zum Payment Provider erneut gefeuert.

Um Abonnementfunktionen künftig strukturierter einsetzen zu können, nutze ich seit kurzem das Commerce recurring framework was einen eigenen Entity Typ zur Erfassung der Abonnementdaten zuer Verfügung stellt und sich um die Erzeugung wiederkehrender Bestellungen kümmert. Dies funktioniert sehr gut. Mir gefällt insbesondere die Darstellung laufender Abonnements und künftiger Fälligkeiten, die sich mit Hilfe von Views noch weiter aufbohren lassen.

Wichtig: Das Recurring framework dubliziert nicht die Zahlungsmethode der Ausgangsbestellung, was ich übrigens für den richtigen Weg halte. Das Recurring Payments Modul von Ubercart tut dies ja, sofern die genutzte Zahlungsmethode eine entsprechende Funktion implementiert hatte.

Was also tun, wenn man die Zahlung ebenfalls automatisch auslösen möchte?

Man implementiert eine Rule! Das Recurring Framework selbst stellt für jeden Schritt im Recurring Prozess (anlegen, erzeugen, löschen) einen Regelsatz zur Verfügung, der genutzt werden kann, um die Zahlungen auszulösen. Im Falle von Payone werde ich für das Commerce Payone Modul kurzfristig eigene Regeln für wiederkehrende Zahlungen zur Verfügung stellen, die sich nahtlos mit dem Recurring Framework nutzen lassen sollen.