<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lauren Clevenger</title>
    <description>The latest articles on DEV Community by Lauren Clevenger (@laurenclev).</description>
    <link>https://dev.to/laurenclev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F129180%2F8c04df19-f432-4433-95d7-44e9dd85feb4.jpg</url>
      <title>DEV Community: Lauren Clevenger</title>
      <link>https://dev.to/laurenclev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/laurenclev"/>
    <language>en</language>
    <item>
      <title>MACHathon 2021: Building the BigCommerce Weather Alert Merchandising Tool</title>
      <dc:creator>Lauren Clevenger</dc:creator>
      <pubDate>Wed, 10 Mar 2021 20:02:16 +0000</pubDate>
      <link>https://dev.to/bigcommercedevs/machathon-2021-building-the-bigcommerce-weather-alert-merchandising-tool-1gb4</link>
      <guid>https://dev.to/bigcommercedevs/machathon-2021-building-the-bigcommerce-weather-alert-merchandising-tool-1gb4</guid>
      <description>&lt;h3&gt;
  
  
  MACHathon 2021: Building the BigCommerce Weather Alert Tool
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z24BKtYC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2A4a-3GCmXxf168axLO4boKA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z24BKtYC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2A4a-3GCmXxf168axLO4boKA.png" alt="" width="880" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a proud member of the&lt;a href="https://machalliance.org/"&gt;MACH Alliance&lt;/a&gt;, &lt;a href="https://www.bigcommerce.com/"&gt;BigCommerce&lt;/a&gt; recently participated in the first-ever global &lt;a href="https://machalliance.org/MACHathon"&gt;MACHathon&lt;/a&gt;. The MACHathon is a hackathon that challenges participants to build a project using MACH technology and composable architectures. The MACH Alliance presents and advocates for an open and best-of-breed enterprise technology ecosystem including microservices-based, API-first, cloud-native SaaS, and headless implementations.&lt;/p&gt;

&lt;p&gt;The theme of the 2021 MACHathon was “Getting Unstuck.” Our challenge was to build a project in five days that would help people get virtually un-stuck while showing the world what is possible with MACH technology.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;At BigCommerce, our hackathon team was inspired by the idea of removing one piece of uncertainty out of people’s everyday lives — the weather. By helping overcome this hurdle, we hope to inspire people to become “unstuck” by giving them the confidence to tackle the outdoors in the right gear, for the right weather, while maintaining safe social distancing.&lt;/p&gt;

&lt;p&gt;Our solution is an ecommerce merchandising tool called Weather Alert. Weather Alert displays customized product recommendations based on a shopper’s zip code and current weather conditions. Once a shopper inputs their zip code, our backend functions make an API call to the OpenWeather API to retrieve the upcoming five-day forecast. After receiving the forecast from OpenWeather, the backend parses through the data, matches it to products, and generates a list of recommended products for the upcoming weather conditions. The product list is then surfaced to the customer so they can review the products and shop around.&lt;/p&gt;

&lt;h3&gt;
  
  
  Our Team
&lt;/h3&gt;

&lt;p&gt;Once we had our idea, we split into two teams — one focused on the frontend and one focused on backend development.&lt;/p&gt;

&lt;p&gt;Working together was challenging at times, especially with the short development timeline and the coordination of multiple BigCommerce teams (Solution Engineers and Product Support Engineers) across different time zones. To make sure we could work on the project together, we established routine daily meetings each morning at 7 am CST before work. We used Google Hangouts and Slack as our main forms of communication during this time. Some other unexpected challenges that came up were related to our daily work schedules. We had multiple unexpected meetings come up the week and at times we were left with only 1–2 members able to move the project forward. Throughout the week we needed to remain flexible with our tasks and responsibilities, so we would “ping” the group chat to see if anyone was available to help throughout the day. Another challenge we were exposed to was being unfamiliar with some of the technologies in play. For example, we needed to work through TypeScript, an open-source language that builds on JavaScript, by adding static type definitions. This was not something we were prepared for and required sifting through docs and Stackoverflow posts for answers. A couple of hours were spent each day after work trying to read posts, to try and make some sense of the technology and how it fit our use case.&lt;/p&gt;

&lt;p&gt;On the day the MACHathon began, we woke up early and got to work via Hangouts. We began by brainstorming the project on an old dusty whiteboard, then mocking up what would become the design, deciding on the tech stack, and discussing the data flow of this project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Our Tech Stack
&lt;/h3&gt;

&lt;p&gt;We decided to build the Weather Alert as a headless ecommerce experience using BigCommerce in conjunction with Vercel’s Next.JS framework.&lt;/p&gt;

&lt;p&gt;Here’s a look at our tech stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://bigcommerce.com/"&gt;BigCommerce&lt;/a&gt;: A powerful, open SaaS platform to house product data, images, price data and deliver it to Vercel’s Next.JS framework via the Catalog APIs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vercel.com/"&gt;Vercel Next.JS&lt;/a&gt;: An open-source React framework to power the storefront and display relevant product data to customers&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aws.amazon.com/"&gt;AWS&lt;/a&gt; + &lt;a href="https://www.serverless.com/"&gt;Serverless Framework&lt;/a&gt;: Host the backend functions that made API calls to other pieces of the architecture and parsed through data to display relevant results&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://openweathermap.org/api"&gt;OpenWeather API&lt;/a&gt;: Used in conjunction with the backend functions to pull weather data for a given zip code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eUS_xMlh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/600/0%2ADqHNZcpQmPQx9UiF" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eUS_xMlh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/600/0%2ADqHNZcpQmPQx9UiF" alt="" width="600" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Solution Architecture
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xzWptDwG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A-uroPP6VXV8erCQV" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xzWptDwG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A-uroPP6VXV8erCQV" alt="" width="880" height="804"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Developing Weather Alert
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Building the Framework
&lt;/h4&gt;

&lt;p&gt;In the first couple of days, the team built a wireframe for the home page and weather module and set up the Vercel connection to the BigCommerce platform. Once these tasks were completed, the two teams began to explore their respective technologies that were chosen for the project.&lt;/p&gt;

&lt;p&gt;The frontend team explored the complexities of TypeScript, a framework we were not familiar with. This required us to spend a lot of time trying to read through documentation and Stackoverflow to familiarize ourselves with the framework. This led us to patch several things together in the way they made sense to us, and a lot of trial by error. Principal SE Stuart Guest-Smith also began an UX/UI mockup through Figma, where he laid out the groundwork for user interactions and flow on the frontend. The backend team lead by Senior SE George Fitzgibbons began hacking away at the logic that would become the backbone of the project. The backend team started by exploring available API endpoints for both BigCommerce and OpenWeather API, and how they could take a given zip code to display relevant product data to the user.&lt;/p&gt;

&lt;h4&gt;
  
  
  Fine Tuning
&lt;/h4&gt;

&lt;p&gt;As the team entered the second half of the MACHathon, the pressure was on. During this phase team members would meet at random times in the day (sometimes even for 5 minutes!) just to check in with each other and help where needed.&lt;/p&gt;

&lt;p&gt;By this point, most of the backend logic had been completed and the team began working on integrating it to the frontend. To integrate the backend logic with the frontend, the team began hacking away at a module that would be used to house the zipcode submit form and be able to return related products back to the customer. We ran into hiccups here and there, especially as our GitHub repo became flooded with new commits as we were trying to push into the final day of the MACHathon. Our project lead, George Fitzgibbons, did an amazing job keeping the team afloat and on course as the hours whittled down to submission day.&lt;/p&gt;

&lt;h4&gt;
  
  
  Project Submission
&lt;/h4&gt;

&lt;p&gt;During the final day as the MACHathon submission deadline approached, our team was feeling very enthusiastic about the progress made. With any project there is always room for improvement, so we continued working on last-minute user experience enhancements. Some of these last-minute enhancements included aligning the product cards aesthetically, styling the input boxes to be more modern looking and user-friendly, and finalizing the last deployments to the homepage that reflected the initial project mockup.&lt;/p&gt;

&lt;p&gt;While some of our team members continued working on finalizing tweaks, the other members concentrated on getting the project submission ready for the MACHathon judges and created the video showcasing Weather Alert:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/TVvokukyUwM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;After having faced various challenges along the way, our team was very proud of the new concepts learned and the created solution to help people become “unstuck”, while using a technology stack representative of the MACH Alliance.&lt;/p&gt;

&lt;p&gt;Check out our project here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://weather-hack.vercel.app/"&gt;https://weather-hack.vercel.app/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gje4/weather-hack"&gt;https://github.com/gje4/weather-hack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The next step with this project will be releasing it as an open-source repo so others can explore the technology and build upon the specific use case.&lt;/p&gt;

&lt;p&gt;Have you used Next.js by Vercel to build an ecommerce site, or used BigCommerce for a headless build? Show us what you’re working on and tell us what you learned by commenting below or tweeting &lt;a href="https://twitter.com/BigCommerceDevs"&gt;@BigCommerceDevs&lt;/a&gt;.&lt;/p&gt;




</description>
      <category>ecommerce</category>
      <category>bigcommerce</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Introducing New BigCommerce Transactional Email Templates</title>
      <dc:creator>Lauren Clevenger</dc:creator>
      <pubDate>Wed, 10 Mar 2021 19:55:06 +0000</pubDate>
      <link>https://dev.to/bigcommercedevs/introducing-new-bigcommerce-transactional-email-templates-4p2b</link>
      <guid>https://dev.to/bigcommercedevs/introducing-new-bigcommerce-transactional-email-templates-4p2b</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uAngGBt0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AjG11RHZLhhJvH5gdQcgyWQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uAngGBt0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AjG11RHZLhhJvH5gdQcgyWQ.png" alt="" width="880" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are excited to announce our new Transactional Email templates. This launch provides a much-needed update to our existing email templates, introducing new features and options to customize the email templates with a new user interface and an API option.&lt;/p&gt;

&lt;p&gt;Emails are an incredibly important part of the shopping experience and an expression of a merchant’s brand. Our new visual designs will provide a more aesthetically pleasing experience, and our powerful templating engine will enable merchants to express their brand and customize their emails to fit their own particular needs.&lt;/p&gt;

&lt;p&gt;Along with the new API and Control Panel interface, new visual design, Handlebars support, new previewing features, and per-channel management, we are proud to deliver our &lt;a href="https://support.bigcommerce.com/s/ideas#08713000000CBSiAAO"&gt;number 3&lt;/a&gt; top Community requested feature on &lt;a href="https://support.bigcommerce.com/s/ideas"&gt;BigCommerce Ideas&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AlJxiKv6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AE7vgLJYFmrKHFr0whpZI2A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AlJxiKv6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AE7vgLJYFmrKHFr0whpZI2A.png" alt="" width="880" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This update will roll out progressively to new and existing stores over the next month. Since this is a highly customizable area of our control panel, we are deliberately making this feature live over a longer timeframe to ensure platform stability and reliability.&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s New in this Release?
&lt;/h3&gt;

&lt;p&gt;This release has a &lt;strong&gt;ton&lt;/strong&gt; of changes that we feel will really make a difference for our merchants, partners, and developers.&lt;/p&gt;

