devfund-website/docs/docs/index.md

2.0 KiB

Overview

Looper is a flexible subscription management system, designed after real-life scenarios.

Features

  • Multi currency support
  • Location detection for currency selection
  • Multiple payment methods (via gateways such as Braintree, Stripe, etc)
  • Recurring and manual payments
  • Up and downgrades (subscription add-ons)
  • VAT support
  • Coupons (pending)
  • Gifts (pending)
  • Invoicing
  • Reporting tools (sales, customers)

Design

Our goal is to give freedom to the customer to pick the desired payment solutions. Different countries and cultures have different expectations when it comes to subscription systems.

Looper establishes the concept of Balance, which is the financial status of a customer. The balance can be affected by debit or credit transactions, which can be performed by the customer or by the system itself (triggered by the Clock).

Balance

The balance is the sum of all transactions for a certain user, and it is positively affected by orders and negatively by the Clock. These two possible scenarios can be explained as:

  • The user manually adds money via an Order to their account (positive, credit)
  • The renewal of a subscription affects the balance (negative, debit)

Adding credit to the balance can happen manually, so that a user can pre-pay several months of subscription in advance, or automatically. In this case, the user will be automatically charged for an order generated by the system. Automatic charging will happen differently depending on the payment backend used.

The Clock

The Clock is a command triggered regularly (every hour or every day) by a cronjob on the host system, and runs through each Subscription, triggering further actions depending on their status and configuration.

For example:

  • Is the subscription active? (YES)
  • Is is it past due? (YES)
  • Is the renewal manual? (YES)
  • Does the user have enough credit in the balance (NO)
  • Suspend subscription and notify the user