- DATE:
- AUTHOR:
- Dutchie Product Team
Dutchie E-Commerce: Mobile app updates, "Hide from specials page" option in Dutchie POS, fixes
Mobile App
Enhancements
Phone verification now available in the mobile app
Phone verification for new accounts (OTP) has come to the mobile app, matching what's already been on web for a while. Shoppers verify their phone number inline without leaving the loyalty enrollment or redemption flow they started. Verification is required to enroll in or redeem Dutchie POS loyalty, and it's also wired into Account Settings as a standalone Verify/Verified control. Rollout is controlled independently from the web/server-side policy, so mobile can be staged or disabled on its own.
New accounts prompted to enroll in loyalty and Pay by Bank
New accounts are now prompted immediately after signup to enroll in loyalty, and then, whether they enrolled or declined, prompted to enroll in Pay by Bank, instead of discovering either later on their own. The loyalty signup prompt has also been redesigned and now shows the correct state for compliance-gated scenarios based on dispensary/enterprise configuration.
App layout adapts to large accessibility text sizes
The app now adapts its layout for shoppers who have large/accessibility text sizes enabled on their phone, including product card rows and carousels that were previously prone to overflow or clipping at larger text sizes.
Notification Center now shows images prominently
Notification images are now shown prominently on the Notification Center page instead of as a small, secondary thumbnail.
Carts from push notifications now tracked to the notification
Carts created from a push notification now carry attribution back to that notification, so marketers can track the full funnel from push open to add-to-cart to order.
App respects max loyalty redemptions per transaction
The app now respects a dispensary's configured maximum number of loyalty redemptions per transaction at checkout, matching the behavior already on web.
Custom branding for the app's initial loading screen
The initial loading screen shown while the app boots now supports branding customization per dispensary/chain, instead of a generic unbranded screen.
Smoother animations, lower memory use, and less device heat
Several performance improvements: fixed janky over-scroll/rubber-banding, reduced memory usage by sizing images to the space they're actually displayed in rather than loading full source resolution, and resolved an elevated memory footprint in the app's HTTP layer, together contributing to smoother animations and less device heat during extended use. Better animations, the phone is less hot, the tab colors transition in liquid glass.
Fixes
Apps with a dark background could show illegible (dark-on-dark) text on the loyalty signup prompt and on product listing page titles.
The in-store order history summary tab could show order totals shifted two decimal places (e.g., cents shown as whole dollars).
The checkout button on the cart screen could be hidden behind the bottom navigation bar when that bar was set to a solid style.
The checkerboard placeholder shown for products without an image didn't match between admin and the mobile app.
Eighth-sized products could show a per-gram price instead of the price for the full eighth.
iPhone customers could be unable to select or save a delivery time slot and address.
The age-gate screen could show a broken-image icon if its background image failed to load.
Renamed "AI budtender" to "Virtual Budtender" in the AI Concierge's conversation prompts, to match current product naming.
Dutchie E-Commerce
Enhancements
New “Hide from specials page” option for Dutchie POS discounts
Locations integrated with Dutchie POS will get a new Hide from specials page option in the Dutchie POS discount configuration, on the Online details step. This will hide a discount from your Dutchie E-Commerce Specials page, but the discount will still apply in carts and display strikethrough pricing wherever eligible.
Fixes
We're deploying fixes for the following issues:
Activating a dispensary's menu didn't clear a cached storefront banner, so shoppers could see a "not available for ordering" message for about 60 seconds after the menu actually went live.
Renaming a delivery zone didn't regenerate its reservation slots, permanently breaking delivery scheduling for that zone.
High-precision tiered pricing from Cova integrations could cause the entire menu to fail to load in admin and on the storefront.
The same type of pricing data issue could cause the entire menu to fail to load for dispensaries using Flowhub per-unit or wholesale pricing.
A collection could include a product that didn't actually match the collection's configured criteria.
On Kiosk Pro, touch targets for buttons like Cancel and Go to Cart could be misaligned, registering a tap on the product underneath the button instead.
A retailer's custom storefront footer could remove the only discoverable control that opens privacy consent preferences.
A hosted-checkout session's access could be lost on reload, in a new tab, or on a later visit, instead of persisting the same way a normal browser session would.
On mobile checkout for Ecomm Pro sites, the order confirmation heading could overlap the "order submitted" checkmark graphic.
The product-list filter sidebar could go blank while a filter request was still pending or had errored, instead of showing a loading or error state.
Terpenes could display incorrectly on the Dutchie Plus menu.
Switching categories on some partner storefront themes could intermittently freeze the page due to duplicate cache subscriptions.
In Maryland, a shopper who exceeded the concentrate purchase limit saw a message about the state's 1.5 oz flower limit instead of the correct concentrate limit.
The offer rotator on the product detail page could show a different discount name than the one shown in the list view for the same product.
Restarting a session on the storefront menu could require a two-finger scroll gesture to scroll the page on iPad/iPhone.
High-precision wholesale/FMV cost pricing from Blaze integrations could cause the entire menu to fail to load in admin and on the storefront.
Looking up delivery info for an address could throw an unhandled error when expected input or dispensary data was missing, instead of failing gracefully.
Updating a profile with no birthday provided (an explicitly optional field) could crash with an error instead of saving successfully.