Duncan McClean

Simple Commerce Release Notes

Duncan McClean


May 10th, 2021

While there's been quite a few breaking changes between v2.2 and v2.3, most of them have been addressed by Update Scripts, which will be run automatically when updating Simple Commerce.

Simple Commerce v2.3 requires your site to be running Statamic 3.1 and configured correctly for update scripts.

Please review the Upgrade Guide before updating.

What's new

  • It's now easier to swap out the driver being used for products, orders, coupons or customers.
  • You can now mark any unpaid orders as paid from inside the Control Panel.
  • Events have been renamed and parameters have been switched about.
  • Notifications have been refactored! (Again...)
  • The Address DTO now contains some more helpful methods.
  • Product Variants now have their very own DTO
  • You can now filter by Order Status in the CP

Breaking changes

  • Translations have been simplified. All translations live in the messages.php file. If you override the translations, please review.
  • Built-in gateways have been moved from Gateways\GatewayName to Gateways\Builtin\GatewayName
  • Gateway DTOs are now called Response, Purchase and Prepare (Gateway is no longer in the name)
  • Updates have been made to Data Contracts, please review if you are overriding any of them.
  • If you're overriding any of the Data Classes, please register it inside the updated config file, rather than manually via the Service Container.
  • Cart facade has been removed (it was deprecated in v2.2). Please replace with the Order facade.
  • Event parameters & event names have been changed. Please review if you are listening for any Simple Commerce events.
  • Notifications have been refactored - they now use Laravel Notifications, rather than Mailables. If you were overriding the notifications previously, you will need to refactor into Notifications and update inside the Simple Commerce config.


April 20th, 2021

  • Fix Don't fail if user's cart has been deleted. Create a new one instead. #416


April 16th, 2021

  • Fix Fixed exception when running Refund action on Order entry.
  • Fix Tidied up the orders CP listing for new sites.


April 2nd, 2021

  • Fix Fix issues with coupon calculations #405


March 30th, 2021

  • Fix Fixed issue where shipping & billing addresses would not be output on PDF Receipts #404


March 29th, 2021

  • New Statamic 3.1 support
  • New Product Specific Coupons #390
  • New Added docblocks to Facades #400
  • New Added country validation when submitting addresses #398 #402
  • Fix Allow for calculator to be run with any Order class


March 13th, 2021

  • Fix Fixed issue with GatewayDoesNotExist exception
  • Fix Ensure we don't have two slashes in Gateway Webhook URL #387
  • Fix Order Confirmation emails will now be sent for off-site gateways #395


March 10th, 2021

  • New Ability to bind your own Calculator class
  • Fix Fixed bug where items_total would be a string when using coupons.
  • Refactored the Calculator


March 8th, 2021

  • New A new ReceiveGatewayWebhook event is dispatched when a gateway webhook is received.
  • New You can now specify a different redirect URL for errors. - error_redirect.
  • Fix Improved handling of Mollie webhooks, we now detect if an order has been paid and redirect correctly. #384
  • Fix Fixed issue where cookie cart driver wasn't forgetting cart after checkout #383
  • Fix An exception will be thrown when a gateway errors, instead of a die dump.
  • Fix Fixed webhook and callback URLs sometimes not being formed correctly.
  • Fix Fixed an occasionaly exception with the Cookie Driver.
  • Deprecated 'order item' methods, and replaced them with 'line item' methods.


