- DATE:
- AUTHOR:
- Dutchie Product Team
Dutchie POS: Self-service API key management, expanded online discount support, Aging Report for expiring loyalty points, fixes
Enhancements
Loyalty & Marketing
Additions to Campaign Breakdown card
The Campaign Breakdown card now includes Units, Gross Revenue, and Net Revenue measures, alongside the existing Category/Brand/Product share-of-units view, so marketers can see where revenue and discounts went instead of only unit counts.
Age Select for SMS verification
Customers verifying their age through an SMS campaign can now pick their birth date from a simple multiple-choice selection instead of typing out their full date of birth, cutting the verification step from 8+ clicks to one.
Test send history
You can now view a history of test sends, so your team can confirm whether test messages were sent and received without having to track them manually.
Products & Inventory
New Smart Tag filters for more flexible inventory tagging:
Room: Select one or more rooms to target inventory in specific areas.
Inventory Status: Automatically tag inventory based on its status, such as on hold.
Is Cannabis: Create rules based on whether a product is cannabis, without relying on category names.
Is Device: Create rules based on whether a product is a device, without relying on category names.
Learn more about smart tags on the Dutchie Help Center.
Global category management
We're enabling global category and subcategory mapping in Dutchie POS for a select group of customers. This means your product categories will now be set and managed in Dutchie POS and automatically synced to your Dutchie E-Commerce menu.
What this means for you:
• You can now set, update, and manage your global categories and subcategories in bulk directly from your Backoffice product catalog.
• Categories you configure in the Backoffice will be the source of truth for your E-Commerce menu going forward.
• You no longer need to manage category mappings separately in E-Commerce Admin.
Discounts
Expanded online discount support and POS-managed tax display.
Discount sync with Dutchie E-Commerce will add support for more Dutchie POS discount settings, and online tax display is managed in POS.
More discount settings work online
Exclude non-cannabis items: Eligible discounts can appear online with Include non-cannabis items turned off, without making non-cannabis products eligible.
Use Pricing Tier filters: Discounts that include or exclude products by product Pricing Tier can work online without replacing those filters.
Manage online tax display in POS
Go to Settings → Taxes & compliance → Taxes, open a tax rate, and review its Online Settings. For each applicable tax rate, you can manage these settings independently:
Include tax in online menu prices for menu browsing.
Include tax in online prices at checkout for cart and checkout.
If these settings differ between tax rates, displayed prices may differ between the menu and checkout. These settings affect price display only; excluding tax from displayed prices does not waive the tax.
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.
Customer Profiles
Customer profile notes history.
The different types of notes on a customer profile now have a consistent history, so you can see what changed and when.
Customer Segments
Order Source segment attribute
Marketers can now build customer segments based on the channel a customer ordered through, such as Mobile App or Kiosk. In the segment builder, add the Order Source attribute and select one or more sources: In-store, Dutchie E-Commerce, Mobile app, or Kiosk. It supports “times” and “date range” logic, for example “ordered from Mobile App at least 3 times in the last 90 days.”
Orders from third-party marketplaces such as Weedmaps and Leafly will appear under the In-Store Walk-in / Unspecified Pre-order label.
Reporting
Reporting cleanup: legacy reports retired
Following a reporting-platform parity review, the EOD Detail and Inventory Expirations reports have been deprecated, and Sales By Category plus Sales Summary by Master Category have been retired into End of Day Summary, which now has an optional daily sales-by-category breakdown. EOD Summary, Payments, and Return Transactions reports are unaffected.
Custom date ranges for expiring inventory
The Inventory Overview page now supports a custom date range for expiring inventory, instead of only the fixed 15/30/45/60-day buckets. This replaces the Inventory Expirations report.
Aging Report forecasts expiring loyalty points
Forecast expiring loyalty points with the Aging Report. The new Aging Report estimates how many loyalty points will expire in the future, helping you plan ahead. It’s available for retailers whose points expire a set number of days after they’re granted. Find it under Reports > Marketing > Total Points Liability.
Integrations
Self-service API key management
You can now generate, rotate, and revoke your own API keys, so you don’t need to contact Support for routine key changes. Learn more about self-service API key management in the Dutchie Help Center.
Fixes
We're releasing fixes for the following issues:
The Redeem Loyalty Points dialog at Register could show rewards a customer couldn't actually redeem because they were still in their cooldown/refresh window, failing with an error if selected.
An inventory audit could be submitted with unresolved discrepancies without requiring notes explaining them.
ID Scan and Cards settings could be edited by a user with only Login-only permission.
The POS loyalty sign-up form could be submitted with only one of its required fields (email or phone) filled in.
Moving a package to a new room could fail with a database error if that package had never been assigned a room, which could happen when it was created through an Inventory Audit adjustment rather than a receive.
Several state compliance static reports (Arizona, New York OCM, Saskatchewan, Manitoba) could report inaccurate inventory for carts using allocated packages.
The Retired Products toggle on the Catalog page wasn't respected by the dropdown filters.
Customer search during check-in could fail to find a match when a name suffix (Jr., III, etc.) was entered in its own dedicated field rather than as part of the last name.
A catalog item's Alternate Name wasn't printing on labels.
Changes to fees/donations, tax-to-delivery-zone mappings, and several discount configuration tables weren't being tracked on the Audit Tables page.
The Public API's menu-prices endpoint (used by Weedmaps and others) slowed dramatically — from roughly 1.3s average to as long as 4-7 minutes for the worst requests — due to a tax-calculator lookup reading location settings from Redis on every single call instead of caching them.
Scanning a customer ID could drop the hyphen from a 9-digit ZIP+4 postal code.
The Metrc Integrations "Validate Key" tab could show persistent errors in the Metrc error log for a patient-lookup check that doesn't apply to every state's Metrc setup.
Scanning a customer ID with a 9-digit postal code and no dash could cause an error when saving the customer.
At tax-inclusive locations, backing wholesale tax out of a transfer manifest's price could use rates that the transfer should have excluded, recording wholesale tax too low.
The exported inventory snapshot report no longer included the header rows showing when the report was run and what date range it covered.
Rooms belonging to other LSPs could incorrectly appear under Cultivation > Batches.
The Cultivation bulk selector became inaccurate when more than 1,000 lines were selected on a single page.
Product labels could print in a random order instead of the order they were queued.