summaryrefslogtreecommitdiff
path: root/lib/generators/solidus_subscriptions/install/templates/initializer.rb
blob: de1d081216b9935f53ae35d54c708575d69d76f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# frozen_string_literal: true

SolidusSubscriptions.configure do |config|
  # ========================================= Basic config =========================================

  # The ActiveRecord model users can subscribe to.
  # config.subscribable_class = 'Spree::Variant'

  # Which queue is responsible for processing subscription background jobs.
  # config.processing_queue = :default

  # Maximum number of times a user can skip their subscription before it must be processed.
  # config.maximum_successive_skips = 1

  # Maximum number of times a user can skip their subscription.
  # config.maximum_total_skips = nil

  # Minimum days between the current date and the next installment for the installment not to be
  # processed after the user cancels their subscription.
  # config.minimum_cancellation_notice = 1.day

  # Time between an installment failing to be processed and the system retrying to fulfill it.
  # config.reprocessing_interval = 1.day

  # Maximum time that can pass after the last succesfull subscription installment to make a payment
  # failure cancel the subscription.
  # config.maximum_reprocessing_time = nil

  # This custom error handler is called when a ProcessInstallmentJob `#perform` method fails.
  # The rescued error can be managed as required via a Proc, such as one which logs the error
  # on an error tracking system.
  # Though not recommended due to the retry mechanisms built into this gem, the error can be
  # re-raised if the default retry behaviour is required in ActiveJob.
  # config.processing_error_handler = nil

  # ========================================= Dispatchers ==========================================
  #
  # These dispatchers are pluggable. If you override any handlers, it is highly encouraged that you
  # subclass from the the dispatcher you are replacing and call `super` from within `#dispatch`.

  # This handler is called when a subscription order is successfully placed.
  # config.success_dispatcher_class = 'SolidusSubscriptions::Dispatcher::SuccessDispatcher'

  # This handler is called when a group of installments fails to be processed.
  # config.failure_dispatcher_class = 'SolidusSubscriptions::Dispatcher::FailureDispatcher'

  # This handler is called when a payment fails on a subscription order.
  # config.payment_failed_dispatcher_class = 'SolidusSubscriptions::Dispatcher::PaymentFailedDispatcher'

  # This handler is called when there isn't enough stock to fulfill an installment.
  # config.out_of_stock_dispatcher = 'SolidusSubscriptions::Dispatcher::OutOfStockDispatcher'

  # ===================================== Permitted attributes =====================================
  #
  # In this section, you can override the list of attributes the user can pass to the controllers.
  #
  # This is useful in the case where certain fields should not be allowed to be modified by the
  # user, or if you add additional fields to the extension's model and you want the users to be able
  # to set them.

  # Attributes the user can specify for subscriptions.
  # config.subscription_attributes = [
  #   :interval_length,
  #   :interval_units,
  #   :end_date,
  #   shipping_address_attributes: Spree::PermittedAttributes.address_attributes,
  #   billing_address_attributes: Spree::PermittedAttributes.address_attributes,
  # ]

  # Attributes the user be specify for subscription line items.
  # config.subscription_line_item_attributes = [
  #   :quantity,
  #   :subscribable_id,
  #   :interval_length,
  #   :interval_units,
  #   :end_date,
  # ]

  # ========================================= Churn Buster =========================================
  #
  # This extension can integrate with Churn Buster for churn mitigation and failed payment recovery.
  # If you want to integrate with Churn Buster, simply configure your credentials below.
  #
  # NOTE: If you integrate with Churn Buster and override any of the handlers, make sure to call
  # `super` or copy-paste the original integration code or things won't work!

  # Your Churn Buster account ID.
  # config.churn_buster_account_id = 'YOUR_CHURN_BUSTER_ACCOUNT_ID'

  # Your Churn Buster API key.
  # config.churn_buster_api_key = 'YOUR_CHURN_BUSTER_API_KEY'

  # =================================== Clear past installments ====================================
  #
  # This setting prevents the overlap of old failed installments (e.g. for an expired credit card)
  # with new subscription cycles by clearing any past failed installment when a new one is created

  # config.clear_past_installments = true

  # ==================================== Custom Order Creation =====================================
  #
  # This settings allows the customization of the creation of each Installment Order by means of
  # providing a class that can be switched / inherited
  #
  #
  # the order_creator_class is initialized and called on the creation of the Order for each Subscription
  # Installment.
  # If you want to add simple extra attributes to the Order (such as a channel), that can be done by
  # overriding the `extra_attributes` method on a subclass
  #
  # config.order_creator_class = 'SolidusSubscriptions::OrderCreator'
end