Subscriptions improvements

What is the need / problem

Version 1 of the subscriptions feature has been a long time in the coming, and was meant to be fairly bare bones. When we put it out for testing and input from the OFN global community there will no doubt be feedback about poor UX for enterprises, and suggestions for how to improve all the things.

This is actually already happening with people testing the feature who have no idea how it should work, and starting to suggest changes, which are perfectly valid but which are also out of scope for v1.

So, this improvements icebox item is the place where we can start collating these improvement requests from people (please put them as comments below once you start using or testing the feature), and we can then group these to better understand the biggest problems to solve in ensuring subscriptions is user friendly and fully functioning.

Who does it impact

Many, many people, all those who are currently waiting for Subscriptions to be launched and who may well not know how to use it without assistance once they have it.

What is the current impact of this problem

TBD

What is the benefit in focusing on this

Because the lack of Subscriptions as a feature in the platform is a barrier to entry for A LOT of enterprises across the globe. And we want to make sure that we quickly back up the release of the first version with improvements to ensure that it works for them.

Links to more details

GitHub Feature epic

Potential solutions that will solve this problem

TBD

PIng @oeoeaio @MyriamBoure @NickWeir @lin_d_hop @Kirsten @maikel @Rachel @sstead.

Note: the sooner we get the first version of subscriptions live the sooner we can focus on elaborating on how to improve it.

Thus, if in your testing or reviewing or beta trialling of this feature you find things that aren’t easy to understand or that have crappy UX or whatever else you discover, please list them here so we can use them to formulate the next stage of development for Subscriptions.

In the meantime, let’s get what is already built and in the delivery train through to done and then start beta testing!

OK here’s my first things. First of all

YAY! As far as I can see this works!

Here are the first things that I have encountered as quite annoying though, that might be quite off-putting to users and customers

1. Painful creation of a series of order cycles

  • Cloning OC’s misses key components e.g. schedule is not cloned. #1052 enables copying settings within the order cycle, but that would still require each one to be opened - painful. Proposing close #1052 and do #2439
  • Enable edit of name and schedule from order cycle index / overview screen so that users can clone and adjust without loading order cycles - will save hours! G2430

I have created issues in github for these as they are small, buggie and also (I think) ‘good first issues’

The next two are pretty significant in the context of hub managers needing to create the subscriptions

2. New customer - interaction with email confirmation and authorisation

  • I have added a new customer (not previously on ofn) to my customer list, as required before i can create the subscription
  • I then create the subscription (using cash on collection - see below)
  • As I already have a schedule and OCs set up, orders are created and the customer receives notification email

This email contains a link to ‘view details of this order’

As the Customer has never been on OFN, clicking this link takes them to a page for which they are unauthorised

As I know how to use OFN already, I click on login and do the sign-up. I receive an email confirmation and click on it. I go back to ofn and login. Someone not familiar with OFN would not necessarily make it through these steps?

Now I am logged in but still unauthorised, even when I refresh page

If I go to cog and then my account, it tells me i have no orders

Clicking the link from the email again still takes me to unauthorised.

Looking as admin it is clear that this user has four orders

where are they for user?

3. Hub manager cannot add customer credit card

I have created Stripe as a payment method. But when I go to create a subscription for a customer it tells me that no card is available.

As a Hub Manager i should be able to click here and add credit card details to that customer. Otherwise I need to set them to cash on collection and then make them go and add credit card details.

Given the likelihood that they are able to login (as per issue above) this effectively prevents use of credit card / stripe for new customers?

@danielle @MyriamBoure @sstead are issues 2 & 3 significant enough that I should create issues for them to be considered sooner rather than later?

I think that 2 & 3 could be ‘worked around’ by hubs making sure that all customers are on ofn and have put in credit card details first - painful but might be ok for beta testing?

Issue 1 makes me want to learn to code again. I’m sure these are incredibly easy.

