Shift Happens

RSS

Week of Aug 24, 2026

·

2

new

·

9

improved

·

2

fixed

Switch subscription plans and products together

Shipped

Areas

Payments, Subscriptions, Discounts, Shopify

Switch subscription plans and products together

You can now switch a subscription to a different plan and replace any products that are not available in the new plan in the same step. Firmhouse checks the subscription’s current products against the new plan group and only asks you to choose a replacement for the ones that do not fit.

New

Subscriptions

Give each language its own discount description

You can now write a separate public discount description for every language enabled in your project. New invoice lines always show the description that matches the subscription’s language. In the Customer Portal, that description replaces the default discount label when a subscription has exactly one active discount; with multiple active discounts, the portal keeps using the default label.

New

Discounts

Improvements

·

9

Schedule upcoming billing webhooks up to 30 days ahead

You can now configure the Subscription upcoming billing webhook to fire between 1 and 30 days before the next billing date, up from a maximum of 5 days. Use the extra range to send earlier reminders or start an integration well before the charge.

Improved

Developers

Clearer reasons for failed Adyen payments

Failed Adyen payments now record the reason they were refused. Common cases such as insufficient funds, an expired or blocked card, a failed 3D Secure authentication, or a payment the customer cancelled are recognised and shown on the payment itself, so you can tell at a glance what went wrong.

Improved

Payments

Add a private reason when you reject a subscription

When you reject a subscription from the Firmhouse Portal, you can now add an optional internal reason. It stays private to your team and shows on the rejected subscription, making it easier to classify and report on rejections without exposing details to customers.

Improved

Subscriptions

Control when Adyen payments are captured

You can now choose whether Adyen credit card and Klarna signup payments are held until the subscription activates. Configure each payment method separately in your Adyen payment provider settings when you want to review a subscription before its initial payment is collected.

Improved

Payments

Completing a return for your last Shopify product now asks you to cancel

Completing a return for the final active product on a live Shopify subscription used to fail, because a Shopify contract cannot be left without any lines. You now get a clear message asking you to cancel the subscription as part of the same return, and nothing changes until you confirm.

Improved

Shopify

Won Adyen chargebacks now restore payments automatically

When Adyen confirms that you won a chargeback dispute, Firmhouse now marks the payment paid again and recalculates the invoice automatically, so the subscription leaves its non-paying state without a manual correction. Reversals that Adyen still lists as pending stay charged back until the dispute is final.

Improved

Payments

Customer Portal swaps can now include products already on another line

When a customer swaps or replaces a product in the Customer Portal, they can now choose a product that’s already active on a different line of the same subscription. Previously that product was hidden from the list.

Improved

Customer Portal

See and manage applied Shopify discounts at a glance

The applied discounts table on a subscription is easier to scan: a green or red status dot shows whether a discount is active, and usage count and its recurring-cycle limit are combined into a single column. Removing a discount is now a visible trash icon instead of a text link tucked at the far edge of the table.

Improved

Discounts

Checkout stays reliable when Shopify shipping rates are busy

Firmhouse now reuses a recent Shopify shipping calculation for five minutes when nothing about the order has changed, instead of recalculating it on every request. This reduces load on your Shopify shipping rates and keeps checkout responsive during busy periods.

Improved

Shopify

Fixes

·

2

Loading a default Klaviyo payload no longer resets your metric name

Using Load default payload on a Klaviyo email template now only replaces the JSON payload, keeping your configured Klaviyo metric name in place. Previously it also reset the metric name to the Firmhouse default, so events kept arriving under a new metric while you were still watching the old one.

Fixed

Notifications

Complimentary add-ons now reach already-scheduled prepaid orders

Adding a free Next order only product to a prepaid subscription now places it directly into the next scheduled delivery when that delivery has already been generated. Previously it stayed on the subscription with no future order to attach to.

Fixed

Orders

Start selling on repeat, or talk to us about your setup

Pricing that grows with you

Plans for every stage of repeat commerce. No lock-in.

Start selling on repeat, or talk to us about your setup

Pricing that grows with you

Plans for every stage of repeat commerce. No lock-in.

Start selling on repeat, or talk to us about your setup

Pricing that grows with you

Plans for every stage of repeat commerce. No lock-in.