Standing Orders - version 1

Hello everyone,

@oeoeaio, @maikel @danielle and @bingxie’s brains have nearly imploded multiple times in bringing Standing Orders to life, but they’ve done it, and this epic feature is now ready for testing by the global community!

We’re asking everyone to go to Staging1 and give Standing Orders a test before January 11, 9am AEST (Melbourne time). @NickWeir @lin_d_hop @MyriamBoure @stveep @CynthiaReynolds @MyriamBoure @mags @sreeharsha
@elf-pavlik @tschumilas @Oliver @Olivier @MikeiLL Please tag anyone else :slight_smile:

Here is the address for Staging1 - https://staging1.openfood.com.au

What is it?

In case you’re not familiar, Standing Orders is a feature which allows enterprises to setup recurring or repeating subscription-like orders for their customers. Here’s a run-down of how it works…

Currently the enterprise admin can create standing orders for their customers, including the items they’d like regularly ordered and their preferred shipping/payment method. First the admin must create a group of order cycles called a schedule. The frequency of order cycles within the schedule dictates how often the customer gets their standing order. To illustrate with an example, the enterprise is likely to create a routine schedule, such as ‘fortnightly’ and it will contain an order cycle every two weeks. When each of the order cycles in the schedule opens, customers with standing orders applied to this schedule will have an order generated for them automatically, which they can add/remove products from until the order cycle closes. When the order cycle closes, their order is finalised, and they are billed.

We need to have lots of eyes on the feature to:
a) make sure it’s working smoothly and check for bugs
b) to make sure it will meet the needs of users in your part of the world
c) to discover any ways to make it more user friendly.

While the feature is functional, be aware that this it is currently the MVP, or a bare bones version. It’s not perfect, but this is a good stage to get your feedback, before finishing touches are made.

What to test:

  • Part 1 - Order Cycle Schedules - setup groups of order cycle that the standing orders will apply to
  • Part 2 -Standing Order Model - enterprises can assign standing orders to customers
  • Part 3 - Scheduled order checkout changes - customers can interact with their standing order in the checkout process.

There are 2 options for testing:

Option 1
If you’re a more advanced user of the OFN, you can head to staging and explore the feature BLIND, without looking at the description of the feature below. Testing in this way tells us if the feature is intuitive. Your feedback will reveal whether the location and setup of the feature is logical and easy to understand. Because you won’t be told in advance what to look for, these testers will give a good indication of how our users will see the feature.

Option 2
If you’d class yourself as a new, less experienced OFN user, or if you’ve already testing via Option 1, you can follow the guidelines below for testing. This lists the functionality to be tested, and you can tick off functioning components like a checklist. These testers will be checking that everything is working and that there are no bugs. We also want to hear if the feature will meet your needs, and whether you see any ways to improve it.

Having testers across both options will be ideal- and if you go with option 1 first, you can test with the option 2 approach after.

Note, Rob will clear the data next week on Friday the 23rd Australia time. So any new enterprises you’ve setup will be gone. This can be a pain in you’re half way through testing, or if you want a clean slate to test a second time, you can test once before and once after the data is cleared.

FAQs

Where to put your testing notes?

Previously ‘crowd testers’ have put their testing notes in individual google docs, and put the link here on the discourse thread. This worked well, just make it public/shareable. Remember screenshots and clear descriptions of the things that aren’t working.

Haven’t used staging1 before?
Head to https://staging1.openfood.com.au/register and create an account. You will need to request permission to create >1 enterprise if you want to test as a hub- email your instance leader (Lynne, Cynthia, Theresa, Harsha, Nick or Myriam, or hello@openfoodnetwork.org) and they’ll sort this for you.

New to testing?
Checkout basic instructions here - Testing Handbook

What device?
Please test the back end on desktop only (the backend is not responsive). Please test the front end on desktop and mobile/tablet if possible.

Be warned
There are a number of features/improvements which are part of Standing Orders but not complete yet, including; implementing STRIPE payment wallet and triggering payment at close of the standing order’s order cycle. @stveep is working on these and they aren’t far away. There are also some bugs, which are listed on this Epic on github - https://github.com/openfoodfoundation/openfoodnetwork/issues/1323 . If you see an issue is already captured in github, you don’t need to flag it during testing, or you can add comments to the existing issue.

Option 2 for Testing- Checklist of features/functionality

Part 1 - Order Cycle Schedules

