- DATE:
- AUTHOR:
- Dutchie Product Team
Dutchie POS: Adjust loyalty points in Backoffice, restrict discounts to loyalty members, floor-depleted inventory updates, schedule bulk price updates, fixes, and more
Here’s what’s new and coming soon in Dutchie POS
Enhancements
Loyalty & Marketing
Adjust loyalty points in Backoffice. Go to Customers and find a customer, open the row actions menu (…) or open the customer profile and click the Actions menu, then select Adjust loyalty points. You can also use the checkboxes in the customers table to select multiple customers, then click Bulk actions > Adjust loyalty points. When adjusting in bulk, enter a new point balance that will apply to all selected customers.
Search loyalty rewards at the Register. In the Register, select a customer, go to Loyalty, then click Redeem Points. A new search bar at the top of the Redeem Loyalty Points modal lets budtenders quickly search available loyalty rewards by name, making it easier to find the right one when a store has a large rewards list.
View all segments in campaign review and content. Marketing campaign review and post-send campaign content pages will now display the full list of selected segments instead of truncating the list to the first three. This gives marketers a complete view of every audience segment included in a campaign before sending and when reviewing campaign content later.
Automated opt-in confirmation messages reflected in reporting. The Marketing Dashboard's SMS Sent total will now account for SMS opt-in messages so the number shown matches what's on your bill.
Send test messages as SMS or MMS. The Send test SMS option in the SMS Marketing integration settings now includes a toggle to send the test as SMS or MMS, instead of always sending an MMS with a placeholder image.
Discounts
Restrict discounts to loyalty members. A new Require loyalty membership option in the Discount Wizard (Details step, Who is eligible section) restricts the discount only to customers who have joined your Dutchie loyalty program. Restricting a discount to loyalty members is also possible via a customer segment condition, but there can be a delay between enrolling a new loyalty member and that new member being added to a loyalty-only segment. This feature avoids this issue and allows new loyalty members to immediately receive the discount on their first purchase.
Manufacturing
Bill of Materials imports will accept Product UPC as an alternate identifier alongside Product SKU, so manufacturers that track products by UPC no longer need to manually translate to SKU before importing.
Record waste generated during a BOM assembly's output conversion. The waste amount is transmitted to BioTrack on assembly completion and shown in the BOM Assemblies static report, removing the need to log into BioTrack separately to record conversion variance.
Products & Inventory
Floor-depleted inventory updates. Product detail pages now have a dedicated Replenishment quantity field for the Inventory page's floor-depleted inventory alerts, while the Low Stock Threshold field once again controls E-Commerce menu availability only. This gives you more flexibility to manage internal restocking workflows without changing what shoppers see online. We’ve also added a location-level setting to enable or disable this feature entirely. Learn more about floor-depleted inventory alerts in the Help Center.
Schedule bulk price and cost updates. When submitting a bulk price/cost update, new Apply now and Schedule for later radio buttons allow you to schedule the update for a future date and time so you don’t have to execute the update yourself outside of business hours.
Bulk update package costs for catalog-pricing locations. Locations that set pricing at the catalog level will soon gain the ability to bulk update package and batch unit costs from Inventory. This will allow teams to update costs in Backoffice or by CSV without editing packages one by one.
How it works
Bulk cost updates: Select packages in Inventory, then choose Bulk Actions > Bulk update inventory costs.
Cost-only safeguards: Catalog-pricing locations see only cost fields; selling prices remain managed in Product Catalog.
CSV import: Upload Internal Package ID and Cost. Files with selling price values trigger a validation message.
Timing: Apply updates immediately or schedule them where available.
Key things to know
Catalog-pricing locations: Update costs in Inventory and selling prices in Product Catalog.
Inventory-pricing locations: Continue bulk updating prices and costs from Inventory.
Accounting: Cost changes affect inventory value and COGS going forward; they do not change catalog defaults or completed sales.
Learn more about bulk price and cost updates in the Help Center.
Fixes
We're releasing fixes for the following issues:
Removing one weight line of a deli flower product that had two separate weight lines in the cart (e.g., a 28g line and a 3.5g line) could subtract from the wrong line instead of the one being removed. Pricing was never affected — only the cart's line-item breakdown.
Purchase limits in Settings > Taxes & Compliance couldn't be saved with more than two decimal places, so values needed for clone/plant limits (e.g., 0.004) silently reverted to 0.
Recreational customer profiles incorrectly labeled and stored their primary identification as an MMJ ID instead of a driver's license; medical profiles were unaffected.
A specific product could return "An item with the same key has already been added" when staff tried to move it between rooms, caused by a duplicate pricing-tier record for that product.
When a transaction that included a loyalty redemption was returned, the Closing Report's Income Summary could show the raw point value of the reversed redemption as a dollar amount instead of its actual monetary equivalent.
Loyalty points applied to an online pre-order weren't actually deducted from the customer's balance when the order was fulfilled at the register, even though the discount was applied to the cart total.
Reverting a scheduled marketing campaign to draft and rescheduling it could flip the AM/PM of the originally selected send time, risking the campaign going out 12 hours off from when it was intended.
A Metrc package-move failure caused by a missing "Manage Packages" permission in Metrc showed the same generic "please validate your Metrc key" error as every other Metrc authorization failure, making the actual cause hard to identify.
When Max Redemptions Per Transaction allowed more than one redemption, Register still treated a repeatable loyalty reward as one-time after it was redeemed once, blocking a customer from redeeming that same reward again even with enough points and no transaction-limit reached.
Reporting-inventory queries used when creating packages could run slowly at locations with large inventories; added database indexes to improve performance.
The "Redeem Loyalty" button in the Register cart header showed the total number of loyalty rewards configured for the store, rather than just the ones the current customer had enough points to redeem.
The register could display an incorrect "change due" amount on transactions involving external debit, debit with cash back, or split cash/debit payments even though the receipt, Backoffice, and transaction history all showed the correct amount.
The Assembly output product picker could silently drop valid UPC search results instead of showing them, due to a mismatched client-side filter.
Calculated THC and potency values could show as 0 on a package even when THCA and D9-THC values were configured and lab results existed, most likely tied to the "Use Package Based Potency" Metrc setting.