Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.2.0-b1
    • Component/s: None
    • Labels:
      None

      Description

      Coupons should be updated to allow for a set of terms/periods to be defined for which the coupon must apply to to be used. These terms/periods must always apply regardless of any additional limitations.

      1. Create a new table for coupons called coupon_terms
        • `id` PRIMARY KEY
        • `term` SMALLINT(5)
        • `period` ENUM('day','week','month','year','onetime')
      2. Update the add/edit coupon pages to add a new section for Coupon Terms beneath Limitations
        • The coupon terms should include a description... something to the effect that coupons can only be applied if the service ordered is one of the selected terms/periods. If none are enabled, then the coupon applies to ALL possible terms/periods (i.e. the default behavior).
          Enabled Period Terms
          Checkbox Day [Input box where you can type a CSV list of terms (e.g., "1,3,4") meaning 1 Day, 3 Days, and 4 Days]
          Checkbox Week [Input box where you can type a CSV list of terms (e.g., "1,3,4") meaning 1 Week, 3 Weeks, and 4 Weeks]
          Checkbox Month [Input box where you can type a CSV list of terms (e.g., "1,3,4") meaning 1 Month, 3 Months, and 4 Months]
          Checkbox Year [Input box where you can type a CSV list of terms (e.g., "1,3,4") meaning 1 Year, 3 Years, and 4 Years]
          Checkbox Onetime [Blank section]
        • Unchecking a checkbox, or deleting all items in the Terms section has the same effect--deleting the entries from the coupon_terms table. You can have the UI update itself to check/uncheck the checkbox whether any terms are set.
        • (optional) It would probably be useful to have some UI JS utility that displays the terms as labels in an input box, similar to marketplace tags, rather than a pure-text CSV list.
      3. Update ALL locations that coupons are applied/checked to be applied, or otherwise validated to ensure that the selected terms/periods are considered as limitations to the coupon's use. This occurs at minimum in the Coupons model and the Pricing Presenters. Check all locations.

      It may be useful to limit coupons to a particular billing cycle or set of cycles. An example is a 50% off first month coupon. You certainly wouldn't want to give 50% off the first year. I imagine the interface looking very much like the package pricing interface.

      It seems that this should be an optional feature controlled whether or not any billing cycles are set for the coupon. If they are not it should continue to function how it does now.

      Attached is an example of what it could look like.

        Activity

        There are no comments yet on this issue.

          People

          • Assignee:
            tyson Tyson Phillips (Inactive)
            Reporter:
            jonathan Jonathan Reissmueller
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:
              Fix Release Date:
              5/Dec/17

              Time Tracking

              Estimated:
              Original Estimate - Not Specified
              Not Specified
              Remaining:
              Remaining Estimate - 0 minutes
              0m
              Logged:
              Time Spent - 3 days, 3 hours, 29 minutes
              3d 3h 29m

                Agile