March 4th, 2021

  • New Added Ignition Solutions to some exceptions to help with debugging.
  • Fix Fixed the ability to update an existing cart item with a negative quantity #375
  • Fix Fixed an incorrect method signature in the shipping method stub #380
  • Tidied up the README (but it's not really code related)


February 22nd, 2021

  • New Orders will now be added to Customer entries, so there's now a two-way relationship #369
  • New You can also now use {{ sc:customer:orders }} with Orders on the Customer entries, using the from parameter.
  • Fix Fixed issue where email's would not be sent if email was set but no customer on order. #372


February 19th, 2021

  • New Added some helper methods to the Address object.
  • Added tests to the Order Calculator (not sure how we got this far without them)
  • And some general cleanup ๐Ÿงน


February 19th, 2021

  • Fix Tax amounts should no longer be off. Was previously using the wrong formula.


February 18th, 2021

  • Cookie Driver is now the default for new installs.
  • Fix Fixed Call to undefined method make() when using cookie cart driver. #365


February 16th, 2021

  • Fix Validate against the possibility of having negative line item quantities. #354
  • Fix Fixed bug with {{ sc:cart:{key} }} usage.
  • Fix Fixed bug when Order calculator is called on paid order.


February 12th, 2021

  • Fix Fixed issue when adding more than a single item to your cart #353
  • Fix When gateway's response isn't success, throw validation errors #352


February 10th, 2021

  • New Allow adding product to cart multiple times and up the quantity. #351
  • Fix Now throws EntryNotFound exception when no entry can be found, instead of OrderNotFound. #349


February 9th, 2021

  • Fix Fixed accidental bug introduced with cart driver fix in v2.2.4.


February 9th, 2021

  • Fix Don't throw an exception on cart endpoint if no cart exists
  • Fix Don't attempt to augment variant fieldtype if value is null
  • Fix When customer's active cart is deleted, a new one will be created, instead of throwing an exception. #348


February 6th, 2021

  • New Added a command to automatically remove old cart entries. php please sc:cart-cleanup
  • Fix Coupon total should be calculated from items total, not the grand total.
  • Fix If grand total of cart is 0, then don't do any gateway work
  • Fix Strip out any decimals from product prices when added to cart
  • Fix On the variant fieldtype: if there is no value, display an error message instead of spinner.


February 2nd, 2021

  • Fixed bug when removing an item from your cart #346


January 31st, 2021

It didn't take me very long to find a bunch of bugs...

  • Fixed exception within upgrade tool when stillat/proteus isn't installed
  • Upgrader will no longer continue if stillat/proteus isn't installed
  • Stripe Gateway should pull key & secret from gateway config, not hard coded .env values
  • When processing checkout, don't attempt to save data if we don't have any.


January 31st, 2021

Before upgrading, please review the upgrade guide in case there's any changes you need to make.

What's new

What's fixed

  • Various bugs


February 19th, 2021

  • Fix Tax amounts should no longer be off. Was previously using the wrong formula.


January 30th, 2021

  • Fix Actually use the new format when adding items to the cart
  • Fix Fixed issue when clearing the cart


January 30th, 2021

  • New Updated the default order blueprint
  • New Added a new 'Product Variant' fieldtype to select a single variant


January 27th, 2021

  • Fix Fixed some naming inconsistencies with postal/zip codes #343


January 21st, 2021

  • Fix Fix situations where the tax totals would be wrong with certain tax rates #340


January 21st, 2021

  • Fix ~~Fix situations where the tax totals would be wrong with certain tax rates #340~~


January 17th, 2021

  • New Improved action responses (including propper support for AJAX usage)


January 14th, 2021

  • Fix Fixed issue with customer entry being overwritten by new carts. #337
  • Fix Fixed situation where exception would be thrown if the 'Maximum Uses' field isn't set #338


January 11th, 2021

  • New Currency formatting now depends on current site locale, instead of always being en_US.
  • Fix Fixed issue with tax calculations #331
  • Fix Fixed Mollie Gateway issues and off-site gateway issues #334


January 11th, 2021

  • Fix Fixed ->get() parameter issue when using Mollie webhook. #332


January 9th, 2021

  • Fix Sometimes tags were being called twice. Now it should just be once!
  • Fix Fixed exception sometimes if attempting variant augmentation on a product with no variants.
  • Fix Fixed issue where Gateway Webhook URL's were returned as null.


January 5th, 2021

  • Fix Fixed the way we handle fallback URLs for off-site gateways #329


January 4th, 2021

  • Fix Fixed exception thrown by Off-site gateway callback. #327
  • Fix If a redirect is not provided for off-site gateway, user should be redirected to the homepage.


December 28th, 2020

  • New PHP 8 Support! #318
  • Fix Product entries with variants should not have a standard price field.
  • Fix The has method on Repositories will now return null, instead of throwing an exception about undefined indexes.


December 23rd, 2020

  • Fix Fix issues parsing null Money fields. Addresses issue from #323.


December 23rd, 2020

  • Fix Just get site with Site::current() inside Money Fieldtype, instead of getting the entries' locale.


December 21st, 2020

  • Fix Fixed issue when passing receipt_email to Stripe


December 21st, 2020

  • Simplified the site detecting logic in the Money Fieldtype #319


December 18th, 2020

  • Fixed issue with locales in Money Fieldtype again.


December 18th, 2020

  • Re-tag of v2.1.16 (the release workflow broke)


December 18th, 2020

  • Fix issue where locale() is called on undefined, in Money Fieldtype.


December 12th, 2020

  • Remove Woodland


December 12th, 2020

  • New You can now enable automatic receipt emails from Stripe.
  • New You can now use a single address for an order, instead of different shipping and billing ones.
  • New You can now set display names for gateways. Useful for when you give the customer an option between them.
  • Fix Fixed a bug causing type exceptions.
  • Fix Ensure customer can't add more of a product than you actually have in stock.


December 5th, 2020

  • New Added some better error handling for form tags.
  • Fix Issue where it couldn't find an 'index' gateway using the {{ sc:gateways }} tag? Now sorted!


November 29th, 2020

A whole lot of API related changes this release...

  • New It's now easier to get fields from your cart. How's {{ sc:cart:delivery_note }}?
  • New The Order Calculator has been moved out of the CartRepository and into it's own class. However, the recalculateTotals method on the CartRepository will continue to work for the time being.
  • New Introduced a new OrderRepository which will eventually replace the CartRepository (it's a breaking change so it won't happen until at least v2.2)
  • New Added customer method to CartRepository
  • Fix Default order blueprint no longer has a SKU field on it.
  • Fix php please sc:install command will now only publish blueprints and configuration file.


November 27th, 2020

  • New Add an exempt_from_tax field to products that you want to be exempt from tax.
  • Fix Carts & Customers will be created in the correct site.
  • Fix When created, customers will now be published instead of a draft.
  • Fix Money Fieldtype will respect the site of the entry and display the correct currency.
  • Fix Fixed issue where you could add the same product/variant to the cart twice.


November 22nd, 2020

  • Fix Fixed bug with blueprint field checking


November 22nd, 2020

  • New Ensure fields are included in product & order blueprints.


November 21st, 2020

  • Fix Fix vendor:publish bug when running php please sc:install (I should really double check this stuff before I release it)


November 21st, 2020

  • Re-tag of v2.1.6


November 21st, 2020

  • [update] Improved the install process - combine vendor:publish step and setup-content.


November 13th, 2020

  • Fix A more descriptive message will now be shown if currency formatting fails due to the php-intl extension not being installed or enabled.'
  • Fix Fixed issue where gateways weren't being booted at all...


November 12th, 2020

  • Fix Fixed issue with Woodland when installing Simple Commerce for the first time. #313
  • Fix Fixed issue with product variants fieldtype on new product entries. #314
  • Fix Fixed issue when adding a new variation in product variants fieldtype
  • Fix Localize and use plural/signular stuff with index text for product variants fields.


October 30th, 2020

  • Fix Fix issues with installing via Composer, from last release. Whoops.


October 30th, 2020

  • New Licensing statistics - so we can check how many sites are using Simple Commerce, what versions are in use and if they have valid licenses.


October 28th, 2020

  • New Simple Commerce fieldtypes will now display nicely in entry listings
  • Fix Fixed issue when using an off-site gateway without specifing a redirect
  • Added a bunch of tests behind the scenes


October 18th, 2020

v2.1 contains various breaking changes, we recommend reviewing the update guide to ensure your site will work with the update.

  • New Product Variants
  • New Built-in Mollie Gateway
  • New Product Stock
  • New Sales Widget - dashboard widget for reviewing sales over a week, 14 days and a month.
  • New Support for Off-site gateways and a bunch of changes to the way gateways work overall.
  • New Minimum Order Numbers
  • Fix Various bug fixes.


February 19th, 2021

  • Fix Tax amounts should no longer be off. Was previously using the wrong formula.


November 13th, 2020

  • Fix Fix issue where gateways were not being booted


November 5th, 2020

  • New Licensing statistics - so we can check how many sites are using Simple Commerce, what versions are in use and if they have valid licenses. (also introduced in v2.1.2)


October 4th, 2020

  • New You can now update the format of the customer titles.
  • Fix When updating a customer, sometimes the title would be removed... #311
  • Fix If updating a customer's name using {{ sc:cart:update }} tag, it wouldn't work because of some copy and pasting
  • And added a bunch of customer related tests...


October 4th, 2020

  • Fix Fixed a bug that would happen if you try and get a customer that doesn't have a title or slug set.


October 4th, 2020

  • Fix Fixed issue where SC would presume a customer entry had a name on it, but if it didn't then stuff would break.


October 4th, 2020

  • Fix Fixed issue with customer data when being passed into Stripe Gateway, from #307


October 3rd, 2020

  • Fix Fixed issues when creating/updating customers via the {{ sc:cart:update }} tag. #307


September 30th, 2020

  • Fix Fixed issue with decimals causing incorrect totals, when using coupons on an order #304


September 28th, 2020

  • New Payment Method's are now saved for later, with Stripe Gateway #306


September 4th, 2020

  • Fix The money fieldtype will now default to 0 when nothing is entered instead of throwing an exception.
  • Fix Fixed issue where you couldn't remove the last item from the cart


August 29th, 2020

  • New You can now register gateways on-demand with SimpleCommerce::registerGateway(PayPalGateway::class, [])
  • Fix Fixed issue where deleting a single cart item would clear the cart instead (again) #293
  • Fix Fixed issue when trying to submit checkout form without any customer information.


August 27th, 2020

  • Fix Fixes issue when adding to the cart when you've already deleted items from the cart. #293
  • Fix Generate a title and slug for customer if they don't already have one - fixes a type error #296
  • Fix Fixed issue when the CheckoutController tries to call the PreCheckout event on case sensitive systems. #294


August 26th, 2020

  • New Brought back Order Statuses, you may want to run php please simple-commerce:setup-command to create the relevant taxonomies and terms.
  • New You can now send customer metadata when using {{ sc:cart:update }} and {{ sc:checkout }} tags. #289
  • New You can now toggle if Simple Commerce sends an Order Confirmation email to your customers after checkout. It's enabled by default. #288
  • New Customer & Order information is now passed to Stripe when preparing payment intent #292
  • New Brand new php please simple-commerce:setup-command command for setting up collections & taxonomies when installing Simple Commerce
  • Fix Fixed issue where adding items to cart would overwrite what is already there. #290


August 24th, 2020

  • Fix Fixed issue with ProductRepository not being bound properly because of a spelling mistake ๐Ÿคฆโ€โ™‚๏ธ #287


August 21st, 2020

  • New You can now specify the version of the Stripe API you want to use.
  • Fix Fixed issue caused when using a gateway that doesn't return anything from the prepare method.
  • Fix Fixed checkAvailability failing for shipping methods
  • Fix Fixed issue with completing cart without a customer being attached to the order.
  • Changed version constraint of statamic/cms due to v3 release


August 18th, 2020

  • Fix Simple Commerce releases should now include built assets.
  • Fix Issue when entering value inside Money fieldtype without separator and it converts it to cents/penies
  • Fix Percentage coupons #281


August 17th, 2020

  • Fix Simple Commerce tags were broken after beta 44


August 17th, 2020

  • Fix Config, blueprint etc should no longer be overwritten on composer update
  • Simple Commerce only supports PHP 7.4


November 21st, 2020

  • New Refunds - somehow managed to ship without refunds but they're here now!
  • New The output from prepare methods in gateways is now saved in the order so it can be used again in the gateway
  • Break Really small breaking change, inside the {{ sc:gateways }} loop, change {{ config:* }} to {{ gateway-config:* }} to grab gateway configuration values.
  • Fix Fixed initial state for the money fieldtype, should no longer show .
  • Fix Exceptions should now be thrown for when gateways don't exist or none is required at checkout
  • Fix _redirect should no longer be passed into cart when updating cart
  • Fix Fixed issue with coupon validation, where an error was being thrown as we were validation the wrong thing ๐Ÿคฆโ€โ™‚๏ธ #276


August 11th, 2020

  • Fix Blueprints being re-published after every Simple Commerce update


August 10th, 2020

  • Fix Simple Commerce no longer relies on calebporzio/sushi for Currency and Country models
  • Fix Incorrect typehint causing issues when getting cart items
  • Fix Typos


August 6th, 2020

  • New Introduced a Product facade, repository and related things...
  • Fix Fixed bug where you'd run into an error if you visit the cart/checkout when you have no cart in the session. Fixes #275
  • Break The $request variable is now passed in as a second parameter of the purchase method to a gateway.


August 1st, 2020

  • New Introduced two new commands: make:gateway and make:shipping-method
  • Fix Use FormRequests for validating action endpoints
  • Fix Officially only supports PHP 7.4
  • Break Removed /shipping-options endpoints.
  • Break Removed need for SKUs, you can have them if you want them but they won't be saved in orders anymore.


August 1st, 2020

  • New Added PreCheckout and PostCheckout events, triggered by the Checkout controller.


July 25th, 2020

Simple Commerce v2.0 has launched!