Closed pmcpinto closed 3 years ago
Here's an update to this design to include categories for extensions.
Extensions are divided into two categories, "Get the basics" and "Grow your store". This iteration includes Creative Mail as well. All designs for the store profiler are located in the Onboarding Iterations Sept '20
Figma.
@pmcpinto in previous segmentation based flows like #4579 it was simpler because we didn't introduce additional steps, we simply did something different in the "Business Details" step, but in this case it seems that you want to introduce a new step to the wizard but only after we have determined segmentation during the wizard. This means we will have to change how many steps are displayed at the top half way through the wizard. It also means this will be significantly more complicated than the last experiment.
I just wanted to check if those are OK? probably the thing I'm most interested in is whether adding another step into the wizard half way through is OK? I think it's going to cause some horizontal visual movement in the step list when you go between the industry step and business details. I guess another option would be always displaying all the steps in the header, but just skipping the business features step if the segment doesn't apply to them.
There are likely some gotchas and edge cases with that approach that I haven't considered, for example returning to the wizard later after having completed it and trying to click navigate to that step.
@samueljseay thanks for raising this problem. @elizaan36 let's chat about this in our 1.1.
@samueljseay I chatted with @elizaan36 about this today and we think that the easiest way is to display the new UI within the Business Details step for this experiment instead of creating a new step. Sounds good to you? Elizabeth is going to work on the design today.
@pmcpinto yes that sounds ideal, thank you!
Thanks for bringing this up @samueljseay. We definitely don't want to change the number of steps while the user is in the middle of the onboarding flow, so in order to present this experiment (new step for business features) we'd need to consolidate the "Free features" step within the "Business details" step.
Here's a solution that I think is the best way forward to present the features as a new step.
Granted, this is not ideal considering that it's an additional step disguised as a tab. I think it's worth experimenting to see how it performs as the separate step and hopefully in the future we can have more flexibility with a/b testing to prevent the issue. When @pmcpinto and I chatted earlier, I suggested that targeting a random sample prior to loading the first step would allow us to present a full and complete experience to each cohort, but there are privacy/legal concerns with collecting data until people explicitly opt-in.
A couple points to make this work:
Let me know if you see any issues with this, or if I've missed anything here. Prototype and designs are in the Onboarding iterations Sept '20 Figma.
@elizaan36 thanks for creating an alternative so quickly. I'm just not 100% sure about this point:
The "Free features" tab is disabled until the Business details form is complete
My assumption is that this probably can add friction and create some confusion: users can think that the tab is broken or that if they click "continue" in the business details tab they'll be redirected to the Theme step without seeing what's going to be installed. WDYT?
The reason the "Free features" tab needs to be disabled until the "Business details" are complete is that they are required. If business details are optional, then the tab can be shown as active regardless.
I'll walk through the use case of the tab being active to explain:
So the issue is how do we provide an error message that's detailed enough for people to understand that they need to return to the "Business details" tab and complete those selections, before coming back to "Free features" and clicking through to the next step after that? IMO, this would be too convoluted so my solution was to disable the tab unless Business details is complete.
It could work the following way: Click "continue" in the Free features tab and redirect the user back to the Business details tab with an alert message saying something like: Please fill in the required information before proceeding to the next step.
This way we'd also get a sense of how many people want to move forward without adding the business details
That feels convoluted to me since they would have to click through the Free features step again, but I don't know how much of an edge case that would be. I'm ok with trying it for this test.
@pmcpinto I think thats definitely going to add more complexity (this piece of work is already fairly complex for a number of reasons). This flow of expecting users to fill out the data before moving steps should feel familiar as it is anyway, as we do this throughout the wizard already.
I'm hoping to have a PR up in the next couple of days with the current state, maybe you could review how it feels as it is implemented at that stage, but I do feel that the design feels intuitive as it is in the designs personally.
@pmcpinto I think thats definitely going to add more complexity (this piece of work is already fairly complex for a number of reasons). This flow of expecting users to fill out the data before moving steps should feel familiar as it is anyway, as we do this throughout the wizard already.
@samueljseay thanks for your feedback. So let's keep it simple and only allow them to check the free extensions tab after adding the data.
@pmcpinto What should the behaviour be for the "Add recommended business features to my site" checkbox in these cases:
Here's how I have it behaving right now:
But if it behaves this way then I think all_extensions_installed
should be true
when all plugins are checked and false when at least one is not checked?
@pmcpinto One other question on tracking:
For the original flow, we track the event storeprofiler_store_business_details_continue
. but it doesn't just include the extensions installed it also includes options chosen in the first step. This is all under one event.
What should we do for this new one? The simplest thing would be to do the same and track all that additional information alongside the extensions installed.
@pmcpinto sorry for the question barrage but another one:
for the current experiment we display TOS text because they're installing jetpack and wc-shipping. The text is
'By installing Jetpack and WooCommerce Shipping plugins for free you agree to our Terms of Service.'
Do we want to have separate pieces of copy for if they just chose wc-shipping or just chose jetpack? or could we check if they installed either and adjust the copy:
'By installing Jetpack or WooCommerce Shipping plugins for free you agree to our Terms of Service.'
Also, is this copy still relevant/ok:
'User accounts are required to use these features.',
? Do we need to conditionally show this based on which extensions they install? or perhaps show it when there is at least 1 selected and don't show it otherwise?
@pmcpinto another question:
this event: wcadmin_storeprofiler_store_business_features_accordion_click
should we record whether they're opening or closing it? if not should we just record it when they open it?
@samueljseay sorry for the late reply. Here's my feedback:
Here's how I have it behaving right now The way how it behaves right now makes sense to me
But if it behaves this way then I think all_extensions_installed should be true when all plugins are checked and false when at least one is not checked?
Sounds good to me.
What should we do for this new one? The simplest thing would be to do the same and track all that additional information alongside the extensions installed.
I think that it would be less confusing to have a separate event for this tab, as I mentioned in the issue description. Also, if this experiment goes well we're going to have this tab as a separate step in the near future, so probably it's better to have separate tracking right from the beginning. Makes sense?
or could we check if they installed either and adjust the copy: 'By installing Jetpack or WooCommerce Shipping plugins for free you agree to our Terms of Service.'
This option looks good to me.
'User accounts are required to use these features.',? Do we need to conditionally show this based on which extensions they install? or perhaps show it when there is at least 1 selected and don't show it otherwise?
AFAIK all of them require user account, so we can keep it simple and show the copy even if they don't disable all of them
this event: wcadmin_storeprofiler_store_business_features_accordion_click should we record whether they're opening or closing it? if not should we just record it when they open it?
The most important is to track if they open the accordion. We don't need to track if they're closing it
hey, regarding the first question there's the possibility of implementing this indeterminate state. I think it's a valid option in this case as an alternative to keeping the checkmark even when features underneath are deselected.
https://share.getcloudapp.com/8LunwQpX
Clicking on the indeterminate state from here would deselect all.
@elizaan36 that seems entirely reasonable but the checkbox control in gutenberg doesn't have this state. I looked in to it, and it uses an svg for the background, it'd be non-trivial at this stage to implement that. Wondering if we could defer adding this intdeterminate state? Otherwise we have to implement another checkbox of our own to support this. I support doing it, but maybe as an enhancement?
I think that it would be less confusing to have a separate event for this tab, as I mentioned in the issue description. Also, if this experiment goes well we're going to have this tab as a separate step in the near future, so probably it's better to have separate tracking right from the beginning. Makes sense?
@pmcpinto I think there is maybe some confusion here. You're saying "separate event for this tab, as I mentioned in the issue description" but there are now 2 "tab" steps as part of this alternative flow:
The total info to collect is the info you specified in the issue description but also:
product count (chosen in the dropdown)
selling on another platform? (chosen in dropdown)
currency
revenue (chosen in dropdown)
for the original flow this was all recorded alongside the choosing of the checkbox for business features. (under the event wcadmin_storeprofiler_store_business_details_continue
)
we can do:
or
or
@samueljseay sorry if I wasn't 100% clear. The approach that I'm proposing is the first one:
Record a continue event for the first tab, just collect that first information, then record a separate event for second tab, record just the installed features information
Let me know what you think . Thanks
@pmcpinto that's perfect thank you!
Wondering if we could defer adding this intdeterminate state? Otherwise we have to implement another checkbox of our own to support this. I support doing it, but maybe as an enhancement?
Makes sense to defer adding it now and plan on this enhancement in the future. Maybe something we can contribute back to Gutenberg as well.
@samueljseay just to confirm that it will be possible to include this in the WooCommerce 5.0 release. The code freeze is next week. Thanks
@pmcpinto Yep its all wrapped up and in the code base now so its ready for the next release.
Awesome, thanks! ❤️ I'm looking forward to testing this variation.
Description: the experiment implemented in #4579 showed that we're moving in the right direction. However, there are some concerns over not allowing users to disable some extensions and displaying them in the Business Details step if far from ideal. We're going to experiment with an intermediate approach while keeping the two existing flows. We aim to validate this approach in the WooCommerce December release and if everything looks good we'll remove the two other flows.
Final segmentation: Stores that selected the
US
as the country andOther
orFood & Drinks
as the industry. It gives about 30% of the total number of new users from the USAcceptance Criteria:
US
as the country andOther
orFood & Drinks
as the industryEvent tracking: It will be better to add a new event for this step's alternative version:
Event name:
wcadmin_storeprofiler_store_business_features_continue
Event description: When the user clicks on "Continue" Event prop:all_extensions_installed
(value: True/False) - with all the extensions selected or deselected Then we should also have a prop for each extension to cover when they deselect some of them:install_woocommerce_services
install_mailchimp
install_jetpack
install_google_ads
install_facebook
install_wcpay
Event name:
wcadmin_storeprofiler_store_business_features_accordion_click
Event prop: NA Event description: When the user clicks on the accordionIt will be necessary to update
wcadmin_storeprofiler_step_view
to include this alternative step as the value of thestep
prop. It can be named business-featuresAdditional links: P2 w/ link to the mockups here: pbIJXs-n0-p2