Duncan McClean

Simple Commerce Release Notes

Duncan McClean


November 18th, 2023

What's fixed

  • Fixed missing Control Panel nav items when using database orders & logged in as a non-super-user #937 #938 by @duncanmcclean


November 16th, 2023

What's fixed

  • The Product Variants fieldtype now augments fields with the config for each of the fields #936 by @duncanmcclean

What's improved

  • Tidied up empty state for Tax & Coupon pages in the Control Panel #628 by @duncanmcclean
  • Notifications are now disabled by default


September 27th, 2023

What's new

  • Added anonymous telemetry #924

What's improved

  • Improved how tax is displayed when included in prices #922


September 12th, 2023

What's new


September 11th, 2023

What's new

What's improved

  • Refactored the Product Variants field behind the scenes to support field conditions!


September 7th, 2023

What's fixed

  • Fixed an error caused by the Line Item Tax fieldtype when it was being augmented by @duncanmcclean


September 5th, 2023

What's fixed

  • Fixed errors using the "Overview" page with Database Orders #911 by @duncanmcclean
  • Fixed empty dropdown when using Country & Region fieldtypes in Select mode #909 by @duncanmcclean
  • Re-ordered steps in migration process for migrating orders/customers to the database #910 by @duncanmcclean


August 28th, 2023

What's fixed

  • Fixed an issue where customers were created in the default site, instead of the order's site #899 #903 by @duncanmcclean


August 19th, 2023

What's fixed

  • Fixed an issue in multi-site, where new orders would always be created in the default site #899 #900 by @duncanmcclean
  • Fixed an issue where the customer could see an empty cart on the post-checkout page #901 by @duncanmcclean
  • Fixed the "Are you sure you want to leave this page?" warning from popping up when using the Money Fieldtype #897 #902 by @duncanmcclean


August 12th, 2023

What's improved

  • Improved docblocks in the Coupon, Customer, Order and Product facades
  • The billingAddress and shippingAddress methods now check a few more fields when deciding if an address is present or not


August 1st, 2023

What's fixed

  • Fixed the 'Coupon Code' fieldtype showing as selectable in form blueprints #895 by @duncanmcclean
  • Empty arrays are no longer saved to product entries when variants & variant options aren't provided #892 #894 by @duncanmcclean


July 21st, 2023

What's fixed

  • Fixed an issue where the Delete action was missing on anything but coupons


July 20th, 2023

What's fixed

  • Fixed an issue with the Mollie webhook #890 #891


July 3rd, 2023

What's improved

  • Rebuilt the Coupons Listing Table #885
  • Improved the UX around creating/editing coupons #888 #889

What's fixed

  • Order & Payment Status labels are now translatable #883 #886
  • Fixed the 'Expiry Date' field causing validation errors when saving coupons #887


June 21st, 2023

What's fixed

  • Rollback tax calculation fix #882


June 16th, 2023

What's fixed

  • Fixed issues with tax calculations #880


June 13th, 2023

What's new

  • PHP 8.1 is now supported again! #878

What's fixed

  • Fixed error when using Database Orders & Runway v5.x #876 #877


May 27th, 2023

What's new

What's improved

  • Gateway Webhooks are now automatically excluded from CSRF protection #875
  • The Order Calculator has been refactored #873
  • Changed the way tests are skipped #872

Note: Extending the calculator

If you're extending the Calculator class at all, you want to read these notes about changes to how the calculator works.


May 20th, 2023

What's fixed

  • Fixed 'Paid Date' not being migrated correctly to the status log, during the v5 upgrade #871 by @ajcsilva


May 16th, 2023

What's fixed

  • A validation error will now be thrown when adding a variant product to the cart without a variant #867 #870


May 9th, 2023

What's fixed

  • Fixed an error during the update process


April 28th, 2023

What's new

  • Statamic 4 support #857
  • Order & Payment Statuses replace the Is Paid/Is Refunded toggles on orders #783
  • Stripe Payment Elements are now supported!


April 15th, 2023

What's improved

  • Added pagination to Control Panel listing tables #861


April 11th, 2023

What's improved

  • The "Top Customers" widget on the Overview page should now be much quicker when using the Eloquent User repository #861


April 5th, 2023

What's fixed

  • Ignore appended attributes when saving database users #860


March 9th, 2023

What's fixed

  • Fixed an issue with Order Number accessor when using database orders #851


March 6th, 2023

What's new

  • Ability to customise currency formatting symbols #850


March 4th, 2023

What's fixed

  • Fixed an error when updating line items with variant product #844 #846
  • Stock will now be checked before redirecting customers to off-site gateways #842 #847
  • Fix issue with translations on payment descriptions #848


February 17th, 2023

What's fixed

  • Handle £0 orders when redirecting to off-site gateways #821 #822 by @duncanmcclean
  • When gateway was included in the OrderPaid event, it was an instance of the gateway, not the class name like it should have been by @duncanmcclean


February 16th, 2023

What's fixed

  • Fix gateway not included in order when listening to OrderPaid event #817 by @duncanmcclean
  • Ensure coupon fields are processed when creating/updating coupons #819
  • Fixed an issue with title of Edit Coupon page
  • Update coupon field in order blueprint stub for database orders
  • Fix issue with sc:switch-to-database where it would incorrectly think the command had already been run


February 4th, 2023

What's new

What's fixed

  • Fixed an error that was shown after deleting tax categories/zones/rates when using the Standard tax engine #803 by @duncanmcclean


February 1st, 2023

What's fixed


January 28th, 2023

What's new


January 28th, 2023

What's new

  • Statamic 3.4 Support #793


January 19th, 2023

What's new

  • Added support for separate first & last name fields for order addresses #788


January 14th, 2023

What's fixed

  • Fixed issue where orders field was being added to every blueprint #785 #786


January 7th, 2023

What's new

What's improved

  • All strings in the Control Panel & front-end validation from Simple Commerce are now translatable #777
  • Some of the form validation code has been refactored #780
  • The order of parameters being passed into the StockRunningLow and StockRunOut events has been changed. #782


January 4th, 2023

What's fixed

  • Fixed {{ sc:gateways }} tag when specifying a gateway #774 #775


January 3rd, 2023

What's new

  • Redesigned documentation site!
  • PHP 8.2 is now officially supported!
  • An 'Orders' field will be added to Customer/User blueprints automatically, if not already present #772

What's improved

  • Made some tweaks to the CheckoutController - no new features #773


December 16th, 2022

What's new

  • Allow for translating order emails #768 #769

What's fixed

  • Fixed filtering by country on {{ sc:regions }} tag #767 by @el-schneider


November 12th, 2022

What's new

  • A new {{ sc:cart:tax_total_split }} tag which returns a cart's tax total, split by tax rates #759 by @Sm1lEE


November 2nd, 2022

What's improved

  • You can now pass external URLs as the redirect parameter on Form Tags #756 #757

What's fixed

  • Fixed offsite payments with the PayPal gateway #755 #758


October 29th, 2022

What's fixed

  • Fixed stock not being checked at all when adding products to the cart #752 by @marcvdm


October 22nd, 2022

Note: v4.2 now requires a minimum of Statamic v3.3.48.

What's new

  • Added raw_price computed value for products


October 20th, 2022

What's fixed


October 19th, 2022

What's fixed

  • Fixed a bug where marking an order as shipped could override order data #741 by @cesaramirez


October 17th, 2022

What's fixed


October 8th, 2022

What's new

  • You can now filter orders by customer #737
  • You can now filter orders by products #736

What's improved

  • Deleted products on orders are now handled better now #732 #734

What's fixed

  • Renamed filenames of blueprint stubs to match the starter kit
  • SC will now check if the 'Stock' field exists on the product's blueprint before trying to check if it's localisable #721 #733


October 1st, 2022

What's new

  • Information about your Simple Commerce configuration will now be outputted by php please support:details and php artisan about #729

What's fixed

  • Product Variant not being displayed when viewing Line Items in the Control Panel #727 #728


September 24th, 2022

What's fixed

  • Fixed display issues when using SC's fieldtypes in listing tables #723 #724
  • Fixed stock being decreased on localised product entries when Stock field isn't localised #721 #725


September 13th, 2022

What's fixed

  • When re-ordering variants, the prices will no longer be shuffled about #719 #720


September 10th, 2022

What's new

  • There's been a few coupon-related improvements:
    • You can now disable coupons #713
    • You can now set coupons to expire after a certain date #716
    • The 'Customers' field on the Coupons publish form will now change, depending on the current customer driver (eg. entries, users, database). #714
  • Under the hood, we're now taking advantage of PHP 8.1 enums #712

What's changed

  • Simple Commerce has dropped support for PHP 8.0 and Laravel 8. Leaving PHP 8.1 and Laravel 9 as the currently supported versions.
  • Coupons have moved out of collections, into their own 'thing' in the Stache. #705

You can read more about what's changed in the upgrade guide, along with steps on how to upgrade.


September 3rd, 2022

What's fixed

  • Fix overview widgets not loading (#707)

What's improved

  • Implement contracts for tax repositories


September 1st, 2022

What's new

  • Simple Commerce will now show a 'Customers' nav item if you're using the user customer driver. #702 #703

What's fixed

  • When using the user customer driver in combination with database users, there was an issue where a 'super user' check would error out. #702 #703

What's improved

  • Removed usage of parseLoop method in Tags - it's not very performant and isn't really needed.


August 24th, 2022

What's fixed

  • Fixed an issue with the Money fieldtype when no value is set #459 #700


August 19th, 2022

What's fixed

  • The Money fieldtype no longer returns £0 when no value is set #699
  • Products are now hydrated with inherited data too (multi-site) #697 #698


July 30th, 2022

What's fixed

  • Fixed issues when users rename the 'Collections' nav item in the CP #692


July 28th, 2022

What's fixed

  • Fixed an issue caused when you rename sections in the CP Nav #691


July 22nd, 2022

What's fixed

  • Fixed an issue in the upgrade script if you use users for your customers


July 19th, 2022

What's new

  • Added {{ sc:cart:itemsTotalWithTax }} tag to get 'items total + tax total' #687 #688


July 8th, 2022

What's fixed

  • Fixed Undefined variable $site error with email notifications (sometimes) #666 #683


June 20th, 2022

What's improved

  • Updated default order blueprint for Eloquent database orders #678

What's fixed

  • Fixed issue where after removing a line item, items array would end up with keys #676 #677


June 20th, 2022

What's fixed

  • Fixed an issue where a customer would see a 'checkout complete' message even if they cancelled checking out via Mollie. #674 #675


June 17th, 2022

What's new

  • Form Parameter Validation can now be disabled, if needed #670

What's improved

  • Adjusted copy of 'Price includes tax' toggle on tax rates

What's fixed

  • Fixed issues where additional customer information would not be saved in some cases #658 #661
  • Fixed an issue with off-site gateways, where you'd see an empty order after checking out #664 #671
  • Added some code to ensure the tax rate on line items are saved as integers, rather than strings


June 15th, 2022

What's fixed

  • Fixed permission issues on Simple Commerce's CP Nav #657 #659
  • Fixed rounding calculation issues when using coupons #651 #660


June 9th, 2022

What's improved

  • Added support for underscore cart tag parameters #650

What's fixed

  • Fixed some issues with coupon calculations when using float/decimal values #651 #655


June 7th, 2022

What's fixed

  • Database Orders: Fixed an issue where customers & coupon's weren't being saved on orders correctly #648


June 3rd, 2022

What's improved

  • Improved the layout of the default Orders blueprint

What's fixed

  • Refactored the {{ sc:customer:orders }} tag to fix a couple of issues #645 #646
  • Fixed an issue where Debugbar would create orders even if you don't need it to. #647


June 3rd, 2022

What's fixed

  • Fixed an issue post-install when using a language other than English


June 3rd, 2022

What's fixed

  • Fixed another cause of 'ghost orders'


June 2nd, 2022

What's fixed

  • Actually add the upgrade script to the list of upgrade scripts..


June 2nd, 2022

What's fixed

  • Actually add the upgrade script to the list of upgrade scripts..


June 2nd, 2022

Note: During the update process, the 'Value' field on your coupon blueprint will be renamed to coupon_value.

What's new

  • Added a product parameter to the {{ sc:cart:updateItem }} and {{ sc:cart:removeItem }} tags #644
  • Added a {{ sc:gateways:count }} tag that returns a count of available gateways

What's fixed

  • Renamed the 'Value' field on coupons to coupon_value (to avoid conflicts with Statamic) #642
  • Squashed the bug that caused 'ghost orders' to be created


May 24th, 2022

What's new

  • Support for custom database columns on Order/Customer tables #634 #637

What's fixed

  • Fixed PSR-4 warnings #635 #636
  • Removed gateway name from back-office order emails


May 16th, 2022

What's fixed

  • Fixed an issue where the order number would be regenerated after every save #632


May 13th, 2022

What's fixed

  • Fixed sc:cart:cleanup command when storing orders as entries #631


May 12th, 2022

What's fixed

  • Fixed a few issues when checking out with an existing customer #629 #630


May 7th, 2022

What's fixed

  • Database orders: Fixed an issue where you'd end up with multiple orders when creating a new one #627
  • Session Cart Driver: If there's no current cart, create one.
  • Fixed an issue where you could get a 'stale' version of the cart when using the {{ sc:cart:addItem }} tag with AJAX.


April 28th, 2022

What's new

  • Support for storing orders & customers in a database #599
  • Brand new 'Overview' CP page for a top-level view of your store #620
  • Brand new Gateway fieldtype #609
  • Brand new Shipping Method fieldtype #611
  • Statamic's new-ish 'title format' feature is now used to generate titles for order/customer entries #601
  • You can now use Simple Commerce's cart tags on the Order Confirmation page #605
  • Gateways may return their own validation messages #598
  • Shipping Methods can now have their own config arrays #610

What's improved

  • Huge improvements to order emails #603
  • Added some protection for 'hidden form parameters' #607
  • You may now specify a 'whitelist' of additional fields you wish to provide when submitting front-end forms #608
  • Order Numbers are stored in their own (hidden) field now #604
  • Improved the handling of first/last name fields
  • Line Items are no longer returned as arrays, they have their own DTO class now #612
  • Updated moneyphp/money to v4.0

What's fixed

  • £0 will be returned instead of null if Money value is empty

Breaking changes

There's quite a lot of breaking changes between v2.4 and v3.0. It's highly recommended you read the upgrade guide before upgrading.


April 26th, 2022

What's fixed


April 25th, 2022

What's fixed

  • Fixed an issue where checkout would fail OR a customer would get charged incorrectly when using a coupon with maximum_uses set #622


April 5th, 2022

What's new

  • Added a {{ total_including_tax }} tag to help you figure out the Line Item Total + Tax #602

What's fixed

  • Made some performance improvements to the way order numbers are generated.


April 2nd, 2022

What's new

  • Added {{ sc:cart:free }} tag to check if an order is free

What's improved

  • The Receipt PDF will contain the site name, rather than random admin information
  • Back-office email has some bold text now


March 31st, 2022

What's new

  • Added 'Refunded' option to Order Status filter

What's fixed

  • The 'Refund' action can now be used when overriding default Order class
  • Improved exception handling for refunds
  • Fixed an issue around refunds not working as expected


March 30th, 2022

What's improved

  • You can now filter by 'Shipped' orders via the Order Status filter in the CP #597 by @duncanmcclean


March 28th, 2022

What's new


March 21st, 2022

What's new


March 18th, 2022

What's new


March 17th, 2022

What's fixed

  • Removed an upgrade script which could potentially cause issues with sites with large amounts of orders.


March 15th, 2022

What's fixed

  • Actually support Laravel 9


March 15th, 2022

After a long wait, Simple Commerce v2.4 is finally here!!

Please ensure you read the upgrade guide before upgrading. It notes how to update & any breaking changes you might want to know about.

What's new

  • Brand new Tax Engine ✨ #438
  • Regions - ties into tax, allowing you to specify an area of a country (eg. Scotland, UK)
  • Ability to set a 'default shipping method' #555 #562
  • Statamic 3.3 compatibility #580

What's improved

  • Gateway data has been combined, under a single key #498
  • 'Temporary' gateway data will now be cleared after checking out
  • Shipping Methods can now access the order when checking availability
  • Multisites: each site will now have it's own cart (rather than sharing one between them) #519
  • The PreCheckout and PostCheckout events now includes the context of the request


February 28th, 2022

  • N/A Changelog not available.


March 11th, 2022

What's fixed

  • Fixed an issue when removing an item from a cart, where the items would end up with keys (which could break stuff) #585


March 3rd, 2022

What's fixed

  • Validation errors use the default error bag, so SC shouldn't try and use its own when pulling out errors #581 #583 by @duncanmcclean


February 23rd, 2022

What's new


February 22nd, 2022

What's fixed


February 15th, 2022

What's fixed


February 3rd, 2022

What's fixed

  • Squashed an error that would appear when a coupon was being augmented #558 #559


January 22nd, 2022

What's new

  • Need an order's receipt URL in the front-end? Just grab for {{ receipt_url }} and be done with it! #550


January 17th, 2022

What's new

  • You may now configure if you'd like the metadata to be unique or not in line items #546


January 11th, 2022

What's fixed

  • Fixed an error when you have no 'option fields' configured on your Product Variants field #542


January 8th, 2022

What's new

  • Added a new {{ sc:cart:alreadyExists }} tag for checking if a product exists in the cart

What's improved

  • We're now telling Gateways which version of Simple Commerce is being used to send API requests

What's fixed

  • Fixed compatibility issues with the 'Order Status' filter in the CP


January 7th, 2022

What's fixed

  • Fixed an issue with Off-site Gateways and the PostCheckout event #535 #536
  • Added a check to fix an issue with Mollie Webhook, where if it fails, it fails continuously


January 3rd, 2022

What's improved

  • When setting up a multisite, developers will see a more helpful exception reminding them to add the site to their Simple Commerce config #524

What's fixed

  • Currency formatting on the Sales Widget has been fixed for certain currencies #527 #529
  • CP Listings will now show the right currency on Money fields (only an issue where there's multiple sites) #523 #526


December 21st, 2021

What's new

  • Country names are now translatable! #522


December 20th, 2021

What's fixed

  • Fixed issue when using UserCustomer and Eloquent users together


December 13th, 2021

What's fixed

  • Fixed issue where selected images would not be shown after save on Product Variants fieldtype #511


December 13th, 2021

What's fixed

  • The 'Stock' feature will now work when using an off-site gateway #506 #509
  • Fixed issue with custom option fields not working before initial save #503 #510
  • The name parameter will no longer be stripped when using form tags #505
  • When updating line items, the quantity will always be saved as an integer, not a string.


November 30th, 2021

What's fixed

  • Removed ray call from Variants fieldtype which would cause errors #496 by @ryanmitchell


November 20th, 2021

What's improved

  • Improved the display of the 'Product Variants' fieldtype #494

What's fixed

  • Fixed an issue where the Assets & Toggle fieldtypes (and probably others) were not behaving properly #493


November 13th, 2021

What's new

  • Added a new PreventCheckout exception which will cancel a checkout attempt if thrown
  • PreCheckout & PostCheckout events now both contain the Checkout request

What's fixed

  • Fixed {{ sc:errors }} tag not returning what it should.


November 9th, 2021

What's improved

  • The make:gateway command now allows you to choose between generating an on-site and an off-site gateway #490
  • You can now register shipping methods on-demand (outwith the config file) with SimpleCommerce::registerShippingMethod() #489


October 29th, 2021

What's fixed

  • Made fixes for when using alongside the Eloquent driver #486


October 23rd, 2021

What's new

  • Added toPence and toDecimal methods to the Currency facade


October 15th, 2021

What's fixed

  • Fixed issue with variant stock checks if you have 'dynamic variants' (eg. ones that don't actually exist on the product but are made up on the fly)
  • Fixed an issue where shipping address would fail to exist if you were using billing_address_line1 instead of billing_address


October 14th, 2021

What's new

  • Added Region fields to addresses #483

What's fixed

  • Everything in the default Order blueprint is now read-only
  • Product variant fieldtype now respects being read_only


October 9th, 2021

What's new

  • Ability to dynamically change prices of products when they're added to the cart #479


October 6th, 2021

What's fixed

  • Fixed an issue when checking out a product with 1 item left in stock #477 #478


October 5th, 2021

What's fixed

  • Fixed an issue checking out with variants with stock


October 2nd, 2021

What's new


September 30th, 2021

What's new

  • Added only, exclude and common parameters to the {{ sc:countries }} tag, see docs #473

What's fixed

  • Fixed an issue where Simple Commerce tried to merge a collection and an array.
  • Moved away from a deprecated Statamic Core method statamic/cms#4298


September 21st, 2021

What's new

  • An on-site mode for the PayPal gateway #472


September 20th, 2021

What's fixed

  • Fixed some PayPal webhook related bugs #471
  • Money fieldtypes will no longer return £0 when augmented if no price is saved #459
  • Improved docblocks for Gateway facade


September 18th, 2021

What's fixed

  • Fixed a dirty state issue with the Product variants fieldtype #461
  • Only the Transaction ID is now stored as paypal data on the order entry


September 17th, 2021

What's fixed

  • Fixed a bug where paypal data wasn't being saved properly on the order entry (causing the callback to not work) #469

What's new

  • Customer and address information will now be added to order when coming back from PayPal #469


September 15th, 2021

What's fixed

  • Fixed issue when you're being redirected back from an off-site gateway, where it would be unable to find the related order.


September 14th, 2021

What's new

  • Added {{ sc:cart:quantityTotal }} tag to get total quantity of all items in cart #468


September 10th, 2021

What's fixed

  • Customers are now marked as published by default, fixes #463


September 7th, 2021

What's fixed

  • Receipt data is now being augmented, meaning prices and product name's should display properly now #460
  • The prepare method will no longer be called for off-site gateways when using the {{ sc:checkout }} tag #462


September 6th, 2021

What's fixed

  • The Country fieldtype no longer gives array errors when max_items is set to 1


September 6th, 2021

What's fixed

  • Fixed calculator so coupon total includes tax total #458
  • When you clear the 'Money' fieldtype's value, we'll now save it as null, rather than 0 #459


August 30th, 2021

What's new

  • You can now pass in customer information when adding items to the cart
  • You can now limit product purchases to only customers who have purchased a specific product #452

What's fixed

  • Coupons total is now based on the line items total, not like grand total #453


August 27th, 2021

What's fixed

  • Fixed issue where field meta was not being passed into the 'Product Variants' fieldtype #454


August 19th, 2021

What's new

  • Support for Statamic 3.2
  • Smarten'd up the {{ sc:coupon }} tag, so you can do things like {{ sc:coupon:minimum_cart_value }}

What's fixed

  • If maximum_uses was null on a coupon, you would be unable to redeem it
  • gateway_config went missing somewhere and it's documented, so we added it back


August 10th, 2021

What's fixed

  • Fixed an issue where notifications were not being sent properly #451


August 3rd, 2021

What's fixed

  • Fixed an issue where if the order value was 0 the OrderPaid event would not be dispatched (causing issues with notifications, etc)


July 31st, 2021

What's fixed

  • Fixed an issue where the prepare method on gateways would still be loaded even if the value of an order was 0.00


July 28th, 2021

What's fixed

  • Fixed tax calculations when price_includes_tax is false #449

What's improved

  • Added some better testing around the Stripe Gateway


July 17th, 2021

What's new

  • Added a new 'User Customer' driver so you can use your users as customers, not a seperate collection


July 12th, 2021

What's fixed

  • Added environment config for PayPal gateway (otherwise we'd always be in sandbox


July 8th, 2021

What's new

  • Built-in PayPal Gateway (docs coming soon!)


July 7th, 2021

I've been doing some 'dog-fooding' of Simple Commerce at work over the last couple of days and I've found quite a few bugs, so this release is a big pile of fixes.

What's improved

  • If a product is out of stock, we'll now give you a validation error and remove the item from the cart.
  • Getting data from the cart tag, like so: {{ sc:cart:something }} will now go through augmentation
  • Stripe will now show API requests as coming from Simple Commerce (instead of directly through the Stripe SDK)

What's fixed

  • Fixed coupon redeemed/maximum uses check
  • The Coupon total will now calculate properly when using a non-entry driver
  • Fixed {{ sc:coupon:has }} when using a non-entry driver
  • Tided up some code and added some null checks in places
  • Fixed Stripe refunds not working properly


July 6th, 2021

What's new

  • Added a new currency modifier

What's fixed

  • Receipts now work when using a custom order class #443
  • _request will no longer be saved when checking out.


July 6th, 2021

What's fixed

  • When using a custom order class, sc:cart:count would not return the correct total. #442
  • When using a custom order class, you wouldn't be able to add to the cart #441
  • If you don't have notifications for a trigger, it won't error now


June 29th, 2021

What's fixed

  • Fixed small bug with notification improvements from the other day


June 26th, 2021

What's fixed

  • Updated the gateway stub so it's up-to-date
  • _request will no longer be saved to the order entry when saving.

What's new

  • New Country fieldtype
  • When creating an entry, we'll now save any default fields from your blueprint. #433
  • Both StockRunningLow and StockRunOut events are now available triggers for notifications. #423


June 11th, 2021

What's fixed

  • When updating a line item, the metadata is no longer overwritten #431

What's improved

  • You can now use a custom request on the {{ sc:cart:addItem }} and {{ sc:cart:updateItem }} tags #432


June 10th, 2021

What's fixed

  • You can now set line item metadata when adding a new line item.


June 9th, 2021

What's fixed

  • Fixed tax calculations if result is a rounded number, with no decimals #429

What's improved

  • 'United States' and 'Canada' aren't at the top of the countries list anymore
  • Removed sc:info command - it's never been used


June 5th, 2021

What's new

  • You can now specify a Form Request on some form tags (for custom validation rules) #425


June 3rd, 2021

What's improved

  • Refactored usage of findBySlug, it's being deprecated soon and will likely be removed in Statamic 3.2 #424
  • When using Something::create, you can now provide slug or published to manually set the slug/published status.
  • Checkout: Payment is now done at the very end of the checkout request, rather than just before the coupon. Orders will also be recalculated before payment in case of any last-minute changes.
  • Checkout: You can now set the Customer's ID in the checkout request
  • Checkout: You can now redeem coupons as part of the checkout request
  • Checkout: Refactored some stuff around product stock
  • Checkout: Added a job lot of automated tests to cover the checkout flow

What's fixed

  • Fixed IDE completion on the Coupon facade (was suggesting Order methods, rather than Coupon methods)
  • Checkout: Free orders will now be marked as paid again after checkout
  • Fixed issue where coupons limited to certain products could be valid/non-valid accidentally.


May 16th, 2021

What's new?

  • You can now grab 'raw' data through the Cart Tag, rather than augmented data. ({{ sc:cart:rawGrandTotal }})


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


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


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!