What changes for your site
What Smootify 2.0 removed and what replaces it, the new URL defaults, what is deprecated but still works, and what behaves differently on the page, for designers moving a 1.x site.
2.0 keeps the markup of 1.x: the elements, the attributes, the state classes and the options have the same names. This page lists the exceptions a designer can see: what was removed, what is deprecated, and what behaves differently on the page. The steps to switch a site are in Move a site from 1.x. The 1.x bugs that 2.0 corrects are in What 2.0 fixes.
Removed, and what replaces it
- Classic customer accounts. The forms
login-form,register-form,recover-form,reset-formandactivate-formremove themselves from the page. Shopify has deprecated its classic customer accounts and will remove them soon: 2.0 works with the new customer accounts, with thenewCustomerAccountsPublicKeyoption and thepasswordless-loginelement: see Customer accounts. - The
variationattribute. 1.x readvariationas another name forvariant. 2.0 reads onlyvariant: rename the attribute and keep its value. - Shopify’s cookie banner. 2.0 no longer adds it. You build the banner in Webflow with
smootify-consent, in a Component every page uses, such as the footer: see Cookie consent. The body class while the banner shows iscookie-banner-visible(1.x:is-shopify-cookie-banner-visible). - The store’s colour patterns. 1.x matched option values to every colour pattern of the store by name. 2.0 uses Shopify’s own swatches, or the option metaobject in
custom.options: see Swatch colours and images. - Automatic placeholders. 1.x made every text, image and button shimmer while a product, a search or an account list loaded. 2.0 shimmers only the elements that have a
skeletonattribute: see loading. - The FilePond upload fields (server plan). 2.0 uses the upload elements you design, with the
uploadparts and their classes: see File uploads. - The redirect for missing products. 1.x sent the visitor to another page (
invalidProductRedirectUrl) when the product of a product page was unpublished or not sold in the market. 2.0 never leaves the page: the product block stays empty, or is removed. territoryCodein address forms. Shopify has deprecated it. 2.0 reads the country Select field namedcountryCode: rename it, or the address form removes itself. See Addresses.
Every removed element is in removed elements.
New URL defaults
2.0 builds links like Shopify, with plural URLs:
| Option | 1.x default | 2.0 default |
|---|---|---|
productsBase | product | products |
collectionsBase | collection | collections |
vendorsBase | vendor | vendors |
A site whose template pages keep the singular URLs sets the options: see Move a site from 1.x.
Deprecated, still working
These keep working in 2.0. On .webflow.io, the debugger points them out.
product="images"andproduct="media"as the pieces of a gallery, withoffset, and the optionsshowOnlyActiveImagesandactiveImagesMode. Oneproduct="gallery"element does the same, withonly-variant-imagesandvariant-images="alt"on the element: see Product gallery and media.variant="image"is not deprecated: it stays for the image of the current variant, on cards and in the cart.- Three 1.x hooks for developers:
window.smootifyAddOnsBox,window._filterDraftOrderDataandwindow._metafieldsDefsFilter. See Filters. - The 1.x names of the wishlist events (
smootify_wishlist:…). 2.0 sends them with the new names too,smootify:wishlist:…. The debugger cannot see code that listens to events: see Events.
What behaves differently
Swatch images
The image of the variant a swatch leads to is option-variant="image". Inside a swatch button, 1.x also filled variant="image": 2.0 fills only option-variant="image".
Webflow interactions
After Smootify renders, it restarts Webflow interactions only when the render changed the page. 1.x restarted them after every render. Page-load and scroll animations that already played keep their state. To restart after every product load, as in 1.x, set webflowRestartAlways: true in the Smootify options.
Values and conditions
Some values show differently from 1.x, and some conditions match differently:
Metafields that showed nothing
Lists of numbers, dates, measures, colors, links and ratings, JSON with data-path, and references to products, variants, collections and pages now show their value. See Metafields on the page.
Weight and volume metafields
Show the unit symbol, such as 0.75 L, not Shopify's unit name.
List metafields
Keep the separator as written. 1.x removed the spaces.
Tag conditions
tagged, not-tagged, customer-tagged and customer-not-tagged ignore the spaces around each tag. exclusive="true" means exactly the listed tags.
Excluded tags and collections
On product="tags", product="collections" and customer="tags", exclude ignores the spaces too.
Order status labels
A status without a label of yours in SmootifyStatusLabels shows as Shopify sends it. 1.x wrote only the first letters in capitals.
Cart
[cart="discount"]also lists the automatic discounts of the order, after the codes. They have no remove button: Smootify removes it from them.button[data-is="direct-add-to-cart"]no longer closes a mini cart built with adetailselement. The cart stays open and shows the new line.
Search and filters
smootify-searchshows at most 10 results. Alimitabove 10 counts as 10.filter-swatcheskeeps its first button as the template and removes the others, a submit button too. Put the submit button outside the widget.filter-searchreads nolabel, andfilter-priceis always the Price filter.filter-searchshows on collection pages. 1.x hid it there with thehide-searchclass, because Shopify cannot search inside a collection. 2.0 searches inside the collection and no longer sets the class. Afilter-searchin a block shared with the collection pages now shows there too: remove it from those pages if they should not have one. See Search inside a collection.- The search page no longer adds placeholder cards before the first search. The cards you design keep their place until the results replace them.
Other elements
- Recently viewed shows up to 10 products by default (1.x: 3). Add
limit="3"to thesmootify-productwithdata-id="last-viewed"to keep three. See Recently viewed. store-locatorneeds itsmapelement inside. The store row and the search form are optional. It reads only its documented settings, and is removed when the store has no locations.product-slider: each slide it creates holds only the Collection list item.location-switcher: the toggle readslocation="name"andlocation="address", like the list items. 1.x readdata-propthere and left the toggle empty.policyworks on any element, not only a Rich text, and also takes Shopify’s policy handles, such asprivacy-policy.wishlist-togglewithdata-use-variantssaves the current variant. In 1.x the attribute did nothing and the toggle saved the product. Remove the attribute to keep saving the product.- Address forms list the countries by their name in the site’s language, in alphabetical order.
- Field Names are read as you type them in Webflow. The metaobject creator and the metafields editor turn a Name such as
Serial numberinto the keyserial_number. In 1.x the Name had to be the exact key. - Magic Box: a remove button only removes the line, and form errors go away after 5 seconds.
- Product configurator (server plan): formulas also accept plain names, such as
price + length * 2, besides the 1.x brackets. A field with no value counts as 0.
Apps
A Shopify theme app that calls /apps/…, /a/…, /community/… or /tools/… gets no answer: those paths need Shopify’s online store. On .webflow.io the debugger names them. See Shopify apps on a Webflow site.
Where people get stuck
Check these first
- Nothing shimmers while the page loads. 2.0 has no automatic placeholders. Add
skeletonwhere you want one. - The variant photo in a swatch stays empty. It uses
variant="image"orvariation="image". Useoption-variant="image". - A filter’s submit button disappeared. It was inside
filter-swatches, which keeps only its first button. Move it outside the widget. - Interactions no longer play again after a product loads. 2.0 restarts them only when the page changed. Set
webflowRestartAlways: trueif the design needs the 1.x restart. - A list metafield has spaces around its separator. 2.0 keeps the separator as written. Write it without the spaces.
- Styles for the cookie banner stopped working. The body class is
cookie-banner-visiblein 2.0.