&lt;h4&gt;
  
  
  Full Handlebars Support
&lt;/h4&gt;

&lt;p&gt;All existing 13 Transactional Emails are currently available in Handlebars, the same powerful templating technology used to power Stencil themes. This means that merchants and developers can have much greater flexibility in customizing their emails through the use of conditional logic and helper functions.&lt;/p&gt;

&lt;h4&gt;
  
  
  New Default Visual Design for all Emails
&lt;/h4&gt;

&lt;p&gt;The new default design of Transactional emails is more attractive and easy-to-read. Additionally, they are now fully mobile responsive and look great on both mobile and desktop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0zQ4UJTX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/691/0%2AV1J3uqJoP2i_qYu7" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0zQ4UJTX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/691/0%2AV1J3uqJoP2i_qYu7" alt="" width="691" height="1230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Translation Management
&lt;/h4&gt;

&lt;p&gt;We’ve made the first step for future multi-language support by adding a clean &amp;amp; simple UI editor for translatable phrases. Today, only the English language is supported but this list will be expanded with the addition of French, Italian and Dutch later this year.&lt;/p&gt;

&lt;h4&gt;
  
  
  Email Preview
&lt;/h4&gt;

&lt;p&gt;Store admins can preview emails in a browser with one click without having to save the template. Preview supports desktop, tablet and mobile devices.&lt;/p&gt;

&lt;h4&gt;
  
  
  Send Test Email
&lt;/h4&gt;

&lt;p&gt;If you would like to check how a specific email looks on your mobile or home laptop, it is now effortless with the new “Send Test Email” feature. It allows store admins to send any of the available emails to a specific email address and check it out on a real device &amp;amp; real email service provider.&lt;/p&gt;

&lt;h4&gt;
  
  
  Update Phrase Values
&lt;/h4&gt;

&lt;p&gt;One area of our UI that really makes this feature shine bright is the option to change the phrase value variable in an easy to see format or in the HTML code directly. This flexibility provides users with options to make a change based on their comfort level.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Atce-iwM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/939/0%2AZH4S2w6Jghotgs_Z" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Atce-iwM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/939/0%2AZH4S2w6Jghotgs_Z" alt="" width="880" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  API Functionality
&lt;/h4&gt;

&lt;p&gt;This release introduces two new endpoints, one for managing which email templates are active or inactive, and another for managing the subject line, HTML content, and translatable phrases for each email.&lt;/p&gt;

&lt;p&gt;Taken together, these endpoints allow you to selectively disable emails that you don’t wish to send (or you may be replacing with a 3rd party provider) and allow you to configure the content of any of the emails across all selling channels.&lt;/p&gt;

&lt;p&gt;The documentation is available on the BigCommerce Dev Center &lt;a href="https://developer.bigcommerce.com/api-reference/store-management/email-templates/email-templates/getemailtemplates"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Additionally, the object model powering the Handlebars templates for each email has been thoroughly &lt;a href="https://developer.bigcommerce.com/api-docs/store-management/email-templates/handlebars"&gt;documented&lt;/a&gt;. This release also empowers us to expand the data available to email templates much more easily, so we’d love to hear your feedback on what information you’d like to pull into emails.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Get Started
&lt;/h3&gt;

&lt;p&gt;As mentioned above, we are slowly rolling this new feature out to stores so that we can ensure platform stability for all merchants.&lt;/p&gt;

&lt;p&gt;Once your store receives the update, you can easily &lt;a href="https://developer.bigcommerce.com/api-reference/store-management/settings/email-statuses/get-settings-emails-enabled"&gt;enable&lt;/a&gt; the new transactional emails in your store by going to Marketing &amp;gt; Transactional Emails, and clicking Try New Experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uganu7sF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2ACw8BrQiBqVYfxvE3" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uganu7sF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2ACw8BrQiBqVYfxvE3" alt="" width="880" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After opting int the new version, any customizations made in your existing templates will be copied over.&lt;/p&gt;

&lt;p&gt;If you decide this new version is not for you, you can go back to the old version by clicking the “Revert to the old experience” button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JoplhINs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2Adg_S_Hsx3OJNny4-" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JoplhINs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2Adg_S_Hsx3OJNny4-" alt="" width="880" height="157"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Information
&lt;/h3&gt;

&lt;p&gt;For more information on our new user interface and setting up your new Transactional Emails, check out our &lt;a href="https://support.bigcommerce.com/s/article/Customizing-Emails"&gt;Knowledge Base article.&lt;/a&gt; For API documentation, &lt;a href="https://developer.bigcommerce.com/api-docs/store-management/email-templates/overview"&gt;click here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We hope that you find this new feature useful and look forward to any feedback so we can continue to improve it!&lt;/p&gt;




</description>
      <category>email</category>
      <category>handlebars</category>
      <category>ecommerce</category>
      <category>bigcommerce</category>
    </item>
    <item>
      <title>Provide a Differentiated Product Experience with the BigCommerce Custom Templates API</title>
      <dc:creator>Lauren Clevenger</dc:creator>
      <pubDate>Tue, 09 Feb 2021 19:50:11 +0000</pubDate>
      <link>https://dev.to/bigcommercedevs/provide-a-differentiated-product-experience-with-the-bigcommerce-custom-templates-api-2gog</link>
      <guid>https://dev.to/bigcommercedevs/provide-a-differentiated-product-experience-with-the-bigcommerce-custom-templates-api-2gog</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vc2ACasI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AQQSSCVBwjAN0uj5tc5YpAQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vc2ACasI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AQQSSCVBwjAN0uj5tc5YpAQ.jpeg" alt="" width="880" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In today’s quickly growing ecommerce ecosystem, the need to differentiate is more important than ever. Merchants need unique options to display their products, categories, brands, and web pages on their storefront. In order to set this up, a merchant would need to go into their Control Panel and manually select their desired templates. This proved to be cumbersome and time-consuming which an API could solve quickly.&lt;/p&gt;

