For the past 2 years I've been working full-time on an open-source headless e-commerce framework (https://www.vendure.io/) so I can attest to this.
Small illustrative example: I have spent the past 2 weeks re-working our tax handling to handle scenarios like this:
- An order contains 5 products, some of which have different tax rates. Order total is $100. - A $10 coupon code reduces the order to $90. - The order is completed and shipped. Later on the customer wants to return and get a refund on one of the items. How much do you refund?
The answer is that you need to prorate (distribute) the $10 discount proportionally over the 5 items, so that when refunding, this order-wide discount is taken into account.
After extensive research (much of which I wrote up here: https://github.com/vendure-ecommerce/vendure/issues/573), I was rather surprised to find that the majority of well-known OSS e-commerce frameworks don't handle this properly.
On top of the things mentioned there are a whole host of other major topics of concern, e.g.
* stock control & tracking
* fulfillment & shipping integration
* payment integration
* promotions
* account management (email verification, password resets etc)
* product images / asset management
* multiple sales channel, multi-currency, multi-language support
For those interested, my project is approaching v1.0 so I've just about got a handle on all of the above. Phew!