This article, whilst quite clearly an advertisement ("this is so complex - use our service!"), actually does a decent job of illustrating just a <i>tiny fraction</i> of the complexity of correctly modelling an e-commerce system.<p>For the past 2 years I've been working full-time on an open-source headless e-commerce framework (<a href="https://www.vendure.io/" rel="nofollow">https://www.vendure.io/</a>) so I can attest to this.<p>Small illustrative example: I have spent the past 2 weeks re-working our tax handling to handle scenarios like this:<p>- 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?<p>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.<p>After extensive research (much of which I wrote up here: <a href="https://github.com/vendure-ecommerce/vendure/issues/573" rel="nofollow">https://github.com/vendure-ecommerce/vendure/issues/573</a>), I was rather surprised to find that the majority of well-known OSS e-commerce frameworks don't handle this properly.<p>On top of the things mentioned there are a whole host of other major topics of concern, e.g.<p>* stock control & tracking<p>* fulfillment & shipping integration<p>* payment integration<p>* promotions<p>* account management (email verification, password resets etc)<p>* product images / asset management<p>* multiple sales channel, multi-currency, multi-language support<p>For those interested, my project is approaching v1.0 so I've just about got a handle on all of the above. Phew!
I really enjoy this type of article that shares a data model for a common type of project. I'd love to see more examples for different common project types.
This is great, and worth comparing with, for instance, the Magento data models [1] (from Anna Volkl).<p>Echoing the comment from rafaelturk about NoSQL, I'd love to see more info on how various industry verticals use DynamoDB as their primary store.<p>[1] <a href="https://anna.voelkl.at/wp-content/uploads/2016/12/ce2.1.3.png" rel="nofollow">https://anna.voelkl.at/wp-content/uploads/2016/12/ce2.1.3.pn...</a>
While Fabric is certainly cool and I'd love to dig into it, not having any inclination of the pricing makes it impossible to know which client-base they are after.<p>I'm guessing those that have grown out of Magento/WooCommerce or even Shopify and Ecwid. Which means enterprise pricing, ie. custom quotes.