Shift Happens
Week of Oct 19, 2026
·
1
new
·
10
improved
·
6
fixed
Keep customer details in sync with a new webhook
Shipped
Areas
Payments, Customer Portal, Notifications, Products
Keep customer details in sync with a new webhook
Use the Subscription customer details updated webhook to keep connected systems in sync when a customer’s name, contact details, date of birth, VAT number, locale, or customer reference changes. Webhook templates include the before and after values so you can respond only to the fields that changed.
Improvements
·
10
Read dates and times more clearly across tables
Dates now use one consistent format that always includes the year, so you can tell records from different years apart at a glance. Hover over a date to see its full details. Transaction, refund, and activity log tables also show the time alongside the date in 24-hour format, making it easier to reconcile payments and follow events within a day.
Refund a payment’s full amount with one click
Create a full refund without retyping the payment total. The refund dialog now has a Full amount button, shows the payment currency beside the amount, and uses clearer guidance throughout the process.
Keep charging virtual-only invoices for non-paying customers
Keep billing virtual-only invoices even when automatic charging is disabled for non-paying customers. Enable Continue charging non-paying customers for virtual products only under Settings → Payment dunning → Recurring payments. Invoices that include physical products remain uncharged.
Resolve incomplete Adyen payment details with clearer guidance
Adyen notifications about a missing paymentMethod.type now include concise, numbered troubleshooting steps, including notifications created before this update. The guidance explains what to share with Firmhouse, when to ask the customer to update their payment method, and what to check before retrying the payment.
Label catalog choices as one-time or recurring
Make grouped choices with identical product names easier to distinguish in Customer Portal v2 catalogs. You can show localized One time and Recurring labels while keeping each delivery schedule visible below the product title. Existing templates keep their current labels.
Resolve removed Shopify variants before orders fail
Firmhouse now sends a high-priority notification when a removed Shopify variant is still linked to products on active subscriptions. Open the product from the notification, select the correct existing Shopify variant, and save the change before future orders are affected.
Limit Customer Portal collection swaps to recurring products
Keep one-time versions out of collection-based product swaps by adding recurring_only=true to the Customer Portal swap link alongside its collection_id. Existing swap links continue to show their usual choices.
Find live projects faster with command search
Find your live projects more easily with Cmd-K. Projects with live payment providers now appear ahead of demo projects in search results.
See which Shopify variant is blocking an order
When a missing Shopify variant prevents a draft order from being created, the notification now identifies the affected product, SKU, and Firmhouse product ID. Use the product link to select the correct existing Shopify variant, then retry the order after confirming it was not created manually in Shopify.
Show customers their savings alongside product prices
Highlight discounts in your Customer Portal v2 product lists with a savings message alongside each price, such as “You save €3.00”. Choose the automatically translated message or customize the wording to suit your brand.
Fixes
·
6
Keep Shopify order details intact after payment recovery
Shopify orders now keep their delivery dates, timeslots, and other custom attributes when a failed payment is recovered, including after fulfillment. Firmhouse updates only the payment reference, so details already recorded on the order are not replaced with the subscription’s current values.
Find the newest matching notifications first
Notification search now shows the newest matches first and keeps their order consistent across pages, including results created at the same time. Searches also match error details, payload contents, numeric error codes, and linked record IDs with or without a leading #.
Shopify Pay by Invoice payments now sync to Firmhouse
When Shopify marks a recurring Pay by Invoice order as paid, Firmhouse now records the payment against its linked invoice, including outstanding and partially paid balances. This removes the need to reconcile those payments manually.
Complete Shopify-collected refunds in Shopify
Refund attempts for Shopify-collected payments now direct you to the matching Shopify order, where the refund must be completed. The Firmhouse refund dialog and GraphQL response provide the same guidance, including what to do when the order link is unavailable.
Save separate billing addresses when the country is locked
Customers can reliably save a separate billing address in the Customer Portal when country-based pricing locks the country field. If no billing country was previously saved, it defaults to the subscription’s country and remains locked.
Project access stays available while Shopify reconciles trial expiry
Your project stays accessible after an approved Shopify App Pricing trial ends while Shopify reconciles its status. Access remains unlocked until Shopify reports a freeze or scheduled cancellation.