Comments (6)
Another benefit from relying on the provider to handler subscription, is other apps can also hook in the event. For example, OC App, sends a request to create a customer then create a subscription, other app can act on the subscription request.
from orchardcore.commerce.
A better term would have been "normalization of the data" that we should resist :). But great then!
from orchardcore.commerce.
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.
This is very important: Here we need to resist an attempt to DRY and load the corresponding pricing details on the fly, because changes to those shouldn't affect ongoing subscriptions.
For issuing the subscription, it should be noted that depending on the payment provider's capabilities, there can be two approaches:
- The payment provider attempts the subscription periodically and notifies the app about the results via a webhook. This means that the configuration of the subscription should be sent to the payment provider.
- The app attempts to issue the charge periodically.
If possible, the first approach would be better, since that's what surely works with all cards (including MFA with 3DS2). I'm not even sure that the second approach is in line with regulations.
from orchardcore.commerce.
Also, we'd need to allow users to change their subscription: e.g. change between monthly and yearly payments, and subscription tiers.
from orchardcore.commerce.
Here we need to resist an attempt to DRY and load the corresponding pricing details on the fly, because changes to those shouldn't affect ongoing subscriptions.
Never resist an attempt to DRY. :) The Order's line items already have baked-in prices for the same reason, so you can always use the first order as reference if necessary.
from orchardcore.commerce.
It came to my mind that if the automatic payment from the payment provider's side fails or the subscription is removed from their end, we should still generate a "pending" order and send a mail to the customer. Same in case of payment providers without subscription support. This ties into #345 because right now you can only pay during checkout.
from orchardcore.commerce.
Related Issues (20)
- Have a new community survey (OCC-204) HOT 1
- make class Address partial (OCC-205) HOT 13
- OrchardCore.Commerce.Tests.UI.Shortcuts NuGet misses metadata (OCC-207)
- Checkout exception if the Billing/ShippingAddressFieldEditor shapes are not present (OCC-208)
- The File Content Definition not generate ContentDefinition.json (OCC-213)
- CreateOrderLineItemsAsync does not take care of product discounts (OCC-214) HOT 1
- I have Created a new price variants product content item, but it couldn't display variants inventories. (OCC-217)
- Running FullSecurityScanShouldPass locally fails (OCC-218) HOT 5
- When Creating a new Product Content Item in BagPart, ProductPartIndex don't update. (OCC-220) HOT 1
- Multiple payment intents are created during a single session (OCC-221)
- Aggregating multiple products into a new product that has indepdent unit price,inventory, attributes and SKU, and can be sold indepdently. (OCC-222) HOT 2
- Upgrade to Orchard Core 1.8 (OCC-223) HOT 13
- Ambiguous HTTP methods (OCC-225)
- Inventory part with non-restricted product attributes can't be added to the cart (OCC-229)
- There are two exceptions in OrchardCore.Commerce 2.0 while building project : ArgumentException: Illegal characters in path (OCC-230) HOT 7
- ProductPart SKU field editor vanishes after failed new content creation (OCC-232)
- Stripe script is blocked by CSP (OCC-233)
- Add "Verify currently saved API configuration" button to Stripe settings as well (OCC-234)
- Make it possible to generate product attributes on the fly (OCC-235)
- Reconstruct the solution to include Orchardcore.Commerce.Core (OCC-236)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orchardcore.commerce.