OrchardCMS / OrchardCMS/OrchardCore.Commerce
Subscription Product / Payment Support (OCC-59)
Nobody has claimed this yet.
- 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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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