Number 1 sounds logical. My only comment on 2439 regarding ‘The schedule field should also be made editable from this overview page’ is that if you click on the schedule name from that page, you can shuffle OCs in and out of that schedule. This prevents the need to go into each OC to add them to schedule- thus this isn’t as crucial. This does rely on you having one OC that’s in the schedule visible (not archived into the older than 30 days area) to click on.

Number 2 - Yes, i was thinking about this too. If there’s a subscription setup for a customer who hasn’t confirmed their email I don’t think that customer should get the order. I think it should be ’ one subscription couldn’t be processed as the customer hasn’t confirmed their email’. Seems like this was the ethos behind the email confirmation work- people must confirm before they interact with OFN.

Number 3 will be fixed by pull/2276 - after it’s pushed instead of the shop manager selecting the card the customer selects their default card in their /account.

  1. Ace! that makes a big difference - i hadn’t noticed or understood that - will check tomorrow if maybe there was a problem with that that meant i missed it. So probably it really is just the editable name field then - even easier :slight_smile:

  2. hopefully what you’re suggesting would solve it, I’m still not sure if the orders created before authorised user are lost / stranded somehow? Think you would want the hub to be able to create the orders but then independently ask people to sign up? and have the orders find them once they did?

  3. yay :slight_smile:

OK just following these up.

  1. OK, so the issue here is that when the OC is first cloned the schedule is set to None, which is not clickable to open the updater. I think there are then two small issues which should both be resolved
    • #2439 - cloning should copy the schedule
    • #2463 - when Schedule is set to ‘None’ - it should still be clickable on the OC overview screen to open the Schedule updater

So then #2430 becomes just about making the name editable from the OC index. And I have created a new issue for #2464 - updating the pick-up / delivery details . . as that’s the only other thing that would likely require them to open each one

NB. I have created issues for each of those and put them as ‘good first issues’

  1. The UX around this is confusing and likely beyond me. It seems like we really need to avoid circular journeys where the hub manager needs to do something, then ask the customer to do something, and then do something else - each of those are points where either the customer or the hub won’t do the thing and will be lost

I don’t know enough about email confirmation conversations etc to understand why things are the way they are or not. Do you know:

  • if superadmin can still add a user to the system? is that user sent a confirmation email? if not, can they log in? [update: have confirmed yes and yes]
  • is there a reason why hub adding a customer wouldn’t trigger user / email confirmation process?
  1. OK this is better. Now it warns me that the customer has no credit card / permission but lets me save. But again will require me to get this far and then ask my customer to login and put in credit card details.

As I am setting up the subscriptions for all my customers, and might have them on the phone etc - it would make a lot of sense for me to be able to take their credit card number and put that in for them?

NB. Issues not yet created for 2 and 3

re. 2 above - now that the user guide is back i am retracing my steps and have found the instruction about not allowing guest orders. I had guest orders set to on . . I am not sure how this problem would present if i had it off before attempting to create Subscription from guest user.

also, as it stands I don’t seem to be able to reconnect a Subscription with user once one is created. i.e. the subscription created for guest doesn’t match with user on same email - that user (once confirmed) can’t see info from subscription.

  1. As a Customer, I have received info that I can change my order

I click on link from email
If not already logged in in brower i get ‘unauthorised’ - should just give me login, and then take me to order if possible

Once I am logged in and on order page, I can see how to change units or delete an item but not add one. Am i missing something? should i be able to add an item?

. . ok just found this in user guide

Change orders: Enterprises can choose whether or not customers are allowed to edit their subscription order while the order cycle is open. If you allow customer to change their order, they can remove items from the order or cancel the order. If customers want to add something to their order they will need to place a new order.

how do I place a new order as a customer? i don’t think I can? i need to call the hub manager or something?

@sstead made an issue for this - Prompt person to login if they use a link to an order and they are not logged in already. ¡ Issue #2506 ¡ openfoodfoundation/openfoodnetwork ¡ GitHub

