summaryrefslogtreecommitdiff
path: root/lib/solidus_subscriptions/configuration.rb
AgeCommit message (Collapse)Author
2021-01-30Reorganize hierarchy of dispatcher classesAlessandro Desantis
2020-12-14Update cancel method on subscription to respect minimum dateSean
Previously, the cancel method would check if the minimum cancellation date minus the current day is in the future before cancelling. However, that adds one day to whatever minimum cancellation date that you set - if you set one day, you would expect the user not to be able to cancel on the day that the subscription ships, but because the method checks if the date is in the future, the user can't cancel the day of, or the day before. This checks if the date is in the future OR if it's today, which removes the added day from the minimum_cancellation_notice. Also this sets the default to 0.days, as 1.day is pretty arbitrary Lastly, this locks canonical-rails down to 0.2.9, because Solidus still uses the `whitelisted_attributes` method, which was renamed in 0.2.10
2020-11-17Move reprocessing to time based criteriaNicolò€ Rebughini
This changes the logic used to determine whether a subscription should be canceled after consecutive payment failures. Previously it was based on a maximum number of attempts per installment, however it makes sense to have it based on the time passed since the last succesful installment. This makes it also play nice with the new configuration [1] to clear past failed installments, which could render the maximum attempts useless, since there could have been situations where the maximum attempts number would never be reached. Switching to time based criteria makes this simpler and more predictable. [1] https://github.com/solidusio-contrib/solidus_subscriptions/commit/b3dc679b7056931397820ad333686ef151656ba4
2020-11-16Add config to ignore past unfulfilled installmentsNicolò€ Rebughini
This implements a configuration to ignore past unfulfilled installments for subscriptions upon installments creations. Since failed installments (e.g. because of an expired credit card) are retried indefinitely, they can overlap and also be retried after another subscription cycle began. In this particular case, a customer who fixes their payment method after a new cycle, would be charged for double (or X times as much based on how long it passed) and sent double the quantity of the same product. Because in some cases this is not desirable, this adds a switch to skip any failed past installment when a new installment gets created under the same subscription.
2020-10-10Add maximum_reprocessing_attempts preferenceAlessandro Desantis
2020-10-09Implement Churn Buster API clientAlessandro Desantis
2020-09-27Implement a `LineItem#subscribable` associationAlessandro Desantis
2020-09-25Remove actionable_date from the default modifiable subscription attributesAlessandro Desantis
2020-09-25Fix coding style violationsAlessandro Desantis
2020-09-24Use `.configure`/`.configuration` standard for config managementAlessandro Desantis