&lt;p&gt;We are excited to make this need a reality with the availability of the &lt;a href="https://developer.bigcommerce.com/api-reference/store-management/custom-template-associations"&gt;BigCommerce Custom Templates API&lt;/a&gt;, available now!&lt;/p&gt;

&lt;h3&gt;
  
  
  Custom Templates API
&lt;/h3&gt;

&lt;p&gt;Custom Templates is a feature in our Stencil template platform which allows merchants to use visually distinct templates for different products, categories, brands, and web pages on their storefront. While the ability to make these changes for a simple catalog is quite useful, complex large catalogs are harder to manage and benefit from being managed via an API.&lt;/p&gt;

&lt;p&gt;Custom Templates functionality previously required users to associate a particular template with a particular object (e.g. a product) by using the control panel to manually select the desired template file for each object. This works well for users who have a smaller number of objects to deal with (for example, stores with less than 50 products), however, for stores with a lot of data, the control panel is not an efficient way to implement this large amount of configuration.&lt;/p&gt;

&lt;p&gt;Stores with large catalogs usually prefer to perform management operations using our public API, often connecting with external systems like PIMs where they store the master version of their catalog data and sync it into BigCommerce. In order to make sure Custom Templates could be used in this way, we chose to expose a public API for managing custom template information, Custom Templates.&lt;/p&gt;

&lt;h3&gt;
  
  
  Unlocking New Possibilities
&lt;/h3&gt;

&lt;p&gt;A public API helps some merchants directly but also allows BigCommerce partners to come up with creative ways of interacting with Custom Templates to drive merchant efficiency. A partner might use the Custom Templates API to help merchants with a large catalog display various options, or they might use it if their solution involves creating a custom product template for particular products. For example, a partner might create a custom product template for selling subscription products, or for selling products where a bulk order form is displayed on the PDP. This API would help automate the setup of such a solution, by allowing an application to programmatically set the correct template for certain products.&lt;/p&gt;