Hey! I will comment soon on that but I think we should be careful and not mix what is within the subscription feature, and what is outside. Like for instance, making OC duplication easier is something that might be needed to improve subscription set up UX, but it is another focus point IMO. The fact that the impact of subscription on OC duplication (like should copy schedule) has been forgotten is a mistake, but the rest is out of scope of the subscription feature. Same for UX when adding a new customer. I think we should clarify, even if posterior work, what was in release 1, what is the scope, and make sure this works good. For instance, scope for v1 for me is “hub manager can create a subscription for an existing OFN user”, so all what regards customers who are not yet OFN users should be planned for a later release, but is not about ensuring release one is usable. I think it might help to use some tool like https://app.cardboardit.com/maps/guests/ab9ea64b14ff4efd418b6a5dfb5a89c2dd4060e075328dccdfb20874974c8882 to clarify all that. Sincerly I’m completely lost today in the mess of this feature to be honest, to be able to contribute I need more clarity. So I’m trying to find my way trough by starting to go back the the needs and map things in this (free for public projects) story mapping tool (and test it at the same time).

5. Improve alerts triggered when a customer who’s set to be billed by Stripe won’t be able to be billed. (This is a nice to have)

Context

  • A customer who is to be billed by stripe must have a) a saved credit card marked as ‘default’ in their account and b) have granted the shop with permission to bill their card.
  • A subscription using Stripe can’t be created unless these 2 requirements are met. However after the sub is in place, the customer may remove a or b. In such a case they won’t be able to be billed by stripe.

Current behaviour, and suggested improvements
In the case that a customer has removed a or b, and a subscription is triggered:

  • The first email to the customer doesn’t mention that they won’t be able to be billed. Could this email include an alert ‘you don’t have a or b in place, so your card won’t be able to be charged’
  • The first email to the shop owner doesn’t mention that the stripe billing won’t work. Could this email include an alert saying ‘Customer X doesn’t have a or b in place, thus their Stripe credit card charge won’t be successful’
  • The only place where the shop manage will be alerted to the fact that the order won’t be able to be billed is if the shop manager tries to edit the subscription. Then they’ll see an error alert. Could we make the alert visible on the subcription interface without the manager needing to first edit the sub.

6) A bug which can allow on hand values go into the negatives.

7) A bug which prevents customers from lowering stock levels if the product has on hand of zero.

8) I’m not a fan of this error message shown to managers who try to edit a single subscription order. The message is basically a warning that editing a single order might cause issues.

At the moment, as customers can’t add items to sub orders themselves, so I’m telling shop managers that they can do this if the customers requests by editing the order. But this warning message is not comforting. We need to either say ‘you can’t edit this order’ or ‘you can safely edit this order’. This ambiguity is unpleasant. From what I’ve seen there’s no issues that come from editing an order, but we may need a full sweep of testing to confirm this, and then get rid of this warning message.

Following up on Issue 2 above. Various solutions suggested and most complexity parked for proper prioritisation / inception in Subs V2 including possible:

  • prevent creation of subscription for guest user e.g. Customer that is not confirmed user
  • enable Hub to trigger User creation and send email confirmation from somewhere in Subscription creation process e.g. Customer interface or Subscription interface (possibly create Customer and User in one step from Subs interface would be ideal)
    Issues #2508 and #2511 closed. Can be revisited for suggestions when considering the above again

The ‘get it out’ fix for subs v1 is made up of #2506 and #2534

Dani and I are going to look at subs pain points on Tuesday. UK people, I understand you’ve been using Subs, so if you have any early feedback about things that might need fixing before we can launch V1 please list here. Thanks! @lin_d_hop @Oliver @Matt-Yorkley @NickWeir

@danielle this is not anymore an icebox right? It seems the discussion here is more about fixing things for v1 to work. Is there a space where we can put feedbacks from users? I start to have some and have some suggestion to make for iteration 2.

