- Product inventory management has been overhauled to unify SKUs per product as well as allowing backorders to continue selling when stock has run out.
- Introducing a new Orders by Country report allowing merchants to see a breakdown of their orders by their respective shipping country.
- Packages can now be deleted from Campaigns on the Campaigns App.
- It is now possible create refunds on the Admin API that are not processed with the original payment integration, to log refunds that happen externally. This helps to keep store reports in sync for scenarios such as RDR alerts.
- Product prices are now available as a nested object on the Admin API to complete the transition away from prices on stock records.
- Dashboard user permissions UX has been overhauled to ease the setup and clarity of giving users access to the Dashboard.
- Fulfillment Locations settings list now shows a
Returnscolumn to easily see which fulfillment locations are configured to accept returns.
- 3DS Merchant Profiles now have a
Namefield to use for reference to improve clarity for merchants with multiple 3DS merchant profiles with the same Merchant Name.
- We've now deployed a solution for handling a rare payments error where Spreedly closes the connection before a payment is completed. We now recover and import the transaction successfully.
- Fixed a few edge cases where the save bar was not showing even though content inside the WYSIWYG editor had been modified.
- Fixed an edge case where an order was not created after a successful 3DS redirect flow with Stripe Payment Intents.
- Fixed an edge case where voided fulfillments in Shipstation could create multiple fulfillment orders for the same order.