Recently in WooCommerce we’ve faced a challenge. How to introduce new UI features without disrupting existing store designs. I’ve been thinking of a strategy to address this, focusing on automatically opting in new stores for UI updates while preserving existing store designs.
The Challenge
“I want new features to respect my existing store design and functionality to maintain a consistent user experience and avoid unexpected changes.”
Me. I made this quote up.
This problem isn’t new – we’ve faced similar challenges with rolling out block template updates, and more recently Woo’s Block Hooks API implementation.
Approach
- Version Tracking: I’ve implemented a change to store the WooCommerce version a store started with (available from new installs on version
9.2.0). This allows us to make informed decisions about feature rollouts. PR #49139 - Selective Rollouts: This will allow new features impacting UI to be automatically applied to new stores, while existing stores maintain their current design. Should you need to.
This approach could have benefited the introduction of hooked blocks. I’ve since developed a slightly different solution for this feature. PR #49302
Benefits
- Introduce UI changes to new stores without disrupting existing ones
- Provide more granular control over feature rollouts
Outstanding questions
While this may address some concerns, it’s not a silver bullet. One significant challenge remains: how do we enable users to opt into the newest features if they aren’t automatically adopted by their site?
This approach aims to strike a balance between new UI updates and stability, ensuring we can roll out new features while respecting our existing merchants needs.
Leave a Reply