Tons of improvements have been made in Drupal 2.x with regard to product workflows, UX and architecture. There’s also more functionality and features out of the box which makes it a lot easier to start a new commerce project.
The cool new installer makes it simple for any user to download and install Drupal commerce 2.x. You will be able to build all the components, put them together, generate some fancy composer news, etc.
Some terminologies have changed to make it more user-friendly, like instead of Nodes, they have two entity types – Product and Product variations. Payment methods are now called Payment gateways.
Features like Promotions and Coupons which were slightly buggy in version 1.x are now fixed – very usable and solid.
In Commerce 1.x, the product architecture wasn’t very user-friendly. Adding products are much more structured now since the product variations handle the different attributes and variations of each product.
Order states are well defined now. For example, in Commerce 1.x, all checkout statuses were grouped into one ‘checkout’ state. Which was very vague since there are many possible states under a ‘checkout’ status like Checkout Review, Checkout Payment, Checkout Complete, etc. Now the order workflow is split into multiple workflows – order, checkout, payment and fulfillment. Difference order types can now use different workflows.
Payments are now rock solid and much improved. Firstly, the time taken to implement payment gateways has drastically reduced (cut down by one third) while he functionality has increased. It now integrates with over 30 payment gateways!
Multi-currency is now supported as Commerce 2.x now uses Google’s library to handle any currency in the world. You need to know how to format the numbers of different currencies based on what symbol it uses, decimal points – if any, commas, separators, language of the currency, etc.
A lot of things have changed for the better with Drupal Commerce 2.x, but the best and most significant milestone achievement has to be the Shipments API. In 1.x, when they said ‘Shipments’, they meant you could get shipping rates. Period. In order to actually ship the item, you would need to integrate with another system.
But now with Commerce 2.x, you can actually ship a product! And get shipping rates too. An order fulfillment process involves all the steps right from the placement of the order till the shipment of an order. And now with the Shipping API, an order can be fully fulfilled. Calculating duties, putting things on boxes, handling returns, printing labels with barcodes (which need to work for your delivery service like UPS or Fedex), handling box sizes, etc.
With Drupal 8, everything is now a plugin interface. You can customize it the way you want to. You can also replace any of the shipping process steps with third party providers. For example, you could use Amazon for your fulfillment process or your deliver service providers to take care of your boxing part.