OrchardCMS / OrchardCMS/OrchardCore.Commerce

Subscription Product / Payment Support (OCC-59)

Open
#6 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C#
Stars
231
Forks
94
Avg merge
7d 7h
Merged PRs (30d)
1

Description

Subscription products / payments allow a product to be sold over time and should have ability to continue indefinitely, have a defined end date, or allow for canceling.

The subscription framework should be agnostic to the selected payment gateway while also recognizing only some payment gateways allow tokenization. There may be an interface that payment providers would implement to validate they support a tokenization payment model.

General architecture would be Subscription Plans and Subscription Products.

Subscription Plans

  • Interval: Picklist of Day, Week, Month, Year
  • Frequency: integer
  • Maximum Occurrences: integer (leave blank for unlimited)
  • Number of Days for Trial Period: integer (use 0 for no trial period)
  • Notification Interval: Picklist of None, Day, Week, Month, Year (notifications fire off workflow event in advance of charging)
  • Notification Period: integer (how many "Notification Interval" do you want to have in advance of the charge event to fire off workflow)
  • Grace Interval: Picklist of None, Day, Week, Month, Year (assuming a payment is unfulfilled, what is the period before the subscription is automatically canceled)
  • Grace Period: integer (how many "Grace Interval" do you want to have in advance of the failed payment before cancelling subscription)

Subscription Product

  • Really this is just a "SubcriptionPart" that allows you to select a Subscription Plan (defined above)

By default, the Subscription simply continues on with the pricing as it was fixed in time at the Order, it does not recalculate pricing along the way.

Jira issue

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reviewing the existing commerce and payment abstractions, then use the Jira issue OCC-59 for any additional context. Done means subscription plans and products support the listed intervals, trials, notifications, grace periods, cancellation, indefinite continuation, fixed-at-order pricing, and payment-gateway tokenization differences.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend-api-design, payments
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.