Skip to content

Let staff redeem gift certificate codes on a member's behalf #2184

@phinze

Description

@phinze

Sometimes members miss the gift code entry field during signup and pay normally instead. Today the only way to fix this is to ask the member to redo their entire signup so they can apply the code, which is friction we're putting on people who already gave us money for a gift.

Staff should be able to redeem a gift certificate code from the admin side — either while creating a new membership for a member, or applied to an existing fresh membership. The redemption logic itself already exists in Signup::RedemptionsController#create (wrap a Membership.create_for_member in a transaction and call gift_membership.redeem), so this is mostly a question of surfacing it in the admin UI.

Places to start:

  • MembershipForm (app/forms/membership_form.rb) currently has two payment modes: "Accept payment today" and "Create without payment." A third "Redeem gift certificate code" option would slot in naturally alongside those.
  • app/views/admin/members/memberships/new.html.erb is the form that needs the new fieldset.
  • GiftMembershipRedemptionForm (app/forms/gift_membership_redemption_form.rb) already validates codes and could be composed in.

Open questions:

  • Should this also handle the case where a member has already paid for a membership and we want to refund/credit them after applying the gift code? Or is it sufficient to only support "this membership hasn't been paid for yet, redeem the code instead"? The latter is much simpler and probably covers the reported pain point.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions