Central repository of VTEX IO weekly release notes.
And we are back, ladies and gentlemen :clap:
Long time no see... really missed you guys! I'm sure that you've missed us too, right? RIGHT :smirk:
2019 was a special, intense and long year, full of learnings for each and every one of us, that's for sure. But the time has come to aim above and beyond to greatness. Therefore, make sure to keep up-to-date with the IO Release Notes! It's the only way to keep up with everything that we're dutifully preparing for you.
2020, here we are. And here we go:
Minicart v2 - A brand new Minicart is up and running, much more optimized and flexible that it's former version. For a look at the reasons why you'll want to migrate asap, check out the documentation
Block's composition - This one here is truly mind-blowing so listen closely: within a block's children
array, you can now declare any block you choose. That's right! When setting a block as another's child
, forget about the allowed blocks list. Declare whatever block you want. But remember: this only works for the children
array. Blocks declared in the blocks
array will remain limited to the famous list of block parent's allowed blocks
Store Link app - An app that allows you to create and display links that automatically consume context from other blocks. Sounds confusing? It is actually simple and amazing. Just give a look at the Store Link documentation
JivoChat - Integrate your store with the JivoChat solution using the JivoChat pixel app, available now just a click away from you
Listrak - More pixel apps to come! You are now also able to natively integrate with the Listrak solution
Site Editor - Our beloved admin's Site Editor now allows you to configure some of the many Shelf (maxItems
, arrows
, showTitle
, titleText
, minItemsPerPage
, itemsPerPage
and paginationDotsVisibility
) and Slider Layout (navigationStep
, itemsPerPage
and autoplay
) props
Search Results Filters - The new facetsBehavior
prop only allows you to display filters with actual search results in the Search Result page. No more misleadings. Yay!
Product Summary image - Choose which product image will be shown in the Product Summary Image block thanks to the new mainImageLabel
prop
CSS Handles - More CSS Handles for several apps, among which: Stack Layout, Product Summary, Search Result, Menu, Minicart, Flex Layout) and ALL store icons. We're seriously not kidding around when it comes to Handles... do not forget to check out each related documentation
SKU Selector - Previously, the showValueNameForImageVariation
prop did not serve every scenario it is was meant to because it only indicated a variation's value if it was an image type. It was replaced with a prop, namely the showValueForVariation
, that encompasses even more scenarios, that is, it now indicates variation's value of all types (image and others!). Do not forget to give the documentation a quick sneak peak to understand the prop's behavior
SKU Selector do Product Summary - The possibility to add a slider in the Product Summary SKU Selector to make user navigation easier has just become reality thanks to the new displayMode
prop
Search Results ordering - It's always a good idea to improve the Search Results page. Now, sorting products by "Relevance" takes the score field value set in the admin's Catalog into consideration
SKU Selector ordering - We're really putting our house in order in 2020: the SKU Selector now respects the position given to SKU specifications values defined in the admin's catalog, displaying everything according to the retailer's order preference
Product Impression event - Previously, Product Impression events faced a problem: whenever the Shelf was hovered over, the event triggered the store’s google analytics informing that all Shelf products had been seen by the user, even those that were hidden by the SKU Selector’s slider. This is now changed: only products that the user in fact hovered over are sent by the event
You better watch out, you better not cry, you better not pout and I'm telling you why: Release Notes (once again) is coming to town!
Given the holiday's never ending glee (and the 117 Fahrenheit if you're in Brazil :sun_with_face:) that December bestows upon us all, the Christmasy Release Notes comes in an exclusive format this last month of the year, bringing the best and latest of the past few weeks.
You can call me Santa Claus 'cause once you've read everything you'll feel like you've just found a Christmas tree loaded with goodies :christmas_tree: There are so many amazing releases bundled together that I bet you'll go through them as fast as 2019 went by...
initialSelection
and displayMode
) are now here to get rid of block rigidity.openOnHover
prop is here to make that point.active
, responsible for customizing thumbnails of images that were selected in the Product Details Page, was ignoring the thumbnail selection. Oh my dear active
, you had but one job to do! The Handle was only keeping the configured customization for the first image on the list, even if users had selected another image. This has come to an end and the customization now respects the user's power of choice. Hoo-rah!Clear
button serve on a Filter? Clearing all the applied filters, right? But it seemed that Clear
was the only one not understanding that. The button didn't clear anything, leaving users with the same active filters as before. With this bug fix, the Clear
button now does what it was meant to do.Apply
, the sidebar remained open without serving any purpose to users. If there was bug to be fixed there, it seems it had to do with the mobile Filter. It's now perfect for use: the sidebar's behavior was remedied and it's now closing as expected after clicking on apply
.trackTransaction
event. This led to prices not being sent correctly and to lack of visibility for retailers. How very sad! Everything's back to blossoming for the Bazaar Voice review and sent prices.Words cannot express how glad we are to have you with us on this journey! Here's to next year and to the incredible releases that awaity :beers:
Happy Holidays!
Hey, team! Our December Release Notes will be out of the oven very soon with all the baked goodies ready to lift the Holiday spirits :christmas_tree:
Meanwhile, a few releases require more urgency and demand more focus from our users, as we'll see today.
Have a look good long look at the following breaking change to avoid future headaches:
The Store Builder now requires all blocks that are used in the construction of a store theme to be defined by the direct dependencies of the app in which you are working, without exception.
Prior to this release, an app could use blocks stemming from apps not declared as its dependency in the manifest.json
.
To further understand this scenario, we'll consider the existence of three apps: A
, B
and C
.
According to the old scenario, app A
could use blocks that were defined by app C
once the latter is a direct dependent of app B
and B
a direct dependent of A
.
Now, the Store Builder only looks at how a block is defined in the app's direct dependents list. This means that an app can only use blocks defined by apps that are declared as dependencies in its manifest.json
.
Therefore, in our example above, app C
can no longer export blocks to app A
, because it can only use blocks that are defined by app B
.
Using blocks that were defined in direct and indirect dependencies freely led to app consistency problems.
As the Store Builder was searching throughout the entire dependencies tree (meaning indirect and direct dependencies) for the definition of the blocks that were used, it was possible for an app from this long list to define the same block as other apps. This in turn confused the Store Builder as to which version you wanted to export the desired block from.
In addition to conflicts that could, within the realm of possibility, be reversed, using a defined block in an app that wasn't declared in the manifest.json
also meant increased fragility for the main app.
Following the same example with apps A
, B
and C
above: it was possible for a developer working on app C
to decide to remove a block used by app A
, thereby breaking the template construction of the latter. According to the Store Builder's old behavior, the developer would not be aware of what other apps were exporting blocks due to an indirect relationship with C
.
This release therefore allows for an app's behavior to become more predictable and resilient to errors, as all block that are used have their origin clearly stated and are controlled by the designated developer through the app's manifest.json
.
If you're still using indirect dependency blocks, you won't be able to link and publish the app in which you are working. Instead, the following error will be displayed:
error: App build failed with message: Error resolving block "store.product":
I couldn't find a block "product-reviews". You need to declare it or depend on an app that declares it.
Starting from this release, it is mandatory to declare in the in manifest.json
all apps that define the blocks used in your theme.
Hey, team! Welcome to the Black VTEX IO Release Notes.
Yep, that's right. If this Friday is Black Friday, you can call us Black Release Notes this week because we are thrilled with this long awaited event being just around the corner.
Whether retailer or end user, I do hope that your checklist for this black week is ready, because mine is :heavy_check_mark: And guess what else? It envolves reading the entire Release Notes.
visibleSpecifications
and hiddenSpecifications
props can now be edited using the admin's Site Editor. This Site Editor never tires of being a hero for code-less people, for real...homeIconSize
and caretIconSize
), new Handles (homeLink
and termArrow
) and other improvements.savingPriceValue
and savingPriceLabel
also had a lucky week and gained their own CSS Handles.productSearch
query, providing users with search results regardless.hiddenOptions
prop does away with the component’s forced exhibitionism. Its options can now either be hidden or displayed according to the retailer’s chosen scenario.preventRouteChange
prop in search result pages was [announced](link Release) during the last Release Notes and, believe it or not, was already cause for uncertainty. When a category was selected and then removed from the Filter Navigator, the URL was keeping the former category, showing inaccurate data to the user. This bug was already fixed and the prop is alive and well. Booyah!HighlightOverlay
, responsible for highlighting the block was being edited on the Site Editor's interface, was shy and kept the original height, thereby impairing the display of the new configurations. It's now learned to be more receptive to change and adapts according to the block's new height.Hey team! Another week is dawning!
The start of the week is always the perfect opportunity to set the pace for the week, month and even life, right? We always promise ourselves to start a new diet, or to better organize our tasks, come up with plans and so on...
Funny how we never seem to the energy to do these things on a Friday (we tend to have other priorities :smirk:).
Therefore, bask yourself in this fresh energy that only the start of the week can bestow upon us to make it through this week's Release Notes :muscle: You’ll understand why in just a second. It’s just that if there is anything you’ll need an abundant supply of in order to catch up with the latest IO updates, it’s energy to read through everything.
See for yourself:
Are you still with us? I hope so, because there is more to come:
preventRouteChange
prop expanded and what was valid only for custom pages is now valid for custom-less search result pages too. Apply any filters without worrying about changes to the page's path or structure.Fetch previous
and Show more
buttons were vanishing after being clicked on when the previous search results page was either the first or last page with search results. Witchcraft you say? Whatever the case, we've fixed it. In these scenarios, page loading is now rendered before new results are displayed.show more
button) and switching between tabs, users were confronted with a Show less
button, as if they had already opted to expand that second tab as well. This scenario was corrected and the tabs now act independently :muscle:Hey team! One more VTEX IO Release Notes coming your way.
In tune with the Halloween spirit, quick disclosure: more so than ghosts and zombies, my worst fear is not knowing what is going on with VTEX IO 😨 I'm betting you dread the same thing!
Therefore, take a deep breath, relax and banish your fears, because we have a new Release Notes and it's full of delicious treats:
Buy Button redirect - The Buy Button should redirect the user to the PDP regardless of the SKU availability, since users must always know which SKU they are adding to the cart, right? But this wasn't what the button was doing before this fix! It added an SKU to the user's cart, by itself.
Price Range loading - Any change to the Price Range by the user now triggers a reload symbol, providing a better UX. In addition, the search result pagination now resets when any change to the component is performed. Before this bug fix, these two scenarios were not a reality... how awful!
mailto
and tel
tags in Menu Item - When editing your store's content with Site Editor, you might have come across the tel:
and mailto:
tags that could not be read as href
in a menu item. Now, they are working as originally intended! At long last!
Tablet layout grid - The Search Result component layout dimensions were not responsive to Tablet devices. They took on mobile dimensions, leading to content decentralization and very weird blank columns on the screen. This layout bug has been fixed.
Similar categories in Breadcrumb - Similar categories to those of the product were being displayed in the Breadcrumb component. Nothing against similar categories, but Breadcrumb isn't the place for that, right? Only the main category tree is now displayed in the component, due to data being fetched in the product's categoryId
.
Image thumbnail gallery arrows in PDP - On the Product Details Page, arrows in product thumbnail images were broken when in horizontal mode. These only worked correctly in vertically displayed images! The arrows now understand that they should properly function in both display directions and this bug has been fixed.
Site Editor infinite loading - To allow users to edit a store's blocks using an interface, Site Editor needed to query the code's up-to-date data. Whenever this query encountered an error, the loading symbol was forever displayed to the user, which became confused, poor soul! The loading has now been replaced with an error message, improving the Site Editor UX.
Welcome to the one and only VTEX IO Release Notes!
I bet that you've missed us these past couple weeks, but weep no more 🤗
Not only are we back, but we also have a proper explanation for turning off the lights for all this time: the VTEX IO Release Notes will have a new format from now on, being published every two weeks.
No need for the long face, team... a more extended publication time equals more time to bring together relevant content for you 🎉
Without further ado and with the given explanations, have a quick look at our key releases for weeks 39 and 40 of 2019:
:bell: Keep up with VTEX IO release notes! Just click on Releases only in the Watch box in the right upper corner of this page.
store
v2 compatible apps thanks to Store v2 Edition.DiscountBadge
component was displaying negative discount badges, such as -0%, when the product was being sold at a higher price than its original one. This strange behavior is now fixed and the DiscountBadge
is not displayed if the product's discount is less than 1%.tel:
Rich Text links attribute - Rich Texts can now interpret the HTML attribute tel:
to create links for phone calls. Prior to this bug being fixed, this attribute was not interpreted (Rich Texts could only interpret the mailto
attribute, used for sending e-mails).Did you ever imagine two VTEX IO Release Notes in one week? we. are. on. fire 🔥
Hope you will be able to set some time aside from your busy workweek to catch up with VTEX IO one more time.
Check out our key releases for week 38 of 2019 below:
:bell: Keep up with VTEX IO release notes! Just click on Releases only in the Watch box in the right upper corner of this page.
BuyButton
and ProductSummaryBuyButton
new prop and redirect your user to any URL with a simple click on the Toast component.i18n
key props - When editing i18n
fields, some users were facing an issue with their key props. There were a few scenarios in which the i18n
key itself was being rendered raw instead of having its value displayed. This PR solves this issue.__provideRuntime
cache = The __provideRuntime
function called the Messages
service every time changes to a component were performed by the user, such as changing the Shelf title. To improve request responsiveness (previously at ~2s), this PR adds a local cache that returns the messages and avoids making the request whenever possible.Hey! 👋 Welcome to VTEX IO Release Notes for week 37 of 2019!
You might have noticed that last week’s Release Notes didn’t reach you. Not to worry. To put you on track with VTEX IO, this week will have two publications! 🎉
Thrilled to announce that this week's first Release Notes brings several long awaited releases and innovative such as SEO strategy improvement and the new Search GraphQL app.
Don't get left behind with the latest on these and other key changes. Get a sneak peek at this week's main releases:
:bell: Keep up with VTEX IO release notes! Just click on Releases only in the Watch box in the right upper corner of this page.
flex-layout
.store-graphql
morphed into search-graphql
, which took over responsibility for your store's GraphQL search related queries.HiglightOverlay
component - Previously, when clicking on a block that did not exist in your store, the Site Editor's section iframe would not work due to an unexpected behavior of the HighlightOverlay component (responsible for displaying on the screen which component from the list the user is currently editing). This behavior was remedied.Welcome to yet another VTEX IO weekly release notes, this one being more than special because we are announcing the release of our brand new VTEX IO documentation website.
Honestly, why are still reading the into after such news? Scroll down and have a look at last week's key changes:
:bell: Keep up with VTEX IO release notes! Just click on Releases only in the Watch box in the right upper corner of this page.
productView
event - Get more insight into your store's user behavior by tracking their navigation between SKUs.orderPlaced
event - Make your Google Analytics metrics more reliable with the orderPlaced
event trigger improvement.