Can Modifying Shopify Theme Markup Break Core Functions?
I'm about to take on my first shopify project where I will need to modify certain theme markup (for WCAG accessibility purposes).
Having never worked on Shopify before, I'm reading their documentation and theme editing using liquid seems fairly straightforward. However, someone warned me that modifying theme markup can sometimes break core functionality like the checkout process or something similar if/when shopify requires a certain specific markup to be present.
Out-of-the box, do shopify functions depend on the markup in any way? I suppose anything's that written in Ruby should not be affected. Perhaps there would be JS that expects a specific DOM interaction. If anyone has run into similar issues, or can make any constructive suggestions, I would really appreciate it.
You can't break any Back-end functionality of Shopify if you modify the markup.
The purpose of the liquid is only to output some content, it can't modify the back-end in any way or form.
You can say that it's a glorified HTML markup with a few bells and whistles. ( but it loads before the DOM is ready )
In addition you don't have access to the checkout template if you are not on a Shopify Plus account, so it's really hard to even try to break something there.
That said you can break some base front-end functionality if you delete some items.
For example the product form needs to have an form element with an
name="id" and value of the
variant.id. If you remove that the product will not submit to the cart and you won't be able to use the checkout since you will never be able to add the product to the cart.
So yes you can break front-end functionality but you can't NEVER break the back-end logic with Liquid only.
- → .htaccess - not routing to public folder
- → Uncaught TypeError: Cannot read property '__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' of undefined
- → Webpack, React & Babel, not rendering DOM
- → How to print/log reactjs rendered dom?
- → ReactJS - Passing prop value to component before final ReactDOM.render()
- → how to write react component to construct HTML DOM
- → How can I handle subdomains with one laravel installation
- → CORS missmatch because of http
- → d3.js: get tick format from time scale
- → Stripe custom form with Reactjs
- → React JSX Spread Attribute in cloneElement
- → Stop setInterval timer when user clicks on another DOM Element
- → SEO Canonical URL in Greek characters