One of the worst and most indicative things about the Shopify developer ecosystem is that there is no first-class support for source control - of any type - in Shopify's online theme editing system. It is expected that if you wish to integrate any nontrivial application, you'll give access to your full admin panel to low-paid, marginally-English-speaking integration techs at the app developers, and they will
edit your live theme code. Woe to anyone trying to integrate two such applications at once - what usually happens is one app's devs will give up mid process due to the interference of the other, and leave you high and dry. I've had to "rescue" botched integrations by pulling down historical theme versions, manually diffing them, and retroactively committing changes into an offline Git repository just to make sense of who touched what.
It's impossible to customize the information collected at checkout, including structured shipping instructions, so there are various hacks around doing this on the cart page. It's impossible to customize pricing for certain classes of logged in users, beyond simple discounts that wreak havoc on your accountants trying to get effective line item prices into their systems. Adding structured data to any objects requires parsing description text in the template language and makes you wish you had the flexibility of the Salesforce API... and just typing that sentence makes me shudder.
For those without the training or resources to build a full-stack modern website, Shopify is far better than the alternative of adding shopping cart widgets to Wordpress or Squarespace. But it's far from perfect, and its capabilities as a frontend platform have stagnated: https://developers.shopify.com/api-changelog . Knowing what I know now, I'd recommend that anyone with full-stack experience jump directly to https://spreecommerce.org/ or http://getsaleor.com/ - a higher learning curve, but when you inevitably hit the ceiling of Shopify's capabilities you'll wish you'd used one of those.