SecuTix already provides a batch to renew memberships valid for a whole season. This batch has now been extended to handle memberships valid for a fixed duration after purchase, no matter the duration of validity and season length.

Solution

Date management

  • The already existing Membership renewal function of the Batch of subscription batch allows you to renew memberships valid for a fixed duration that will expire until a given date (or that have expired recently). This expiry date can be defined with an absolute date (expiry date = 31.01.2022) or by means of a duration (expiry date = date of batch run + 10 days). All memberships that expire before or on the expiry date will be taken into account.
  • If a processed membership has already expired, the new membership will be valid from the current date (date of batch run). Example: the batch runs on the 15.01.2022 and identifies a membership that has expired on the 05.01.2022. The renewed membership will be valid from the 15.01.2022.
  • If a processed membership hasn't expired yet, the renewed membership will be valid from the day following the end validity date. Example: the batch runs on the 15.01.2022 and identifies a membership that will expire on the 20.01.2022. The renewed membership will be valid from the 21.01.2022. 

Season management

When a membership is renewed,the new membership may be in the same season, the next season, or even a later season as shown on the figure below:

The batch function allows to handle all these cases, but you have to set the mapping table of the batch accordingly. See getting started section for more details.

Getting started

You first have to create a batch of type batch of subscriptions.

Setting up the mapping table

You need to fill the mapping table related to the created batch in order to:

  • Define which membership will be renewed. The batch will only renew memberships stored in its mapping table
  • Define which membership needs to be used to renew an existing membership. Each membership is defined by a product and a season. Note that the new membership may be identical to the old one if the renewal is performed within the same season, but you still have to mention it in the mapping table. More precisely, you have to consider:
    • The season of the membership to be renewed (in yellow in figure above) that depends on the start validity date of this membership
    • The season of the membership used for the renewal which depends on the start validity date of the new membership

Considering the cases illustrated on figure above, suppose that the current date is 01.06.2021 and you want to renew several memberships with different validity duration. For sake of simplicity, the explanations below will consider that each season matches exactly one calendar year.

  • For case 1, you will map the membership (belonging to season 3) with itself, as illustrated below

  • For cases 2 and 3, you will map a membership belonging to current season 3 with a previous membership belonging to season 2. The fact that the new membership may only expire in season 4 isn't relevant.
  • For case 4, you will map a membership belonging to current season 3 with a previous membership belonging to season 1

Run the Membership renewal function

An expiry date has been added to the existing schedule parameters:

All other parameters behave the same way as before. In particular, you can either:

  • Renew a specific membership by selecting the target season and the origin membership
  • Renew all memberships concerning a given target season and mentioned in the mapping table

Restrictions and points to take care of

Potential need of multiple batches

A given mapping table allows to map a target season to a single origin season only. As a result, if you need to map the same target season to several origin seasons because of memberships with different validity duration, you will have to create several batches, each for one origin season. For instance, if you have to handle the 4 cases illustrated in the figure above, you would need:

  • One batch to cover case 1 mapping target season 3 with origin season 3
  • One batch to cover cases 2 and 3 mapping target season 3 with origin season 2
  • One batch to cover case 4 mapping target season 3 with origin season 1


Running the batch close to the date of season change

Taking the example above, consider that you run the batch on the 20.12.2021 and you have defined an expiry date of 05.01.2022 (either directly or through a duration). Since the schedule requires to select a target season, the batch will either:

  • Handle the period until the 31.12.2021 if you select the target season 3.
  • Handle the period from 01.01.2022 until 05.01.2022 if you select the target season 4.

As a result, you will need to create 2 schedules during this transition period.