&lt;p&gt;For merchants who have diverse and large product lines, the Custom Templates API can quickly help create a differentiated experience across different areas of their website.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;API Documentation (&lt;a href="http://developer.bigcommerce.com/api-reference/store-management/custom-template-associations"&gt;Custom Templates&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.bigcommerce.com/s/group/0F913000000HLjECAW/bigcommerce-developers"&gt;Developer Community&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/BigCommerceDevs"&gt;Developer Twitter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>ecommerce</category>
      <category>bigcommerce</category>
      <category>catalog</category>
      <category>api</category>
    </item>
    <item>
      <title>Supercharge the BigCommerce Storefront Using Widgets</title>
      <dc:creator>Lauren Clevenger</dc:creator>
      <pubDate>Tue, 19 Jan 2021 18:05:34 +0000</pubDate>
      <link>https://dev.to/bigcommercedevs/supercharge-the-bigcommerce-storefront-using-widgets-1ndm</link>
      <guid>https://dev.to/bigcommercedevs/supercharge-the-bigcommerce-storefront-using-widgets-1ndm</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k9xRAbt1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AaKGYuryrHZVPgV_214UR3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k9xRAbt1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AaKGYuryrHZVPgV_214UR3g.png" alt="" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In 2019, &lt;a href="https://www.bigcommerce.com/"&gt;BigCommerce&lt;/a&gt; released the &lt;a href="https://developer.bigcommerce.com/api-docs/store-management/widgets/overview"&gt;Widgets API&lt;/a&gt; enabling developers to build integrations via REST API to the &lt;a href="https://support.bigcommerce.com/s/article/Page-Builder"&gt;Page Builder&lt;/a&gt;. Since its initial release, we’ve made many updates to both Page Builder and the Widgets API — with more planned development and enhancements coming in 2021.&lt;/p&gt;

&lt;p&gt;If you are unfamiliar with these features, BigCommerce Page Builder gives merchants the ability to drag and drop widgets and page components to customize their storefront with ease. According to &lt;a href="https://www.practicalecommerce.com/drag-and-drop-ecommerce-tools-are-on-the-rise"&gt;PracticalEcommerce&lt;/a&gt; these tools, “represent newer approaches to software development and deployment that [provide merchants] advantages in functionality at a low cost.”&lt;/p&gt;

&lt;p&gt;For developers, the Widget API unlocks the ability to build everything from bespoke widgets, page components, and marketplace applications.&lt;/p&gt;

&lt;p&gt;In this blog post, we’ll explore the key features of the Widgets API and share best practices for an optimal developer workflow. We’ll also answer and give clarity to many common dev questions about building custom widgets. Let’s get started and dive deep into widgets and explore the big possibilities they unlock.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Widgets?
&lt;/h3&gt;

&lt;p&gt;Widgets are easily configurable web UI elements. They consist of HTML, CSS and Javascript that is &lt;a href="https://developer.bigcommerce.com/api-docs/store-management/widgets/samples"&gt;JSON encoded&lt;/a&gt;. These UI elements can be applied to any BigCommerce approved theme and extend the functionality already available. A merchant can drag and drop these blocks into their theme’s widget regions and even customize the look and feel of a widget from the control panel.&lt;/p&gt;

&lt;p&gt;Developers can create custom widgets for a specific client or they can create widget applications that are available in our BigCommerce Marketplace. These widgets can consume store data now more easily, by using GraphQL queries. Widgets can also be configured from an application to call services that are linked to other third-party APIs like Google Maps, Facebook, or Twilio.&lt;/p&gt;

&lt;p&gt;Developing and using Widgets are a great way to unlock functionality for the BigCommerce storefront and create solutions that merchants can leverage right away with minimal assistance. This low to no code functionality for merchants enables developers to innovate and merchants to implement their solutions easier than ever before.&lt;/p&gt;

&lt;h3&gt;
  
  
  Widgets Features and Support
&lt;/h3&gt;

&lt;p&gt;There are several features supported via the Widgets API:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://developer.bigcommerce.com/api-reference/store-management/widgets/widget-template/getwidgettemplates"&gt;Widget Templates&lt;/a&gt; for the creation and configuration of widgets for both Page Builder and regional placement.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.bigcommerce.com/api-reference/store-management/widgets/widget/getwidgets"&gt;Widget “CRUD”&lt;/a&gt; operations and maintenance.&lt;/li&gt;
&lt;li&gt;Using specified widget &lt;a href="https://developer.bigcommerce.com/api-docs/store-management/widgets/overview#regions"&gt;regions&lt;/a&gt; and &lt;a href="https://developer.bigcommerce.com/api-reference/store-management/widgets/placement/createplacement"&gt;create placements&lt;/a&gt; for widgets.&lt;/li&gt;
&lt;li&gt;Using &lt;a href="https://developer.bigcommerce.com/api-docs/store-management/widgets/tutorials/global-regions-tutorial"&gt;global regions&lt;/a&gt; for widget placement in generalized regions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.bigcommerce.com/api-docs/store-management/widgets/tutorials/widget-versioning-tutorial"&gt;Versioning of widgets&lt;/a&gt; using update logic for templates and widgets.&lt;/li&gt;
&lt;li&gt;The latest development is around allowing templates &lt;a href="https://developer.bigcommerce.com/api-docs/store-management/widgets/tutorials/dynamic-widgets"&gt;to pull store data&lt;/a&gt; using our &lt;a href="https://developer.bigcommerce.com/api-reference/storefront/graphql"&gt;GraphQL API&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Types of Widgets
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Custom-developed widgets.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--slCtQPrM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2AEvJdb_jRq_ycVvTj" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--slCtQPrM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2AEvJdb_jRq_ycVvTj" alt="" width="800" height="1084"&gt;&lt;/a&gt;Custom Widget Flow Diagram&lt;/p&gt;

&lt;p&gt;The custom-developed widgets flow is the base of all widget development. Custom widgets can use storedata from GraphQL or be developed into widget applications.&lt;/p&gt;

&lt;p&gt;The custom widget flow documented above shows how to create custom widgets. There are basically two flows with a shared update flow. The first flow ensures that a widget is optimized for Page Builder. These widgets, when placed by the merchant in Page Builder, the &lt;code&gt;POST Widget&lt;/code&gt; and &lt;code&gt;POST Placement&lt;/code&gt; API calls are made on the developer's behalf by Page Builder, so this process does not need to be done by an application. For most widget use cases, you will want to use this flow.&lt;/p&gt;

&lt;p&gt;The second flow is a direct embed to a specific placement. These API placed widgets will always appear below all the Page Builder placed widgets in a specific region. These widgets are not optimized for: utilizing layouts, duplication in various regions, and need to be re-architected if one wants to place them in Page Builder. However, widgets that are placed in regions can have their settings updated in Page Builder.&lt;/p&gt;

&lt;p&gt;Based on your requirements and the needs of the client you can determine if you want to have your widget template contain settings. This is a schema object that Page Builder can use to modify things like CSS styling. Page Builder widgets do not require a settings schema but you need to consider how your widget may react to different regions. If that is not necessary because you built the widget template with a specific design and placement in mind, you can just place the widget for the client where it is optimal to do so. This just requires what we talked about in flow two: a region, the widget, and placement.&lt;/p&gt;

&lt;p&gt;Versioning and updating widgets are a new feature of the API. This is an optional flow, but a very nice to have feature for managing the widget development lifecycle when you are wanting to update merchants to new versions that could have breaking changes. This allows the merchant to decide if they want the latest version of your widget, absolving developers from the headaches of managing versions outside of the widgets API. Using the Widget Template UUID you can ensure that a template is updated with a flag for “create_new_version” set to true and then update the widget with a flag of “upgrade” set to true.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Widgets that leverage storefront data.
&lt;/h4&gt;

&lt;p&gt;Widgets can now leverage storefront data by using the &lt;a href="https://developer.bigcommerce.com/api-docs/storefront/graphql/graphql-storefront-api-overview"&gt;Storefront GraphQL API&lt;/a&gt;. These widgets are dynamic in nature but follow the same creation path as above. The BigCommerce Developer Documentation contains a tutorial on how to implement graphql queries into your widget template; &lt;a href="https://developer.bigcommerce.com/api-docs/store-management/widgets/tutorials/dynamic-widgets"&gt;Create Widgets powered by GraphQL&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The most important thing is to architect your data to use a single query in your widget template. If you know that you are going to need to use many data nodes, test your query to ensure that the return meets your needs. You can see the GraphQL data relationships using &lt;a href="https://developer.bigcommerce.com/graphql-explorer"&gt;GraphQL Explorer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : Be aware of ‘&lt;a href="https://developer.bigcommerce.com/api-docs/storefront/graphql/graphql-storefront-api-overview#complexity-limits"&gt;Complexity Limits&lt;/a&gt;’ when using the GraphQL API.&lt;/p&gt;

&lt;p&gt;Here is an example GraphQL powered widget template to get you thinking about your next widget build. This widget is Page Builder enabled and would show a product’s name, image and price.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST [https://api.bigcommerce.com/stores/`{{STORE_HASH}}`/v3/content/widget-templates](https://api.bigcommerce.com/stores/%7B%7BSTORE_HASH%7D%7D/v3/content/widget-templates)
X-Auth-Token: {{ACCESS_TOKEN}}
Content-Type: application/json
Accept: application/json

{
 “name”: “Product Widget”,
 “storefront_api_query”: “query Product($productId: Int = 1) { site { product(entityId: $productId) { name entityId prices { price { currencyCode value } } defaultImage { url(width: 500, height: 500) } } } } “,
 “schema”: [
 {
 “type”: “hidden”,
 “settings”: [
 {
 “type”: “graphQl”,
 “id”: “graphQueries”,
 “typeMeta”: {
 “mappings”: {
 “productId”: {
 “reads”: “productId”,
 “type”: “Int!”
 }
 }
 }
 }
 ]
 },
 {
 “type”: “tab”,
 “label”: “Content”,
 “sections”: [
 {
 “label”: “Product”,
 “settings”: [
 {
 “type”: “productId”,
 “label”: “Product”,
 “id”: “productId”,
 “default”: “”,
 “typeMeta”: {
 “placeholder”: “Search by name or SKU”
 }
 }
 ]
 }
 ]
 }],
 “template”: “&amp;lt;div style=\”text-align:center\”&amp;gt;\n&amp;lt;h1&amp;gt;{{_.data.site.product.name}}&amp;lt;/h1&amp;gt;\n&amp;lt;div&amp;gt;\n&amp;lt;img src=\”{{_.data.site.product.defaultImage.url}}\”&amp;gt;\n&amp;lt;/div&amp;gt;\n&amp;lt;div&amp;gt;\n&amp;lt;p&amp;gt;${{_.data.site.product.prices.price.value}}&amp;lt;/p&amp;gt;\n&amp;lt;/div&amp;gt;\n&amp;lt;/div&amp;gt;”
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Widgets applications for the BigCommerce Marketplace.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2jni1AOI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2AkkiwxkUeN-lxsE7U" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2jni1AOI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2AkkiwxkUeN-lxsE7U" alt="" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To create a widget that merchants can discover in the &lt;a href="https://www.bigcommerce.com/apps/"&gt;BigCommerce Marketplace&lt;/a&gt;, you have to create a &lt;a href="https://medium.com/bigcommerce-developer-blog/how-to-build-your-first-bigcommerce-app-7ea3f4e4f8b2?source=friends_link&amp;amp;sk=6d6816a8a0652a20df92ad5ed75e1de8"&gt;Single-Click Application&lt;/a&gt;. In our Theme Docs under the Page Builder section, there is documentation on &lt;a href="https://developer.bigcommerce.com/stencil-docs/page-builder/third-party-widgets"&gt;“Third-Party Widgets”&lt;/a&gt;. You can use this information to inform your build process in addition to the information in this blog post.&lt;/p&gt;

&lt;p&gt;You may be asking yourself — why should I sell my custom Widget in the Marketplace? Well, there are a few reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You have the ability to access more data through OAuth scopes.&lt;/li&gt;
&lt;li&gt;You can architect solutions that utilize both the Page Builder frontend and your own backend services.&lt;/li&gt;
&lt;li&gt;You can give the user configuration options for styling and management of the widget.&lt;/li&gt;
&lt;li&gt;You can monetize your development efforts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Building widgets that take advantage of backend services and utilize the versioning flow give your widget applications all the tools they need to create performant and reliable applications that merchants can use and maintain on their own. This is an amazing way to provide merchants with no code or low code options for store functionality.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tips to Develop Effective Widgets
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Determine your development lifecycle
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uTdCbF2J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2A8JJbKF2NTQv7M1Oe" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uTdCbF2J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2A8JJbKF2NTQv7M1Oe" alt="" width="800" height="461"&gt;&lt;/a&gt;The above image showcases how to conceptualize the widget development lifecycle.&lt;/p&gt;

&lt;p&gt;To begin, a developer or team needs to define the functionality and scope of the widget. Second, devs should work on the widget template user interface. This ensures that the user interface contains all the necessary details for the merchant storefront experience before trying to implement settings or data. This confirms that the scope is fully defined and vetted. Third, continue to work on the widget template but from the perspective of the widget schema. The merchant will then have an interface for updating CSS properties like colors, fonts, and borders as well as making sure that any configuration needs are addressed. Fourth, determine what, if any, data is needed to support the widget template. If storefront data is required, then work on the GraphQL queries and verify that the widget template behaves as expected. Save application implementation and integration efforts for the end of the life cycle is an option that gives a team a lot of flexibility when iterating on widgets. You can validate that the user-facing part of the application is working as expected before requiring placement or creating mechanisms that would allow your widget to be downloaded from the BigCommerce Marketplace.&lt;/p&gt;

&lt;h4&gt;
  
  
  How to work with Widget Templates
&lt;/h4&gt;

&lt;p&gt;The most complex part of developing widgets is architecting your template. In order to validate your development, you will need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A REST API client, like Postman.&lt;/li&gt;
&lt;li&gt;A sandbox or trial store’s API scopes for Page Builder access.&lt;/li&gt;
&lt;li&gt;POST the template to the storefront to which you have API token access.&lt;/li&gt;
&lt;li&gt;Access to that storefront to view your widget template in the store’s Page Builder.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You only need to POST the Widget Template to view the Widget in Page Builder. It is not required to POST a Widget or POST a placement, these types of POST’s are optional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip&lt;/strong&gt; : Before coding an application to create this template or update it, using a tool like Postman to iterate through template creation can save you and your team time. Just be sure to save your UUID to your environment or global variables.&lt;/p&gt;

&lt;h3&gt;
  
  
  Optimize Widgets for Page Builder
&lt;/h3&gt;

&lt;p&gt;The main property that needs to be included in order to make your widget available to Page Builder is a &lt;a href="https://developer.bigcommerce.com/api-docs/store-management/widgets/tutorials/tutorial#create-a-user-interface"&gt;schema&lt;/a&gt;. This schema can be created using the following types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.bigcommerce.com/stencil-docs/page-builder/widget-ui-schema#tabs-and-sections"&gt;Tabs and Sections&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.bigcommerce.com/stencil-docs/page-builder/widget-ui-schema#array-type"&gt;Arrays&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.bigcommerce.com/stencil-docs/page-builder/widget-ui-schema#hidden-settings"&gt;Hidden&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tabs and Sections are groups of settings. Tabs require a root-level tab to contain all the visible sections of your widget. Sections contain the settings under an optional label. &lt;a href="https://developer.bigcommerce.com/stencil-docs/page-builder/widget-ui-schema#schema-settings-fields"&gt;Settings&lt;/a&gt; are the configurable options for your widget. The following diagram is from our docs:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aIo94bPz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2AB1u2e3h0qnmtk9t5" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aIo94bPz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2AB1u2e3h0qnmtk9t5" alt="" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Array schemas are collections of elements that allow you to have multiple settings as each array element can contain its own schema. Array schema types are like an “inception” of settings for widgets. This unlocks the ability to use tabs and sections inside an array type.&lt;/p&gt;

&lt;p&gt;Hidden settings are for settings you are making for the user that the user cannot interact with. These settings should be defined first in your widget template schema because they cannot interact with a tab or array. The use case here would be default things that you want the user to see when placing the widget that they override with other settings.&lt;/p&gt;

&lt;p&gt;We talked briefly about GraphQL powered widgets above. If you wanted to have users interact with the data that is retrieved from a GraphQL query, you could use the array type and the data filter on things like a product id or other parameter that is passed into the query as variables. This would give users the greatest flexibility when leveraging storefront data.&lt;/p&gt;

&lt;h4&gt;
  
  
  Convert a Custom Widget to a Widget Application
&lt;/h4&gt;

&lt;p&gt;So, you have a widget already. Congratulations! Now you want to turn that into an application. Where do you begin?&lt;/p&gt;

&lt;p&gt;First, create a Single-Click app. You can use this &lt;a href="https://developer.bigcommerce.com/api-docs/partner/getting-started/app-development/tutorials/quick-start"&gt;tutorial&lt;/a&gt; or the blog post linked above. Second, make a call to GET your widget template by it’s UUID and either apply that widget template to the authenticated storefront or POST a widget to using the widget template UUID to the authenticated storefront. Third, is use the widget update flow to version your widgets and ensure that merchants are alerted to updates in the control panel.&lt;/p&gt;

&lt;p&gt;This seems easy when it is one paragraph but there are a lot of steps in between. If you need help, reach out to us in the developer community spaces and we are happy to assist you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Widgets are a fun way to develop sleek solutions that merchants can actively engage within Page Builder. By creating widgets and widget applications you can unlock some serious functionality that is easily implemented by many merchants. There are so many wants and needs you can fulfill with a little widget-ingenuity.&lt;/p&gt;

&lt;p&gt;We can’t wait to see what you all create. Share your development with us at &lt;a href="https://twitter.com/BigCommerceDevs"&gt;@BigCommerceDevs&lt;/a&gt; on Twitter and in our developer community spaces.&lt;/p&gt;




</description>
      <category>frontend</category>
      <category>bigcommerce</category>
      <category>json</category>
      <category>ecommerce</category>
    </item>
    <item>
      <title>Introducing More Facets Per Category with Contextual Filters</title>
      <dc:creator>Lauren Clevenger</dc:creator>
      <pubDate>Thu, 14 Jan 2021 21:26:35 +0000</pubDate>
      <link>https://dev.to/bigcommercedevs/introducing-more-facets-per-category-with-contextual-filters-38o6</link>
      <guid>https://dev.to/bigcommercedevs/introducing-more-facets-per-category-with-contextual-filters-38o6</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UJ9cZvRS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AwA7Amd-2ua6KcXnBFagajw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UJ9cZvRS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AwA7Amd-2ua6KcXnBFagajw.jpeg" alt="" width="880" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  TL;DR
&lt;/h3&gt;

&lt;p&gt;Contextual Filters allow for faceted search implementation on a BigCommerce storefront. To learn more, keep reading about the latest search updates available to BigCommerce merchants and developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Contextual Filters
&lt;/h3&gt;

&lt;p&gt;Contextual filters are an enhancement to optimize how faceted search filters on categories. This feature allows developers to create a better user experience for customers that are shopping on a complex merchant catalog. Leveraging the Contextual Filter feature you can also create a better search experience for product categories. Developers can configure Product Categories to have different enabled filters. The search enhancements allow shoppers to filter by relevant criteria as seen in the GIF below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eFECwMSM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/786/0%2AleiFIB5QVql3kT3r" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eFECwMSM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/786/0%2AleiFIB5QVql3kT3r" alt="" width="786" height="637"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Developer Use Cases
&lt;/h3&gt;

&lt;p&gt;When leveraging contextual filters the ultimate goal is to enhance the shopping experience of a customer. The improved search experience for shoppers allows developers and merchants to create a more relevant set of search parameters, which simplifies the shopping experience. When a shopper can find a product more effectively and quickly, they are more likely to purchase that product. More purchases mean developers can deliver more to their clients.&lt;/p&gt;

&lt;p&gt;For example, if your merchant sold both shoes and bags, they would likely have some product attributes that are universal, such as color, fabric type, and designer. However, since shoes and bags have very unique features that don’t cross over, each would need its own attributes available to search by. Shoes may have attributes such as lace options, style (slip-on versus lace-up), and purpose (running versus basketball), whereas bags may have attributes such as number of straps, pockets, and volume.&lt;/p&gt;

&lt;p&gt;Using the suite of APIs released as part of Contextual Filters, developers can automate more processes related to the management of storefront search. An example that comes to mind is connecting a Product Information Manager (PIM) to a BigCommerce Storefront. The PIM is the source of truth for the product data and the following APIs unlock the ability to not only keep BigCommerce and the PIM in sync but also ensures that the PIM’s filters are recognizable and searchable for product categories managed in that software.&lt;/p&gt;

&lt;p&gt;Additionally, this unlocks a lot of creative solution-ing for implementations that require unique workflows. If the BigCommerce Control Panel user interface does not meet your development style you can now have options to work outside of that UI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features of Contextual Filters
&lt;/h3&gt;

&lt;p&gt;Developers can configure via API the settings for a Merchants user interface. In the &lt;a href="https://developer.bigcommerce.com/api-reference/store-management/settings"&gt;BigCommerce Developer API reference&lt;/a&gt; for Settings you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can “Get” and “Update” the Storefront search settings.&lt;/li&gt;
&lt;li&gt;You can get all the available filters as well as the default filters that are applied.&lt;/li&gt;
&lt;li&gt;You can update the enabled product filters.&lt;/li&gt;
&lt;li&gt;You can “Get” and “Upsert” the contextual overrides for enabled filters.&lt;/li&gt;
&lt;li&gt;You can “Delete” a contextual filter applied to a product.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus, many more settings that unlock search capabilities beyond the above like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sorting options values that are returned.&lt;/li&gt;
&lt;li&gt;Displaying names by a label for the storefront.&lt;/li&gt;
&lt;li&gt;Showing a number of values that are the best fit for the customer user group.&lt;/li&gt;
&lt;li&gt;Display options like the number of products returned from search.&lt;/li&gt;
&lt;li&gt;Areas of the user interface that you want to be collapsed by default and require the customer to engage and actively expand them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This feature includes the following set of filtering on Category, Brand or Search pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Product Options&lt;/strong&gt; filters by product options.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Fields&lt;/strong&gt; (Enterprise only) — filters by custom fields on products. Product options and custom fields that share the same name will be treated as a single filter. If names differ in case or spacing, they will be treated as different filters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Category&lt;/strong&gt; filters by product category or sub-category; this is only used on Brand and Search pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brand&lt;/strong&gt; filters by the product brand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt; filters by the base price of the product which does not include variant prices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rating&lt;/strong&gt; filters by product review rating and must be using BigCommerce’s product reviews.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally, &lt;strong&gt;Other&lt;/strong&gt; is a collection of other useful filters including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Filter the products with free shipping.&lt;/li&gt;
&lt;li&gt;Filter the featured products.&lt;/li&gt;
&lt;li&gt;Filter the products that are in stock.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What is the Settings API
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://developer.bigcommerce.com/api-reference/store-management/settings"&gt;Settings API&lt;/a&gt; is a set of endpoints that allows you to programmatically update elements of a store’s settings and configuration, which can affect the storefront or control panel experience. This new category of APIs expose settings that were previously only editable by a control panel user to public API consumers. These APIs are under active development and will be enhanced over time to progressively expose more control panel settings.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who Can Access Contextual Filters
&lt;/h3&gt;

&lt;p&gt;Contextual Filters is a feature enhancement to BigCommerce’s existing Product Filtering feature. Therefore, its availability is limited to stores that already have access to Product Filtering. This includes merchants currently on Pro and Enterprise plans, as well as developer sandboxes in use by our partners. Product filtering with support for &lt;a href="https://support.bigcommerce.com/s/article/Custom-Fields"&gt;Custom Fields&lt;/a&gt; is available to Enterprise plans only.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Contextual filters are a great way to add value to a merchant's storefront experience especially when they have a large catalog that makes traditional searching difficult. As a developer, you have options to use the Settings API to automate these processes or to enable customization on a merchant by merchant basis. Once in use, you can then leverage the default user interface or create custom user interfaces or widgets for your search components.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;API Documentation (&lt;a href="https://developer.bigcommerce.com/api-docs/store-management/settings/contextual-filters"&gt;Contextual Filters&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;API Reference (&lt;a href="https://developer.bigcommerce.com/api-reference/store-management/settings"&gt;Settings API&lt;/a&gt;, &lt;a href="https://developer.bigcommerce.com/api-reference/store-management/settings/search-filters"&gt;Search Filters&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.bigcommerce.com/s/article/Product-Filtering-Settings"&gt;Knowledge Base Article for the Control Panel User Interface&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.bigcommerce.com/s/group/0F913000000HLjECAW/bigcommerce-developers"&gt;Developer Community&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/BigCommerceDevs"&gt;Developer Twitter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>ecommerce</category>
      <category>search</category>
      <category>bigcommerce</category>
      <category>api</category>
    </item>
  </channel>
</rss>