Create an order cycle schedule 1055

  • A schedule is a group that contains multiple order cycles. Standing orders are applied to one of these groups, so we need to setup schedules before we setup the standing order. For example, if I want to give a customer a weekly subscription to a vegie box order, I’ll setup a schedule called ‘weekly’ and put weekly order cycles into that schedule. Then I can apply a standing order to that schedule for my customer.
  • In the Order Cycle admin page there is an Add Schedule button - clicking this opens a modal
  • You can name the new schedule
  • You can drag existing order cycles into the schedule from a given list of OCs. You can drag them out as well.
  • You can cancel the creation of this schedule, by clicking a cancel button. You’ll be asked if you’re sure before it cancels. A canceled schedule won’t exist.
  • If you hit ‘create’ a schedule will be created, the modal will close and the name of the schedule will show in the column next to all selected OCs.
  • Can show/hide the columns in the OC table, and save default columns for your user.

Edit or delete an order cycle schedule 1059

  • In the order cycle interface I can see previously created schedules in the OC table next to OCs that are assigned to the schedule.
  • If I click on the name of the schedule in the table. This should open an edit modal for the schedule.
  • You can edit the name of the schedule - these changes carry through everywhere the schedule is referenced.
  • You must click update for changes to be saved. Clicking cancel will ignore any changes.
  • You can delete a schedule by clicking on the delete button
  • If no standing orders are in place against the schedule it’s possible to delete after confirming. If standing orders are placed against the schedule then it should not be possible to delete.

Add an OC to one or more schedules (via the OC create/edit screen) 1058

  • Go to create an order cycle. There should be a new field called schedules.
  • You can search for previously created schedules and select them. You can select >1.
  • Only the coordinator of the OC is able to edit the schedule- suppliers or distributors can see the schedules but not edit
  • Test for producer OC interface and hub OC interface
  • On the OC admin page, in the schedule column, any schedules selected in the add OC interface should be listed next to the OC.
  • Now check that when editing an OC the schedule field is still visible and editable.
  • After adding/removing a schedule from an OC the ‘save’ button should become available to click

Filter order cycles by schedule or by date range 1056

  • I can filter the order cycle page by shop and schedule

Part 2 - Standing Order Model

Set up a standing order for a customer 1060

  • In Orders > Standing orders
  • I can select the coordinator.
  • Click on the Add Standing order button.
  • A 'create SO wizard steps through each field of creating a standing order. I can cancel at any time.
  • You cannot create a SO without first creating a schedule.
  • Customer - I can only select a customer on my customer list
  • Schedule - I can select from existing schedules
  • I can select payment and shipping methods that are active
  • I can select a start and end date for the standing order. If the customer’s standing order end date is before the close date of an OC, there’ll be no order placed in the OC.
  • The customer address should autofill from the customer’s saved default address (this isn’t built yet)
  • You can search for and select which items will be in this SO and in what QTYs.
  • You can review and save, or cancel.
    + Note if you create a standing order which applies to a currently open order cycle, an order will not be generated for that order cycle.

View all my standing orders 1061

  • In orders > standing orders
  • Filter the page by coordinator
  • Can select to view/hide columns
  • I can see all customers’ standing orders, including the schedule, the items, the start and end dates and the payment/shipping method.

Edit a standing order 1065

  • Open Orders > Standing Orders
  • On the index page you can see all existing SOs
  • The schedule and customer name cannot be edited
  • I can clikc on the items in a SO and a dropdown opens where I can edit the products in that SO and save.
  • Shipping and Payment methods can be edited in the same way.
  • Start and end dates can be edited in the same way.
  • An edit botton sits at the right of each row in the table. Clicking this opens an edit SO modal. Here you cannot edit the cusotmer name and schedule. All other fields can be edited.

Pause a Standing Order 1064
• In standing orders, in the listing view of a shop’s existing standing order, there is a pause button next to each standing order
• Hover over this button to reveal help text
• Click the pause button and be prompted to confirm the pause. Click cancel and the order isn’t paused, click confirm and it is paused.
• A paused order will have the ‘state’ = paused (previously it showed as ‘active’)
• The pause button has now become a ‘play’ button. Clicking play opens a confirmation prompt. Click cancel and the order remains paused, click confirm and the order is ‘active’ again.
• Paused orders should not receive emails regarding their standing order.
• No order should be generated for paused standing orders.

Cancel a customer’s standing order 1063
• This is a way to permanently delete a standing order, so that no future orders will be created for a customer. The cancelled standing order cannot be retrieved.
• Beside the standing order list, hover over the x Cross button. This will pop up a little message reading ‘cancel standing order’.
• If you click this a confirmation box will pop up, warning the user that this is final. If you cancel, the order remains, if you confirm it is cancelled.
• The order will remain on your standing order list, in the state ‘cancelled’
+ Note: If you cancel a standing order which has a current order in an open order cycle, that standing order will be deleted, as well as future ones.