First feedbacks:
1- users don’t understand the schedule logic, we need at least to add some guiding text on the schedule set up screen, and ideally have some UX review on it. They don’t understand either why they have to assign a schedule to an OC when creating a schedule. They says it’s not logical, and I agree. if there is a logic then we need to understand it and make it clearer in UX.
2- also the first question I had was “can the user make a regular order as well or do I have to manually do it each time?” so there is a need to think about the customer view and recurring orders set up and management in iteration 2.
3- Discussing with @Rachel and the French CSA network I think we should distinguish recurring orders and subscriptions. I thought we were doing subscriptions but I realized there is no contract here, and it’s not a subscription module, it’s definitely a recurring orders module. When you sell a subscription, you don’t sell products, you sell the subscription, like when you subscribe to some newspaper. It entails a “contract” where the seller commit to deliver things during a given period of time on a given schedule. So I suggest we avoid confusing users and rename before real launch back to “recurring orders” and we will need at some point to thing about what would be a real subscription module that CSA need. We are starting to work on it with @Rachel who may answer a CFP from the French CSA network on their CSA subscription management software. Also trying to convince them to invest in OFN and build it in it… but not sure we’ll manage, so at least we’ll try to going knowledge by working for them on it.

Point @sstead @Kirsten

1 Like

I like your clarification of ‘recurring orders’ and ‘subscription’, and agree with re-naming. What we have here is the potential for a buyer to simplify their product purchasing by placing an order for individual products that OFN remembers, and suggests to them for verification/changes… A subscription is buying a ‘package’ - as described by the seller…

Quick UX feedback after creating my first Subscription :tada:, as Hub manager. As I’m new here I’m not sure where to put the following, so kindly point me to the right place (github?) if needed.

On creating a new Subscription,

  • in step 1. Basic Details, begins at date should be today by default, more intuitive.
  • in step 1. Basic Details, selecting a pick-up type shipping method should hide the shipment adress in step 2. Address, or at least populate it with the data of the pick-up location (as a lesser option)
  • in step 3. Add Products, price unit shows as $ even though my shop is configured to use €. In the confirmation email it uses the right unit (€).

Thanks for the good work already done !

1 Like

Just got off a very interesting phone call with a long standing and successful CSA in the UK. The call was intended to just explore their processes, as we both knew that OFN does not do what they currently need it to do to take over from their existing system.

I thought I’d share here how their system works (using our language) as it is actually a lot like the implementation of our Subscriptions and might make for a good v2 iteration.

Their system is built around weekly order cycles. They keep 6 future order cycles open at any one time. When one order cycle closes a future order cycle opens and is added to the schedule. Customers then have access to any of the next 6 order cycles and can amend the basket for any of them.

Customers can also view the overall set of items they have in subscriptions. At any time they can add an item to the overall set, with a frequency (1,2,3 or 4 weekly) and a start date. This product is then added to all upcoming order cycles in the schedule with the specified frequency.

Interesting - like the idea of having a number of ‘open’ order cycles for modification. I also love that they have a button to see what is in that week’s delivery. CSAs that offer ‘a la carte’ items, in addition to the farmer-chosen items need this here.
But it looks like in this model customers are billed weekly. We tend to call this a ‘food box scheme’ versus a ‘CSA’. Here the difference is that in (what we call) a CSA, the customer makes an upfront commitment to 22 - 26 weeks of pickups/delveries. Most CSAs require at least 50% of the payment up front, with the remaining payment midway in the season (or some payment schedule). I’ve just been setting up demos for 3 different CSA models here - just to see how ‘close’ OFN can get and what the gaps are. Word is still out from some of them - but at this point the key features we are missing are: ability to make and track partial payments, ability to tailor ‘delivery locations’ (split shares between locations, different product mix, different days) without setting up separate ‘distribution’ enterprises (which is what we have to do now in OFN to get the flexibility), ability to manage different customer lists per delivery location. Not sure if our ‘subscription 2’ is heading towards CSA-support, or ‘simply’ better subscription (standing order) support.