# What 2.0 fixes

> The Smootify 1.x bugs that 2.0 corrects - cart totals and discounts, unit prices, dates, weights, countdowns, subscriptions, large products, interactions, add-ons, analytics and in-app browsers on iPhone.

Status: Ready (Smootify 2.0)  
URL: https://www.smootify.io/docs/start/whats-fixed  
Updated: 2026-10-06

Smootify 2.0 corrects a number of 1.x bugs. You do not need to change anything for these fixes, but some numbers and texts on the page can differ from what the 1.x site showed, so check them before you go live and tell your client. If you built a workaround for one of these bugs, you can remove it. What changes by design, and may need a change in your markup, is in [What changes for your site](https://www.smootify.io/docs/start/changes).

## Cart totals and discounts

What a 1.x cart showed, and what 2.0 shows:

- **The crossed-out cart total.** `[cart="compare-at-total"]` added a discounted line's unit price once per discount and multiplied it by the quantity: 2 × $10 with $4 off showed $28 instead of $20. It also left out the lines at full price, so a cart with one item on sale and one at full price showed a crossed-out total lower than the real one, or none. 2.0 counts each line before its discounts, or at its compare-at price when it is on sale, or at its total when it has neither, and shows the sum when it is above the cart total. A discount code on the whole order now also shows the total before it.
- **Automatic discounts.** `[cart="discount"]` listed only the discount codes. 2.0 also lists the automatic discounts of the order, such as "10% off orders over $100", after the codes and with their amount.
- **The cart countdown.** `urgent-cart-countdown` showed the minutes left over after the hours: 90 minutes showed as 30. 2.0 shows the total minutes.
- **Upsells closing the mini cart.** The `direct-add-to-cart` button of the cart upsells closed a mini cart built with a `details` element as soon as it added a product. In 2.0 the cart stays open and shows the new line.

## Prices and values

Some numbers and texts read differently for the same data:

- **Unit prices.** `variant="unit-price"` wrote Shopify's unit name without the quantity, `/ G` or `/ KG`, so a price per 100 g read as a price per gram. 2.0 writes the quantity and the unit symbol: `€1.50/ 100 g`, `€3.00/ kg`. Text written after `{{unit}}` in `data-format` no longer ends up inside the unit.
- **Dates west of Greenwich.** Date metafields showed the day before in the Americas: 1.x read `2026-01-15` as midnight UTC. 2.0 shows the day stored in Shopify, in every time zone.
- **Weights and volumes.** Weight and volume metafields printed Shopify's unit name, `650 GRAMS`. 2.0 prints the symbol: `650 g`, `0.75 L`.
- **Tags with spaces.** `tagged="vip, gold"` looked for " gold", with the space, and `exclusive="true"` could never match two listed tags. 2.0 ignores the spaces around each tag, and `exclusive` means exactly the listed tags. The same for `exclude` on `product="tags"`, `product="collections"` and `customer="tags"`: `exclude="Home, Sale"` now leaves out Sale too.
- **List separators.** `separator=", "` joined the values with a bare comma. 2.0 keeps the separator as written, spaces included.
- **Sale on variant cards.** `smootify-variant` could get `is-on-sale` for a compare-at price that was not higher than the price. 2.0 sets it only when the compare-at price is higher, as `smootify-product` always did.

## Product pages

- **Products with more than 250 variants.** 1.x showed the first 250 variants and added the others later, so option values used only by later variants were missing, and prices and stock covered the first 250 only. On its product page, 2.0 loads every variant before showing the product. In lists, the cart and search, products keep their first 250 variants, as in 1.x.
- **Subscription tabs.** `subscription-swatches` scrolled the page to the top when it started. 2.0 does not.
- **Wishlist per variant.** `wishlist-toggle` with `data-use-variants` never worked: the toggle always saved the product. In 2.0 it saves the current variant. Remove the attribute to keep saving the product.

## Webflow interactions and elements

- **Animations played again.** After Smootify rendered, 1.x replayed page-load animations from the start, or froze intros and page-load loops. In 2.0, page-load and scroll animations that already played keep their state.
- **Placeholders that never went away.** Outside the product, the cart, search and a few account lists, a `skeleton` stayed forever and left the element unclickable: customer values, addresses, the store rows of the store locator and of store availability, `policy`, the wishlist count, the image of a box item. 2.0 removes it from every element it fills.
- **The sort dropdown.** `sort-dropdown` did not close its Webflow Dropdown after a choice. It does in 2.0.
- **The location switcher toggle.** The toggle of `location-switcher` stayed empty. In 2.0 it shows `location="name"` and `location="address"`, like the list items.
- **Store locator.** `data-fit-bounds="false"` was read as true. 2.0 turns the fitting off.

## Account pages

- **Subscription totals.** `subscription="subtotal-price"`, `shipping-price`, `total-tax`, `total-refunded` and `total-price` always showed 0. 2.0 shows the amounts of the order that started the subscription.

## Forms

- **Webflow’s Email field in the back in stock form.** The form answered “Invalid Email” with Webflow’s own Email field. In 2.0 a field named email, in any case, or the email field works.
- **A note in a Text field.** A Text field named `Note` was ignored: only a Text area saved the order note. In 2.0 both save it.
- **The metafields editor.** Select fields, Text areas and fields named with spaces stayed empty, and a ticked checkbox could not be unticked. In 2.0 they are filled in, and an unticked checkbox saves false.
- **The name form.** Any field besides the first and last name made Shopify refuse the update. In 2.0 the other fields are ignored.
- **Styled cookie checkboxes.** Webflow’s styled checkboxes did not show the choice the visitor had saved. In 2.0 they do.

## Add-ons

- **Quantity breaks in the product configurator** (server plan). A quantity-break price was shown but not charged when no field changed the price: the line went into the cart at the variant price. 2.0 charges it.
- **Preselected configurator values.** A value a configurator field had when the page opened (a default set in the Designer, a value typed before the page was ready, or one the browser put back on Back) was left out of the price until the next change, while the cart line still carried it. In 2.0 it is in the price from the start, so the price and the line match.
- **The configured price.** `smootify-price` showed the configured price but not the total. 2.0 shows both. Buy now with a configured price no longer empties the visitor’s cart, and the links of `configurator-dropdown` show the option’s label instead of its value.
- **Name your price** (server plan). Only the main product was added: the add-ons and bundles of the same form were left out. 2.0 adds them with it, and `smootify-price` shows the amount the customer types.
- **Magic Box.** A remove button also sent the box form. In 2.0 it only removes the line.
- **Uploads** (server plan). A product could be added to the cart while its file was still uploading. In 2.0 the form cannot be sent until the upload has finished.

## Analytics

- **Product views sent without consent.** The automatic product-view events for GA4, Meta, Klaviyo and Mixpanel went out before the visitor gave consent. In 2.0 they wait for it, like the add-to-cart and checkout events already did.
- **Page views counted twice.** Turning analytics on again with the same consent, from a script, sent a second page view. 2.0 sends one.
- **Mixpanel.** Mixpanel did not receive the events. It does in 2.0.

## In-app browsers on iPhone

Links opened from Instagram or Facebook on an iPhone open in the app’s own browser. The 1.x loader sent these browsers a build that did not work there. The 2.0 loader gives the in-app browsers of Instagram, Facebook and TikTok on iPhone a build made for them. Where such a browser changes every request the page makes, Smootify sends its requests from a worker those changes do not reach. It needs the loader: see [Install Smootify 2.0](https://www.smootify.io/docs/start/install).

## Where people get stuck

> [!STUCK]
> - **The crossed-out cart total is missing.** It shows only when it is above the cart total: nothing in the cart is on sale or discounted.
> - **The crossed-out total differs from the 1.x site.** 1.x added it up wrongly. 2.0 shows what the lines add up to before their discounts.
> - **The unit price stays empty.** The variant has no unit price measure in Shopify. Add the quantity and the reference unit to the variant.
> - **The mini cart stays open after an upsell is added.** That is the fix: 1.x closed it. The cart now shows the new line.
> - **The wishlist saves variants instead of products.** The toggle has `data-use-variants`, which did nothing in 1.x. Remove it to save products.
> - **A list metafield has spaces around its separator.** 2.0 keeps the separator as written. Write the one you want.