Part 3 - Schedules Order Checkout Changes

Process standing orders when a new order cycle opens 1087
• When a standing order is applied to future order cycles, which are not open yet, no ‘order’ exists for each recurring order in the Listing Orders page (as complete or incomplete).
• When an order cycle opens, the system is triggered to create an order for this standing order, and the shop admin can now see it in their ‘Listing Orders’ page. It will be in the state ‘complete’ and any items in the standing order that ARE NOT in the order cycle will have been removed.
• This will be triggered IF the order cycle opened automatically according to the set opening date, or if it was manually opened by the user setting the date in the past.
• The stock/inventory level should have been reduced by these orders.

Send an email to the customer when a new standing order cycle opens 1078
• If a customer’s standing is applied to a schedule which contains an order cycle which has just opened, the system should send that customer an email alerting them that the order cycle is open and that they can ammend their standing order.
• They’ll be told if some items in their standing order are not available in the current order cycle and therefore not going to be delivered.
• What if none of the items in their standing order are in the OC?
• Check the contents of this email - does it contain all important information in a logical layout.

Notify customers when the order cycle has ended and their scheduled standing order is checked out 1088
• When an order cycle, in a schedule, with standing orders attached reaches its closing date and time, all standing orders which have been in ‘cart’ state for the duration of the order cycle are now ‘completed’.
• This will trigger an email to each customer with a final order confirmation. This will include their base standing order, plus any amendments they made to this during the order cycle open period.
• In the shop admin’s Listing Orders page, the standing orders will now show as ‘Complete’.

Opt-in option for enterprises to require customers to login to complete an order 1160

  • Enterprises now have the option to require customers to login before they can finalise their checkout. This is an important setting to be applied in conjunction with standing orders. Why? A customer with a standing order shouldn’t checkout as a guest because this could prevent them from seeing items that are already in their standing order, and they may duplicate their order. When logged in, they’ll see the alert at checkout saying ‘check which items are already in your order’.
  • This setting is in ‘Shop Preferences’
  • It should be recommended that enterprises using standing orders disallow guest checkout (for reason mentioned above).
  • If ‘allow guest orders’ is selected, customers can choose this option at checkout. If it is not, customers should be promoted to login, with no option of checking out as a guest.
  • This setting is separate to the ‘publicly visible shopfront’ setting, which demands customers login, and be on the customer list, in order to even see the shopfront.
  • Once tested, leave this setting on ‘require login’ for further testing, otherwise the new features won’t show.

Opt-in for enterprises to allow their customers to make changes to their current order 1161

  • Enterprises now have the option to allow or disallow customers to make changes to their past orders, IF the order cycle is still open. This allows/disallows customer to change their standing order which was set up in the past and is currently in an open order cycle.
  • This setting is in Shop Preferences
  • It’s conditional on Standing orders being activated???
  • Check that the setting is correctly allowing/disallowing order changes.
  • Leave activated for the next testing items.

Display products bought in an order cycle in the shop cart dropdown 1083

  • The shopping cart will now show items previously purchased in the same order cycle, below items in the current active cart. This includes items in a standing order that applied to the open order cycle.
  • It will only show if the setting above is active (allow customers to change their current order).
  • It will only show when the customer has entered a shop with an OC open.
  • It should not show items from other OCs, it should not show items from cancelled orders, it should not show items that have been removed from orders (from edit cart page).
  • It should update if you switch between 2 active order cycles, or 2 shopfronts

Display products bought in an order cycle in the edit cart page 1084

  • The Edit Cart page now shows items in the current cart, as well as items which have previously been purchased in the same Order Cycle, by the logged in shopper. This includes standing orders allocated to the order cycle.
  • It will only show if the setting above is active (allow customers to change their current order).
  • In case shoppers miss this part of the edit cart page, there is a reminder in the checkout, with a link back to the edit cart page.

Allow for bought products to be removed from an order on the edit cart page 1085

  • On the edit cart page, customers can remove items which were previously ordered in the same order cycle, including those in their standing order. Only if the “allow customers to change their current order” setting is activated
  • The deleted item should be removed in the customer’s ‘Account’ page, the cart dropdown, in the Enterprises reports, in the backend order, and the stock should be returned to the ‘on hand’ value of the product in product or inventory (i.e. it should carry through everywhere).
  • Note this feature will only be allowed if the enterprise has allowed customers to make changes to their orders (shop preferences, mentioned above).