Changelog
Stay ahead of the curve with updates on new features, enhancements, and fixes on the Swell platform.
October 2024
Platform
- Fixed bug where base currency symbol was not being rendered in order confirmation email templates
- Fixed bug with the product.stock_adjusted webhook that caused prev_stock_level to always return as 0
Dashboard
- Reports: Partial refunds on subscription invoices are now included in subscription sales report calculation logic
- Reports: Sales amounts across multiple currencies are now converted to the store’s base currency in all reports
- Orders: When the order total includes taxes in the item or shipping prices, a tooltip is now displayed with a breakdown for each
- Orders: Fixed error that would occur when a product has been deleted from an order
- Multi-currency: Added check to ensure sale price cannot be higher than list price if using priced currencies
- Custom fields: Fixed the vertical alignment of date/time input fields
Hosted checkout
- Address autofill on USA stores had stopped working after an upstream SDK update; this has now been patched
Apps
- Added error handling for cases where webhook handler functions have been deleted
Developer
[swell-js]
- Refactored array merging logic to handle nested values more reliably when using $set and $unset methods on cart objects
[swell-node]
A new major version (v6.0.0) has been released with multiple changes:
- The entire library has been rewritten in TypeScript
- Node v16 or higher is required
- The previous wire protocol was replaced with plain HTTP to improve performance instrumentation, address occasional hard-to-debug state issues, and pave the way for a new caching strategy
- As a result, client-side caching is no longer supported and support for event listeners (e.g., client.on('error', ...) has been dropped
Upgrading to this release is strongly recommended.
September 2024
Platform
- Webhooks that continue returning an error are now disabled after 3 days (down from 7 days)
- Custom from: email addresses are now supported on notifications sent via Mailgun
- Notifications now include undeliverable and undeliverable_reason fields in case the email cannot be delivered to the recipient’s inbox
Dashboard
- Fixed visual bug where the labels of custom media fields were hidden by the preview image container
- Improved handling of products and variants imported via CSV
- Sales reports now include partial refund amounts when calculating net sales amounts
- Improved accuracy of Sales by product reports where multiple order items include the same product
- Fixed bug with formula fields resetting when editing the field configuration
Apps
- Authorize.net: Currency amounts are now rounded to 2 decimal places to avoid a “Payment authorization failed” error from the gateway during processing
- Klaviyo: Phone numbers are now encoded with E.164 format to address issue with Klaviyo rejecting orders with improperly entered phone numbers
- Shipstation:
- Orders now include the requestedShippingService to identify which shipping service the customer selected during checkout
- Added variant details on shipment line items
- Added ability to pass custom headers in Shipstation API requests
Developer
[graphql]
A new and improved GraphQL endpoint is now available at https://<your-store-id>.swell.store/graphql/v2. We’ve refactored how connections between models are generated to enable automatic expansion of linked objects within a query, improving support for fetching across models.
August 2024
Platform
- Subscription coupons are now removed from subsequent orders once their limit of cycles has been reached
- Added support for additional special characters in customer account emails—the validator now matches the HTML email field validator specification.
- Optimized lookup speed of session and user queries
- Improved data integrity of secondary languages during CSV import
- Added extra billing method check on subscriptions created from orders to persist payment changes via API during order processing
- Fixed error when trying to make POST requests to /accounts with a password, if the account does not have password set
- Addressed promotions edge case where product B would be added to cart while the minimum quantity of product A was not reached
Dashboard
- Disabled content namespace for pages model to prevent field name collisions
- Expanded permissions for non-owner users to enable developer tools regardless of user role
- Fixed page freeze after adding a new custom field
- Fixed visual alignment of remove button on gift card denominations
Hosted checkout
- Fixed sizing of Amazon pay button to avoid visual overlap with input form
- Added extra order validation check to ensure no promotions expired while the customer was going through the checkout process
Apps
- Zapier: Fixed invalid credentials error and improved error messages shown in UI
July 2024
Platform
- Added fixed (non-recurring) coupon discount logic for shipping and order total on subscription orders/invoices
- Added automatic tax calculation for digital bundle products on subscriptions
- Fixed bug where applying both a coupon and promotion to a category can result in a negative total
- Addressed case where customer credit balance resets when deleting a credit card
- Fixed bug where subscriptions could not start the next cycle if a product is discontinued
Dashboard
- Rate limited requests are now displayed in developer console logs
- Improved UX for removing a group from customer account profiles
- Added support for partial subscription payments using account credit
- Users are now shown in activity feed even if they have been deleted
- Address book now shows more than 15 addresses
- Fixed visual bug when there are too many product options to be displayed inline
- Out-of-stock tab now includes products and variants without a stock_level value when stock tracking is enabled
Hosted checkout
- Added the ability to set a default value for the marketing email opt-in checkbox
Developer
[admin console]
- Rate limited requests are now displayed in developer console logs
[swell-js]
- Added page_limit to paginated results object
- Added types for pagination limit
- CORS/credential headers are now included only on requests originating from the browser
June 2024
Platform
- Billing addresses added during checkout are now automatically added to the customer account’s address book
- Reworked shipping discount calculation so that shipping gets calculated after item discounts are applied
- Fixed changing a subscription address when the default was previously used
- Fixed discount calculation when creating a subscription from an order
- Fixed bug that caused child models to lose standard fields when removing custom fields from the parent model
- Fixed ObjectID validation logic causing some emails to be treated as objectIDs
- Fixed stock tracking for extra fulfilled items on orders
Dashboard
- Fixed some products showing as on sale when they aren’t
- Fixed 0.01 shipping price difference in subscription view
Hosted checkout
- Added support for Bancontact payments via Stripe
- Fixed selection of address country when switching pages
- Fixed race condition that allowed tax calculation to be bypassed
Apps
- Added account fields email_optin, first_name, and last_name to Zapier hook payload
- Fixed error in TaxJar tax calculation when there are no line items
Developers
[swell-js]
- Added error response types for accounts, carts, and subscriptions
- Updated Stripe dependencies to support Bancontact payments
May 2024
Platform
- The limit count on subscriptions now includes the initial order that created the subscription before triggering the subscription.completed event
- cart.abandoned flag is now set to false if the cart becomes active again
- Fixed bug with account credit being assigned when changing to cheaper subscription plans
- Fixed bug preventing deletion of carts which had coupons applied
- Fixed pricing calculation where base subscription product pricing would override invoice item pricing when added to an existing subscription
Dashboard
- Date picker fields now default to the current date unless otherwise specified
- Fixed URL routing for viewing orders in test environments
Hosted checkout
- Checkout now goes straight to payment step if cart contains only digital items
- Fixed coupon bug where promotional item would be added to the cart without the discount being applied in checkout
Apps
- Algolia integration now supports product syncing with 1000+ categories
- Shipstation integration now sets the closed flag to true when an order is paid, avoiding orders getting stuck in in a pending state due to previously unpaid subscription invoices
April 2024
Platform
- Added support for applying gift cards to invoices
- Fixed a bug causing subscription billing to be configured incorrectly when using the default card on file
- Fixed issue with duplicated locales and currencies in test environments
Dashboard
- Improved UI for managing order payments
- Logs in the developer console can now be filtered to reveal slow API queries
- Fixed a bug preventing selection of an alternative payment method
- Resolved error preventing creation of new categories from the product view
Hosted checkout
- Support for co-badged cards is now available when using Stripe payments
- Enabled setting display_brand parameter when tokenizing a card via Stripe
Developer
[swell-js]
- Stripe payment fixes and improvements
- Pass display_brand from Stripe to Swell card object
- Fixed zip_check after creating Stripe payment
- Build and type updates
- Fixed typing issue with snake case vs camel case fields
- Fixed UMD build
- Added tests for each build type
- Added types for the utils namespace
- Updated npm dependencies
Discount rule logic
The logic for applying discount rules in carts and orders has been updated to ensure consistent totals between carts and orders with multiple discounts. The new rules are detailed below.
- Promotions are always applied before coupons.
- Discounts are calculated in this order:
- Product discounts
- Fixed/Percentage
- Buy X Get Y
- Category discounts
- Fixed/Percentage
- Buy X Get Y
- Shipping discounts
- Product discounts
March 2024
Platform
- Fixed tax calculation for bundles when not all items are taxable
- Resolved issue with category-based subscription coupons not applying when included products are changed after the subscription is created
Dashboard
- Fixed price rules not displaying for GBP currency
- Addressed issue with custom select fields being treated as range sliders if the option values are all numbers
Developer
[swell-js]
- Updated type definitions for subscription status
- Updated dependencies
[swell-node]
- Fixed duplicate products being returned in paginated queries when filtering by category
February 2024
Dashboard
- Added subscription.completed event for webhooks.
- More than 1,000 product attributes can now be added and edited from the dashboard.
- Links to records within table/list views can now be opened in a new window or tab.
- Fixed bug causing localized variant data to disappear when options were added back after deletion.
- Fixed issue with bundle products not showing refunded status on refunded orders.
- Fixed numeric-like values being saved as numbers in custom select fields.
Hosted checkout
- Addressed Stock unavailable error appearing when payment is not required.
Apps & Integrations
- Product attributes are now included in Algolia indexes.
Developer
Swell.js
- Category data is now expanded when filtering products by category.
- Fixed issue with category sorting that caused inconsistent pagination results.
- Fixed storefront settings being fetched from live environment when using a test public key.
- Refactored Google Pay via Stripe to use the payment request button.
January 2024
Platform
- Fixed payment bug where Stripe payment status was out of sync when transactions used 3D Secure.
- Shipping rules are now recalculated after updating discounts, fixing a bug that could cause incorrect shipping prices with certain configurations.
- Fixed issue with setting sale price of product variants with add-on pricing.
Dashboard
- Optional product select attributes no longer require a default value.
- Fixed various issues with product options using the toggle input type.
- Fixed bug where subscription prices were not being displayed in the subscriptions list.
- Fixed image editing modal bug on product attributes and variants.
- Fixed bug preventing deletion of carts by cart.number.
- Fixed bug that sometimes caused the model namespace to revert to default when adding custom fields.
- Fixed bug preventing editing of existing product prices after switching the store currency.
December 2023
Platform
- Added additional order and customer details on Authorize.net transaction records.
- Fixed inventory bug with orders that resulted in the correct quantity not being deducted from stock if more than one of the same bundle variant was purchased.
Dashboard
- Added the ability to refund gift card payments on orders, including partial amounts.
- It’s now possible to mark products as on sale using the bulk edit action.
Developer
- Content field ids and paths can now start with a number.
- API responses no longer include the account.password value (which represented a hashed password) for additional security. The new $isPasswordSet field can be used to determine whether a password has been set.
- [swell-js] Fixed bug which caused the value of shipment_total to be reset when calling swell.cart.update in certain cases.
- [swell-js] Calling account.updateCard with new values for properties such as exp_month and exp_year will also update the payment method objects stored in Stripe, Braintree, or Swell’s vault.
November 2023
Platform
- Gift cards can now be used for subscription payments.
- Shipping costs for carts and orders are now recalculated whenever a discount is added or removed to ensure shipping and discount rules are applied consistently.
Dashboard
- Various improvements to address management interface for orders, customers, and subscriptions.
- Fixed bug with bulk JSON imports that caused the process to hang if the file contained extra whitespace.
- Fixed behavior that prevented fully deleting attributes that didn’t contain products.
Hosted checkout
- Improved loading speed of wallet payment buttons.
- The checkout editor now connects to the current environment (test or live) when in preview.
- Addressed occasional proxy issue that would result in checkout not loading unless refreshed.
- Added the province of Penang, MY to geographic configuration.
Apps
- Deployed initial functionality supporting Swell Apps. See the alpha announcement for information about the framework and how to get early access.
Developer
- [swell-js] Added session.get(), session.getCookie(), and session.setCookie() helpers for managing user sessions and cookies.
- [swell-js] Added functions.get(), functions.put(), and functions.post() for interacting with app functions.
- [graphql-api] Added updateSession mutation to set currency and locale values for current user session.
- [graphql-api] Addressed issue where the updateCart mutation was not working with certain product configurations.
- [graphql-api] Fixed bug with the deleteCartItem mutation that caused displayCurrency to be reset to null.
October 2023
Fixes and improvements
- Fixed "Stripe was not loaded" error when using Klarna in Swell.js
- Added support for custom implementation of getCookies/setCookies in Swell.js to provide more control over browser cookie policies, including domain and expiry settings
- Improved reliability of Swell Slack integration setup
- Improved caching performance in Swell Node
- Fixed customer filter-by-group options and group tabs in the admin dashboard
- Addressed Added types for getOrder and ResultsResponse in Swell.js
September 2023
Fixes and improvements
- Resolved an issue where dunning and retry rules were not being applied on subscriptions with asynchronous payments
- Improved the loading strategy for payment buttons and elements in Swell.js and checkout to mount together once all the relevant gateway SDKs have been initialized
- Custom CSS in the checkout editor now takes higher precedence (using !important), improving custom styling capabilities
- Eliminated occasional duplicates of PayPal and GooglePay buttons in the checkout
- Invite links for admin users now expire after 5 days for additional security
- Fixed an issue with custom collections in the dashboard where auto-suggest for lookup fields was not displaying any records
- Addressed a scenario where invalid credit cards on trial subscriptions would create duplicate charges for the initial order in Stripe
- Added support to explicitly bypass the client-side and server-side caches by adding $nocache: true to requests, trading speed for data freshness if required
- Updated package dependencies for Swell Node
- On the subscriptions model, replaced the date_order_cycle_start field with date_order_period_start
August 2023
Fixes and improvements
- Improved visual feedback when attempting to drag products in disabled categories
- When editing orders without a customer shipping address, an address can now be added from the same view
- Resolved an issue which prevented setting a default value for enum/dropdown custom fields
- Fixed blank screen in the Storefronts dashboard after promoting a storefront to be 'Primary'
- Resolved an issue preventing manual category sorting on the Categories page
- Fixed an issue that prevented bulk editing in the Products view
- Fixed a bug that prevented older custom models from being visible in the model editor
- Fixed a bug that caused active categories to switch to an inactive state in the Categories search
July 2023
Checkout and domain settings updates
We’ve improved the user interface, allowing users to manage their domains inside the checkout dashboard.
Fixes and improvements
- Enhanced visual clarity while dragging a product inside a Category view
- Fixed established default Values for enum/dropdown custom fields
- Addressed an issue with editing shipping addresses on subscription forms
- Resolved blank screen problem on 'Developer' Tab within Storefronts upon promoting a store to Primary status
- Removed ‘wide mode’ from a Category image
- Added maxConcurrent option to set max amount of requests waiting for a response on Swell-node
- Enhanced manual categorization sorting in the Categories page
- Resolved an issue related to passing multiple currencies in expand queries within the Swell backend API
- Addressed an issue with bulk product editing in the Products page
- Rectified a bug that was occurring while accessing older custom content models
- Resolved a bug in Category Search that was causing active categories to switch to an inactive state
June 2023
Fixes and improvements
- Fixed setting content type for uploaded images
- Fixed Klarna (via Stripe) payments
- Add subscription support for PayPal payment method
- Added support for specifying favicon in checkout settings
- API performance improvements
May 2023
Webhook performance optimizations
In our latest update, we have made the following improvements:
- Lowered webhook request timeouts from 30s to 10s to prevent hogging connections
- Fixed the issue related to exclusive lock release for webhook fixes in the API
- Enhanced the level of detail in capturing webhook errors
These updates aim to optimize connection usage, ensure proper functionality of webhooks, and provide more comprehensive error information.
Fixes and improvements
- Resolved issue with column sorting in Admin Dashboard Reports
- Fixed display problem with shipping discount coupons on hosted checkout
- Addressed API bug related to filtering by product attributes
- Corrected functionality of the theme editor "publish" button in the Admin Dashboard
- Extended default checkout expiry to 2 weeks for Hosted Checkout
- Fixed scenario where not all product variant options were listed in Origin
- Ensured payment method is displayed in the order print template in the API
- Fixed "View in Storefront" link on the Product Details page in the Admin Dashboard
- Resolved issue with deleting attribute options generated from product variants in the Swell admin
- Fixed BCC notifications when multiple recipients are specified in the API
- Improved onboarding process for the Omnisend integration
- Adjusted Sales Report to exclude taxes from net sales
- Resolved handling of Stripe payment timeouts caused by locked objects
- Fixed preview functionality of storefront and checkout content in the theme editor
- Displayed Storefront ID in the Storefront Developer tab of the Admin Dashboard
- Fixed case where unpaused subscriptions should immediately retry payment
- Resolved error message when loading settings in Swell.js
April 2023
Improvements to the Storefront dashboard
The enhanced feature enables merchants to efficiently oversee multiple storefronts within a unified Swell store interface, streamlining their operations. They can seamlessly manage and control all storefronts from one centralized location. Additionally, the storefront dashboard grants merchants convenient access to their checkout system and its corresponding settings.
Fixes and improvements
- Resolved a typing issue with product.stock_status in Swell.js
- Fixed a bug where order total wouldn’t update to selected currency when using display currencies only
- Addressed credit card validation typing errors in Swell.js
- Rectified a bug that caused localized order dates to be absent in the admin dashboard
- Fixed the removal of subscription usage limits from coupons in the admin dashboard
- Added field descriptions to standard models in the GraphQL API
- Corrected the display of an incorrect "Unknown Rule" discount label when a user adds a second discount in the admin dashboard
- Resolved routing and CORS issues on the Frontend API
- Fixed the quantity input for returning items to stock in the Swell Backend API and admin dashboard
- Improved the styling of the type-chooser for Products & Discounts in the admin dashboard
- Fixed issue with reports that resulted in some fields not appearing in exports of customer and subscription reports
March 2023
SwellPy—Headless ecommerce Python API wrapper
SwellPy is a Python-based API wrapper that comes with type support and is specifically designed for backend development. Its purpose is to provide an API wrapper in Python allowing you to interact with your Swell backend, taking care of API routes, typing, rate-limiting, and more
Check the github repo and our documentation to learn more.
Added SDK support for Amazon Pay
The new feature release adds support for Amazon Pay in Swell.js, providing more payment options and improving the checkout experience for users. Developers can easily implement the Amazon Pay SDK in their project using detailed documentation and code examples.
Improved Type Support and PayPal UI Currency Configuration
The latest Swell.js release adds more type support, improving the library's reliability and functionality. It also allows for PayPal UI configuration with store currency, providing a better checkout experience for customers and a more professional appearance for online merchants.
Fixes and improvements
- Resolved issue with payment method selection for subscriptions when the billing address matches the shipping address
- Fixed error that was causing issues when creating iDeal Stripe payment
- Fixed a bug where "fixed" taxes were being recalculated unnecessarily when using the Avatax integration
- Improved type support in swell-js by adding more types
- Enabled configuration of PayPal UI with store currency in swell-js
- Corrected saving of subscription settings retry rules in the Admin Dashboard
- Fixed loading of model settings for custom content models in the Admin Dashboard
- Improved display of sales tax by fixing concurrent updates
- Ensured cart settings are now properly loaded for all payment processing methods
- Resolved an issue where subscription intervals were not being correctly handled in leap years
- Fixed the issue of cart settings not being loaded for all payment processing in swell-js
- Added SDK support for Amazon Pay in Swell.js, expanding payment options for users
- Fixed a bug that was causing issues when adding bundles to a cart, improving the overall user experience
- Dropped support for Node.js versions older than 14, ensuring compatibility with the latest features and security updates
- Updated devDependencies to the latest versions on Swell Node, improving the performance and stability of the library
- Resolved issue where the Apple/Google Pay button was not functioning correctly when using Stripe
- Fixed language token prefixes in Origin, ensuring that they are now properly labeled
- Improved pagination in Origin by fixing cases where the component was limited by the default window parameter, providing a better user experience
- Resolved issue where subscriptions were not being generated correctly from orders when a promo code was applied
- Fixed a bug for default localizations not being retained when editing product variant options
- Improved paginated results in the Platform API and GraphQL API by adding page_count
- Fixed bulk-export feature which was excluding some selected fields, ensuring all selected fields are now included
- Corrected selection of order print templates in the Admin Dashboard, providing more options to users
- Optimized API calls by avoiding redundant values specified via fields, improving performance
- Conducted a thorough linter check over the entire project in swell.js, ensuring clean and consistent code
- Updated package dependencies in swell.js to the latest versions, ensuring the project has the latest features and security updates
February 2023
Apple Pay and Google Pay via Stripe
We now support Apple Pay and Google Pay via Stripe. This allows customers to use their stored payment methods when making purchases, resulting in a more streamlined checkout process.
Rally checkout integration
Rally, a checkout solution that offers post-purchase offers and, is now available through our Integrations dashboard. Read more about Swell and Rally’s partnership in this article.
Swell SDK [alpha] improvements
Improvements have been made to the Swell SDK alpha which include the addition of a new provider SwellContextProvider, and two new hooks, useProduct and useProductList.
useProduct can be used to fetch product information using the product's slug or ID, while also calculating the active variant based on selected product options. useProductList can be used to retrieve a paginated list of products from the store, which can be filtered.
Fixes and improvements
- Added support for Google& Apple Pay via Stripe
- Added default credit card selection for orders and subscriptions in Admin Dashboard
- Fixed checkout error when refunding via Amazon Pay
- Fixed address validation for Avatax tax calculations
- Fixed coupon form not displaying when discount settings are disabled
- Storefront API: Added endpoints for fetching invoices
- Storefront API: Added support for fetching subscription payments
- Checkout: Fixed Amazon Pay button appearing even when disabled in Payment Settings
- Added support for fetching invoices in Swell.js
- Added support for fetching customer invoices in Swell.js
- Fix SnakeToCamelCasetype issue with Angular in Swell.js
- Fixes to the invoice types in Swell.js
- Removed support for negative product price
- Prevented negative pricing in product & payment models
- Add a where parameter to Product Query type
- Indicate deprecated fields in the model listing in Admin UI
- Added account_address_id property to the Address type
- Fixed display of completion time in Bulk Import in Admin Dashboard
- Added account_address_id to Address type in Swell-js
- Consistent error messages for invalid sign-up and log-in for swell themes
- Fixed updating payment settings immediately after sign-up in Admin dashboard
- Added SDK support for Apple Pay & Google Pay via Stripe/Braintree in Swell-js
- Fixed "override existing record" settings on bulk import in Admin dashboard
January 2023
Type support in Swell.js
We added type support to Swell-JS by introducing type declarations for all API method signatures, their inputs, and the types they reference. To support camelCasing, we overloaded relevant types with both snake and camel case attributes.
Support for Braintree token migration
Braintree Token Migration will now support paymentMethodToken, providing improved security and faster payments for merchants and consumers.
New product methods in Swell SDK
We have enhanced our product module in the Swell SDK to offer developers more customization options and flexibility.
New methods:
- getProduct: Fetches a single product by ID or slug.
- getProductList: Fetches a paginated list of the store's products, which can be optionally filtered.
- getActiveVariant: Returns the variant that matches the selected product options, with normalized price data.
Fixes and Improvements
- Updated types in Swell.js
- Added support for Braintree payment methods migration
- Added an environment tag to the cache key. This will allow us to support live/test environments better coming soon
- Included types in dist package
- Improved taxation rules to support all product types
- Promotional codes can now be shorter than five characters
- Added initial typescript definitions for swell-js SDK
- Fixed payment issues when using 3DS card and Swell Vault with Stripe
- Fixed element tokenization for Stripe
- Fixed an issue that prevented new accounts from accessing the Storefront dashboard
- Fixed tax recalculation when shipping or billing addresses have changed
- Fixed the validation of short coupon and gift card codes in Origin
- Fixed a momentary checkout redirection error when using a custom receipt URL
- Fixed a bug with account addresses that weren't carried over from the cart to the order
- Fixed an error in Taxjar that occurred when creating a transaction for orders with removed products
- Fixed NPE during page generation in Origin to prevent page publishing issues
- Fixed a bug in Origin that prevented products with a zero price from being added to the cart
- Fixed the missing amount detail when tokenizing payments via Stripe 3DS
December 2022
Dashboard product view
With the new feature, users have the ability to choose the number of product variants and options to display and save that specific view on the product detail page.
Swell.js for Stripe's SetupIntents
We've enhanced Swell.js to simplify the process of managing payment information for future transactions and charges with no minimum charge requirement securely within web applications.
Onboarding improvements
We streamlined our onboarding experience to make it smoother, faster and more intuitive for new users to start using Swell efficiently.
Fixes and improvements
- Fixed inconsistent client locale format for currencies in the Checkout
- Updated Stripe refund call due to Stripe’s npm-package update
- Fixed a bug with Stripe payments which caused subscriptions with a trial period to generate invoices and orders with a payment error
- Fixed a bug causing a blank Draft Order immediately after creating a new store
- A bug that prevented the display of shipping services during checkout was fixed by updating the shipment settings currency configuration along with the default currency change
- Updated GraphQL loginAccount mutation to return a SuccessulResponse
- Updated GraphQL API's login mutation to return a clear error message for invalid credentials
November 2022
Subscriptions tax calculations in TaxJar
You can now calculate taxes for subscription orders. This improvement allows businesses to accurately calculate taxes on subscription payments and ensure compliance with tax regulations. It provides real-time tax rate information and automatically calculates taxes based on the origin and destination of the subscription, making the tax calculation process easier and more efficient for businesses.
Shipment service in Avatax
This improvement allows businesses to automatically calculate and apply taxes on shipments based on the origin and destination of the shipment. It also provides real-time tax rate information, ensuring that tax calculations are accurate and up-to-date.
Reporting for subscriptions
Subscriptions reporting provides a comprehensive overview of the performance of subscription-based offerings. Subscription reports track:
- Subscriptions over time
- Subscriptions by plan
- Trial conversions
Currency decimal precision
We now offer currency precision up to 6 decimal places. This level of precision allows for a more precise representation of monetary values and conversions.
October 2022
Integrations
- Introduced safe fallbacks to prevent AvaTax calculations from returning errors when the account email is missing or no shipment locations are provided
- Fixed Shipstation issue where duplicate shipments were being created in some cases
Admin
- Fixed product tags not being saved for some locales with certain configurations
API
- API Console: Improved query handling consistency
- Fixed issue where subscription orders were not marked as fulfilled when delivery: "shipment" and items have been partially fulfilled
- When querying for models, passing id: undefined will return all items in the collection; all other falsey values will return no results
September 2022
New homepage
Visit our new and improved homepage built using Next.js, Tailwind CSS, and Sanity.io. Hosted on Vercel.
Developer center
Get started quickly and easily with our new Quickstart guide.
Explore our recently added backend API libraries for Node and PHP.
Enjoy enhanced search functionality and improved UX in our developer center.
Rally + Stripe + Klarna checkout
You can now combine the power of Rally, Stripe, and Klarna for buy now pay later options during checkout.
August 2022
Webhook events section
Check our Developer Center for our newly added webhook events section and documentation of additional submodels within the backend API.
Features and fixes
- Added support to apply gift cards and account credits to upcoming payments
- Improved content lookup fields
- Updated Sendgrid integration to new SDK
July 2022
Vercel integration
Use Vercel’s React ecommerce starter kit with Swell to create your storefront.
Storefront developer tools
Manage your storefront's repository and keys through the admin dashboard.
June 2022
Affirm integration
Set up simple financing at checkout and offer customers the option to pay in installments, using your existing payment authorization settings. Currently limited to use with custom checkouts.
Plasmic integration
Plasmic provides tooling to let non-developers visually build ecommerce stores. Drag and drop products, collections, and more from your Swell storefront directly into Plasmic Studio—no coding required!
Token login
Allow authenticated users access to their Swell account and order information without needing to log in a second time.
May 2022
Purchase links
Merchants can now link customers directly to a checkout page with pre-configured products, subscriptions, bundles, and discounts.
Help links
Help links connect you to relevant documentation based on what part of the platform you are using. Help links are displayed at the bottom of a page, in modals, or as info icons.
Vercel integration
Build and deploy a headless commerce storefront with Swell and Vercel.
Updated dashboard design 1.5
Visual update to the Swell dashboard.
April 2022
Horizon demo
Released demo of Horizon storefront theme. New features allow you to create customer quizzes, memberships with special perks, unlimited subscriptions, and more.
March 2022
New Help Center
Launched a completely overhauled and updated Help Center full of new content.
Intro to GraphQL
Published a guide and instructions to help explore and test the new API.
February 2022
Product creation improvements
Introduced several improvements to product creation and configuration:
- Ability to choose from existing attributes when adding them to a product
- Apply conditional logic for displaying product options
- Product price options for multi-currency
January 2022
Smartystreets integration for US
Get address validation for both storefront and dashboard with our Smartystreets integration.
GraphQL beta
Released our Frontend API GraphQL beta with access carts, orders, custom models, and more.
December 2021
Storefront improvements
Continued to expand on storefront functionality with the following:
- New locales and currencies
- Filtering of archived variants with Swell.js
November 2021
Advanced user permissions for Enterprise
Enterprise plans can now manage and refine account permissions, create roles, and customize dashboard access for accounts from within the user settings.
Subscription billing and fulfillment UI support
Swell's dashboard UI now supports the ability to specify billing and fulfillment cycles independently for subscriptions.
Paysafecard
Swell has added Paysafecard to its list of supported payment gateways.
Gladly integration
Synchronize your Swell data within Gladly for customer service management.
October 2021
Subscription order creation overhaul
We have streamlined subscription creation within the dashboard with the implementation of purchase options.
Subscription automated emails
Automate the notifications to your subscribers. Send out emails when a subscription is paused, resumed, canceled, and more. Also proactively let your customers know when their stored credit card is about to expire.
Subscription dunning rules
Automatically attempt to recover failed subscription payments by creating a dunning schedule where you control when and how many payment retries occur. Also, send out emails to the past due subscribers to remind them that they need to update their payment information.
Subscriptions reporting overview
Swell's dashboard reporting now includes data reports for Subscriptions.
September 2021
Purchase options
Products can now feature both one-time purchase and subscription purchase options simultaneously. This removes the need to create subscriptions separately from the product. Overall, we've simplified subscriptions by referencing them as a purchase option under their respective product.
Subscription billing and fulfillment
Sell and fulfill on schedules that make sense to you. For example: sell an annually billed subscription that ships monthly, quarterly—or whatever you want. Define the billing and fulfillment schedules completely independent of each other.
Subscription coupon limits
You can limit promotion uses for a set amount of subscription billing cycles.
August 2021
OAuth
Swell now features app OAuth compatibility to directly exchange authorization codes for tokens. You will soon be able to extend your store's functionality with community-built apps.
Subscriptions activity feed
Similar to order activity feeds, subscriptions now keep track of changes with a dedicated activity feed.
Product variant price rules in the dashboard
Defining product variant price rules no longer has to be done through our Admin API. They can now be defined through the Swell dashboard.
July 2021
Multi-currency price lists
We have expanded multi-currency functionality to provide more comprehensive management of currencies within your store. Some of the new features include:
- Individual prices can be specified for each currency in addition to existing display conversion rules
- Automatic price conversions and rounding rules for currencies
- Ability for customers to choose from supported currencies for checkout payment
Image cropping tool
Crop and format your images after uploading them into the dashboard.
Buy X get Y discount type
Specify discounted products for customers who meet a set requirement with their purchase with this discount type.
June 2021
Address autocomplete
Address fields now include an autocomplete feature to quickly and accurately populate addresses for billing, shipping, and store locations.
Convert individual customer to business customer
Existing individual customers can now be converted to business customers.
Order printout templates
Store multiple printout order templates to include the information you need for printing packing slips, gift receipts, and more.
Pause and resume subscriptions
Subscriptions support pause and resume functionalities for both customers on the front end and admin in the dashboard.
Product type selector
Choosing your product type when creating a new product provides the appropriate fields for creating a particular product type.
Google Pay and Apple Pay for Braintree
Braintree payment gateway now supports Google Pay and Apple Pay payment options during checkout.
Algolia integration
Optimize your store's search and discovery by syncing your Swell data with Algolia's search tools in this new integration.
HubSpot integration
You can now manage your Swell customer relationships and drive marketing campaigns with Swell data through HubSpot CRM and HubSpot's Marketing Hub.
Zapier integration
Leverage Zapier's platform to automate your Swell store's workflows quickly and reliably in this new integration.
Slack integration
Receive updates and fetch data directly from your Swell store through our new Slack integration.
Yotpo integration
Power customer reviews, ratings, loyalty programs, and referral incentives within your Swell storefront through our new Yotpo integration.
Maximum discount thresholds
Specify a maximum discount threshold to prevent percentage-based discounts from exceeding a particular amount on an order.
May 2021
Order activity feed
Keep track of all changes in an order with the new order activity feed.
Send order invoices
Prompt customers to complete their purchases by sending them an invoice from the Orders details page. Customize your invoice template from the Notifications settings page.
Import customers from CSV
You can now import customers from CSV files the same way as products.
New order status: On hold
Orders now have an On hold status option.
Custom checkout return URL
When using Swell's hosted checkout, you can now specify the "Return to store" link URL.
April 2021
Origin: subscriptions
Now you can offer and manage monthly, yearly, daily, and weekly subscription services. Create and manage the service by which type works for you and your customers.
Origin: multi-language
Multi-language is now part of the Origin storefront and offers language options in the Storefront editor.
Model explorer
You can now view, organize, and interact with your store's data models. This includes store settings and custom models. Check it out from your store's dashboard under the Settings tab.
QuickPay integrations
QuickPay allows European-based stores the ability to pass transaction fees onto their customers.
Builder.io integration
Builder is a frontend building tool that connects to ecommerce platforms. Connect Swell data to Builder.io content. You can also create a custom model, component, or symbol using Swell fields.
March 2021
Business customers and VAT support
Designate customers as business or individual and enable a collection of business-specific fields, including VAT numbers. Visit Customer settings in the dashboard to get started.
Experts directory
With a new Experts directory, it's now easier to connect with developers and other talent that can help you realize the potential of Swell.
Performance improvements
Our engineering team has made several infrastructure upgrades and API enhancements that show improved performance in content-delivery and other areas. Their work continues as we begin another phase of upgrades over the coming months.
TaxJar integration
You can now enable TaxJar to calculate real-time tax rates across the globe and fully automate tax compliance. Visit Integrations in the dashboard to get started.
Contentful integration
Install Swell to your Contentful account to combine product data with content. Visit the Contentful marketplace to get started.
Omnisend integration
You can now enable Omnisend to manage email marketing, SMS, segmentation and automation. Visit Integrations in the dashboard to get started.
SendGrid integration
You can now connect Swell to your own SendGrid account, giving you full control over your email sending configuration. Visit Integrations in the dashboard to get started.
ShipStation integration
You can now enable ShipStation to manage order fulfillment. Visit Integrations in the dashboard to get started.
February 2021
Cart item metadata
Using Swell.js, it's now possible to store custom metadata on each shopping cart item, making it easier to track details through a custom checkout flow. While this has always been possible with the backend API, adding this ability to the frontend API by default has been a frequently requested feature.
Multi-language
You can now configure multiple locales to define all kinds of content in multiple languages using the Swell admin dashboard and API. Origin storefront now has a locale selector visible when more than one locale is enabled. Localizable content includes products, categories, all customer-facing settings, email notifications, and Swell checkout.
Custom frontend API permissions
Developers can now customize the frontend API permissions on each public API key, including support for custom data models. Swell.js uses the frontend API to retrieve content, and with the ability to customize permissions, it's now possible to reveal your own content fields and custom models in any frontend using this library.
January 2021
Multi-currency
You can now configure multiple currencies for display in a storefront. Swell.js has new methods for currency selection, conversion, and formatting, and Origin storefront now has a currency selector visible when more than one currency is enabled. In an upcoming release, we're planning to add support for setting product prices specifically in multiple currencies.
Saferpay integration
Users can now enable Saferpay, a popular European payment gateway supporting a range of credit card brands, PayPal, Klarna, and more.
December 2020
Local pickup option
You can now designate shipping services as local pickup options. When selecting a pickup service, Swell checkout will not prompt customers for a shipping address.
November 2020
Bancontact integration
Users can now enable Bancontact, a flexible gateway supporting a range of popular payment methods. This integration can be configured in the Stripe payment settings once enabled.
October 2020
Klarna and iDEAL integrations
Users can now enable Klarna and iDEAL payment methods via Stripe. These integrations can be configured in the Stripe payment settings once enabled.
September 2020
New visual editor
Along with our first storefront app, we're introducing a brand new visual editor that enables you to customize content, style, and functionality without any code. Developers get a new git-based workflow to manage configuration, and marketers can now manage content tailor-made for their storefront.
Headless storefront apps
Today we're officially releasing Swell's first storefront app, Origin. Based on Nuxt.js and Vue, Origin can be launched on Swell without the need for custom code or hosting, and is also an ideal starting point for custom storefronts. Get started quickly without sacrificing flexibility.
- Built with Vue/Nuxt.js for flexibility and performance
- Fully integrated visual editor for customizing without code
- Ability to host it anywhere (Swell, Heroku, AWS)
- Using Swell's headless commerce API
Simpler Stripe account connection
You can now connect to Stripe without entering API keys, by clicking through Payment settings and logging in to or creating a new Stripe account. Existing connections using API keys are unaffected. If you were previously using Stripe API keys and would prefer to switch to the new connect mode, navigate to Payment settings and follow the instructions provided.
July 2020
Automatic product option attributes
Swell will now automatically create and update attributes related to product options (e.g. size, color) when creating or editing products. This change will make it easier to build a multi-faceted search/filtering interface, as product options will be readily available as attributes in your storefront.
New dashboard reports
There are now several quick reports available on the Home page of the dashboard. These new views are designed to give you a quick look at the most relevant real-time information for your store. Choose which reports to display by clicking the Edit views drop-down in the top-right section of the dashboard Home page.
January 2020
Klaviyo integration
You can now automatically send store events to Klaviyo. Also, we've revamped the integration page to make things easier to manage. Visit the Integrations settings under the Admin section to get started.
Segment integration
You can now automatically send store events to Segment. Visit the Integrations settings under the Admin section to get started.
November 2019
Customer export updated
When exporting customers from the Customer list page, it will now include additional fields for their default billing and shipping address.
October 2019
Customer billing edits
We've improved the way you edit and update customer billing information, giving you the ability to update the address on saved credit cards and to remove cards that the customer doesn't want to be attached to their account. To see the changes, go to a customer detail page and look on the right side.
Order payment method selection
You can now select any valid payment method when creating or editing an order. Previously it would only allow you to enter a credit card. In addition, we've improved the interface to make it easier to see and select a saved credit card within order payment and customer payment modals, and update a billing address as needed.
September 2019
Product options update
We've combined variants and custom options into a single, more intuitive interface on the product detail page. Notable changes include:
- Variant options and custom options are now just one concept: options
- You can now de-activate options without removing them
- New input types: Select, Toggle, Short text, Long text
- Toggle options can now be included with variants
- It's now easier to edit a large number of options and values
August 2019
Order item cancellation
You can now cancel individual order items without canceling an entire order. Before an order is Paid, you're able to simply edit items. With this change, after an order is marked Paid, an action to cancel items will become available. Canceled items will remain visible to admins on the order detail page.
Product search by variant SKUs
You can now find any product by searching for individual variant SKUs on the dashboard product list. The ability to search for products by their variant SKU values was considered a limitation before this change.
Affirm integration
You can now enable Affirm as a payment method to offer customers quick and easy financing at checkout. The Affirm integration works like other payment methods, using your existing settings related to payment authorization and capture. The order detail page allows you to easily charge and refund Affirm payments. Visit the Integrations settings under the Admin section to get started.
July 2019
Mailchimp integration
You can now connect your Swell account with Mailchimp in one click. With this integration enabled, customer emails are automatically synchronized with one of your Mailchimp audience lists.
June 2019
Avalara Avatax integration
We partnered with Avalara to offer real-time tax calculations at checkout for automated sales tax compliance. Once enabled, you'll see tax code fields on product and shipping views to fine-tune your setup.
Deleting test records
We've made it easier to delete test customers, orders, and subscriptions by adding a Delete button at the bottom of these pages. In an effort to help you avoid costly mistakes, as these actions can't be undone, you'll be prompted to enter a value to confirm your intent before deleting these records.
May 2019
Product category import
You can now import product categories along with other attributes. Under a column named Categories, list each category name separated by a new line. You can indicate nested categories by separating with a > character. Categories are automatically created or linked to existing ones by comparing without case, spacing or punctuation. Example below:
April 2019
Shift + click to bulk select products
You can now use shift + click to select any number of rows for bulk actions in products and other lists in the dashboard. This should enable you to make changes to many records at once much more easily.
Improved product import/export
We've made a couple of important changes to product import/export:
- Attributes are now identified by their own distinct column
- You can now import a subset of fields in any order
- You can now import attribute images the same as with other product images
Introducing real-time order webhooks
You can now enable a real-time webhook to be called when carts and orders calculate shipping or taxes. This allows you to create your own custom shipping and tax calculations or return other updates to the order, supporting a wide range of interesting use cases. Configure order webhooks in Settings > Webhooks.
This feature is available on the Swell Standard plan.
March 2019
Subscription with physical items to order workflow
We now support subscriptions with physical items to be fulfilled through orders, for a standard shipping workflow that occurs every time the subscription is charged. The product bundle_item field is used to define the items to be transferred to order in this case. Payment for these subscriptions is contained in the order so that refunds work the same way as if the customer had placed a regular order through checkout. A subscription will link to all its orders so you can easily keep track of everything.
Add attributes when creating a new product
When creating a product, you can now add attribute values before saving. Previously the attribute list was only available on the product edit page. This change should make it easier for the quick entry of new products that make use of required attributes.
February 2019
Parent category product counts include sub-categories
The product count you see on the category list in the dashboard will now include products in all sub-categories. This follows the most common behavior we see merchants use in stores, where viewing a parent category will typically display products from all sub-categories.
Navigation menus for custom stores
Navigation menus are now visible when you've enabled a custom storefront, where previously it was not visible in the dashboard. This is a useful way to allow admins to manage header, footer, and other menu content from the dashboard and have it rendered in a custom store.
Standard vs custom storefront
When first creating a storefront, we now prompt users to choose between Standard (hosted by us) and Custom (hosted by you). This should make it more clear that we have first-class support for custom stores. You're still able to change these settings any time under Storefront > Settings.
Product shipping dimensions
Now you can record product shipping dimensions with new fields to on the product model and shipping tab of the product view. We found this is information to be critical for certain shipping calculations. Note: these dimensions are not yet being passed to 3rd party carrier APIs (UPS, FedEx, etc), but we'll make that change in the near future.
Product cost tracking
There's now an option to enable the product cost field in the dashboard. Go to Settings > Products and toggle it on, then find the cost field alongside list and sale price fields in the product view. Soon we'll be adding related columns to reports to show gross and net profit margins.
Click to enlarge images
When hovering over an image on product and category pages, there's now a button to enlarge it for inspection. When uploading an image it is saved in the original size (up to 10MB), and automatically re-sized on the fly when displaying as a thumbnail in the dashboard or in a storefront. With this change, you can now you can see original images without any filter applied.
Product and category content re-organized
The description field on product and category pages has been moved under a section labeled Content in order to streamline editing by bringing related fields closer together. Additionally, new content fields were added to categories (page title, meta description).
One email to rule them all
Users can now be invited to join any number of Swell stores with a single account (i.e. a single email address). Previously it was necessary to set up different accounts with a unique email address like [email protected].
- Users can be invited with any email address (new or existing)
- Switch between stores under the top-left drop-down menu
- Permissions and notifications are relative to each store separately
January 2019
Subscription management features
There's now an array of features in the dashboard to manage subscriptions.
You can now create plans (subscription products), view active subscriptions and invoices, add and edit invoice line items, handle payments, and more.
Adding subscriptions to the cart
It's now possible to add subscriptions to the cart. When converted to an order, it will automatically create a recurring subscription based on the plan that was added to the cart. Previously, it was necessary to create a subscription separately from the standard checkout flow, but we heard from many users that in some cases it was more convenient to have it all together. Both methods for creating subscriptions are now supported.