<?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>Forem: Rachael Thompson</title>
    <description>The latest articles on Forem by Rachael Thompson (@rayeethompson).</description>
    <link>https://forem.com/rayeethompson</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%2F456064%2F4c1662fe-91b0-4d11-903d-8e48a230235c.jpg</url>
      <title>Forem: Rachael Thompson</title>
      <link>https://forem.com/rayeethompson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rayeethompson"/>
    <language>en</language>
    <item>
      <title>What I learned from Postman's 30 Day Challenge about developer education, in just 3 days.</title>
      <dc:creator>Rachael Thompson</dc:creator>
      <pubDate>Thu, 13 May 2021 02:09:25 +0000</pubDate>
      <link>https://forem.com/rayeethompson/what-i-learned-from-postman-s-30-day-challenge-about-developer-education-in-just-3-days-139a</link>
      <guid>https://forem.com/rayeethompson/what-i-learned-from-postman-s-30-day-challenge-about-developer-education-in-just-3-days-139a</guid>
      <description>&lt;p&gt;Long before my time as a developer, I was a teacher. I developed curriculum, and cultivated young minds. I like to think that I know a good education program when I see one - a bit of a "connoisseur of fine learning", if you will. &lt;/p&gt;

&lt;p&gt;This weekend I began the  &lt;a href="https://blog.postman.com/introducing-30-days-of-postman-coding-challenge/"&gt;Postman 30 Day Challenge&lt;/a&gt; . I was genuinely interested, because I love, and use Postman almost everyday.  Also, based on the posts I saw in the community, people looked really into it. &lt;/p&gt;

&lt;p&gt;I am only on day 4, and what I have learned in 3 days has me stoked to continue. I have also noticed some nuances that have given me insight into how Postman tackles developer education.  Most importantly, I see how much they prioritize developer education. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An investment in knowledge always pays the best interest.  - &lt;strong&gt;Ben Franklin&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I didn't go into this challenge thinking about developer education. From the moment I started, I spiraled into teacher mode. I was dissecting their curriculum, lesson organization and educational philosophy. I appreciate when a curriculum is captivating, engaging and most of all fun. &lt;/p&gt;

&lt;p&gt;Postman clearly takes developer education seriously. Their passion for it is evident. It is embedded in their tooling, visible in their community, and they have projects that facilitate super users to become Postman evangelists. &lt;em&gt;The 30 Day Challenge&lt;/em&gt; showcases a fundamental understanding into why developer education is important. It displays how to incorporate different learning modalities, and takes the time to get it right; ultimately the product sells itself to a developer.  &lt;/p&gt;

&lt;h1&gt;
  
  
  Why does developer education matter?
&lt;/h1&gt;

&lt;p&gt;Developer education is usually seen as a form of product enablement, but can also serve as product marketing to a developer. As technologists, we have experienced the best and worst of technical enablement materials. Developer focused products should know that when developers are under-prepared to use their product, those developers often end up underwhelmed and frustrated. This results in developers dropping off and retooling. &lt;/p&gt;

&lt;p&gt;Avoid developer frustration by cultivating creativity, engaging users, and using your own product - like Postman does.&lt;/p&gt;

&lt;p&gt;We can help developers avoid frustration and product fatigue by creating enablement that is clever, attractive, and dogfoods everything from the developer documentation to advanced features. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Questions to consider at this point:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can you turn out creative use cases that require a developer to problem solve utilizing your tool and documentation? &lt;/li&gt;
&lt;li&gt;Is that use case relevant? &lt;/li&gt;
&lt;li&gt;By dogfooding, did we learn and fix issues that were not obvious before? &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think that by answering the questions above we can captivate a developer audience and ensure a positive narrative for our technical facing products.&lt;/p&gt;

&lt;h2&gt;
  
  
  Take the Postman 30 Day Challenge for an example...
&lt;/h2&gt;

&lt;p&gt;This challenge is a daily challenge, therefore, they are bite-sized and meant to be completed in about 45 minutes. So, if a developer was to actually take a lunch break... (I know, getting up from the keyboard is tough), it would be doable in that time frame. &lt;/p&gt;

&lt;p&gt;These challenges utilize the Postman product in its entirety. The documentation is embedded; by following the step by step instructions you walk through various product features. Each day builds on skills that you have previously gained (from my 3 days of experience). The documentation provides a scenario that you are to solve, and the automated tests allow you to get instant feedback on your progress. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The best practices here are:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the education process to instill "gritty" skills like utilizing the documentation. &lt;/li&gt;
&lt;li&gt;Build a path towards mastery that allows new and established users a way to grow. &lt;/li&gt;
&lt;li&gt;Provide instant observations of success or failure, don't allow the user to go on too long without feedback.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Discovering how to best educate developers can be difficult.
&lt;/h1&gt;

&lt;p&gt;Developers tend to be life-long learners. We can also become easily distracted by the latest technology trends. If the tutorial or program we are using to learn something loses its appeal it can be hard to get our focus back without significant effort. This is why having programs that are engaging is important. We need to feel involved and get engrossed in the curriculum. &lt;/p&gt;

&lt;h2&gt;
  
  
  How the Postman 30 Day Challenge captured my attention.
&lt;/h2&gt;

&lt;p&gt;Well they had to go and call it a challenge, and I can't back down from a challenge.&lt;/p&gt;

&lt;p&gt;It wasn't just the name that hooked me. It was the format. I was using the tool, but I was also using core product concepts, and able to apply my learning. Using a top notch tool to its fullest has kept me coming back to learn more.  &lt;/p&gt;

&lt;h1&gt;
  
  
  Remember that great things take time.
&lt;/h1&gt;

&lt;p&gt;I have read that,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Good Things take Hustle. &lt;strong&gt;Great Things Take Time.&lt;/strong&gt; - A smart person on the internet&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I feel like that goes for most things; an education program definitely makes the list. One of the things that inevitably happens when I have a great educational experience is that I think to myself, "How can I do that?". &lt;/p&gt;

&lt;p&gt;Recreating an experience like the Postman 30 Day Challenge will take a lot of consideration, care for the user, and time. &lt;/p&gt;

&lt;p&gt;However, I challenge you to pause before pushing out a developer education program that is not robust enough or hasn't been thoroughly tested. Knowing the developer persona - if you lose those early adopters it may be hard to get them back. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My question to you...&lt;/strong&gt;&lt;br&gt;
Is it worth the risk to have an education program that is lackluster, or should you take the time to really make it shine? &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Developer education is not an easy task. To all the developer curriculum and content creators out there - I applaud you for doing the hard work. &lt;/p&gt;

&lt;p&gt;If you are struggling to start a developer education program, I highly suggest going through the programs at Postman. They are some of my favorite courses and I draw a lot of inspiration from them. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The big highlights that I want to call out here are:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Know your audience, go deep into their persona. &lt;/li&gt;
&lt;li&gt;Get creative with your example use cases.&lt;/li&gt;
&lt;li&gt;Engage the user and offer safe spaces for them to connect with others. &lt;/li&gt;
&lt;li&gt;Use your product and test your training. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you start here, and give yourself time you will have a top notch developer training program for your product that might even rival Postman. &lt;/p&gt;

</description>
      <category>developer</category>
      <category>education</category>
      <category>api</category>
      <category>postman</category>
    </item>
    <item>
      <title>Alexa, Where Will Ecommerce Be In 2022?</title>
      <dc:creator>Rachael Thompson</dc:creator>
      <pubDate>Fri, 30 Apr 2021 11:14:29 +0000</pubDate>
      <link>https://forem.com/bigcommercedevs/alexa-where-will-ecommerce-be-in-2022-4gd6</link>
      <guid>https://forem.com/bigcommercedevs/alexa-where-will-ecommerce-be-in-2022-4gd6</guid>
      <description>&lt;h1&gt;
  
  
  Alexa, Where Will Ecommerce Be In 2022?
&lt;/h1&gt;

&lt;p&gt;I have been interested in the development of Internet of Things (IOT) applications for a while now. It amazes, confounds, and excites me. I like to think about how people 100 years ago would marvel at such technological advancements and how people 500 years ago would prosecute us for witchcraft.&lt;/p&gt;

&lt;p&gt;If you think about it, we all look like modern wizards. We walk around talking to objects that make things happen. Instead of wands, they are various types of hardware; instead of spells, they’re invocations to illicit scripts.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Alexa, order my fav from Pizza Hut.” &lt;br&gt;
Alexa responds, “I have ordered my fav from Pizza Hut.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Twenty minutes to an hour later you have a pizza, that is your favorite, on your doorstep. You can’t tell me that is not magic. IOT is magical. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0bz09q9sllvdc08iszf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0bz09q9sllvdc08iszf.gif" alt="Magic Gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Throughout this post, I will explain the magic that is IOT and we will answer, &lt;br&gt;
“Alexa, where will ecommerce be in 2022?”.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Five W’s of IOT
&lt;/h2&gt;

&lt;p&gt;I don’t want to ruin the magic that is IOT, but at the end of the day - it’s technology. Let’s review the Five W’s: What, Why, Who, Where, and When. &lt;/p&gt;
&lt;h3&gt;
  
  
  1. What is IOT?
&lt;/h3&gt;

&lt;p&gt;After StackOverflow, my favorite site as a developer is Wikipedia. Wikipedia defines the &lt;a href="https://en.wikipedia.org/wiki/Internet_of_things" rel="noopener noreferrer"&gt;Internet of Things (IOT)&lt;/a&gt; as, “A network of physical objects -- “things” that are embedded with sensors, software and other technologies for the purpose of connecting and exchanging data with other devices and systems over the internet”. &lt;/p&gt;

&lt;p&gt;For our purposes at BigCommerce, these are devices that can take in a verbal input (speech) and relay that information to a server containing a script that can be invoked to call an action or relay data from BigCommerce stores. Since BigCommerce is Open SaaS and API driven, nearly every action that you can accomplish via storefront can be accomplished via a voice assistant. Therefore, using IOT you can build applications that surface products, allow orders and relay shipping information to users. &lt;/p&gt;
&lt;h3&gt;
  
  
  2. Why should I build IOT applications?
&lt;/h3&gt;

&lt;p&gt;As mentioned above, this technology allows people to access BigCommerce stores using their voice. This means that you can offer a valuable add to a BigCommerce merchant, the ability to be even more accessible. If you can architect your decision tree well, you can enhance the shopper experience for people who are differently abled and make the lives of busy people wanting to make a quick purchase even easier.&lt;/p&gt;

&lt;p&gt;As the omnichannel evolution in commerce continues to grow, developers need to understand how to enable these experiences in order to keep up with what will be rising demand.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Who are the big IOT influencers?
&lt;/h3&gt;

&lt;p&gt;There are three big IOT influencers in the voice assistant space. &lt;br&gt;
They are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alexa by Amazon.&lt;/li&gt;
&lt;li&gt;Google Assistant by Netflix. Just kidding. It’s by Google.&lt;/li&gt;
&lt;li&gt;Siri by Apple. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  4. Where can I learn about these platforms?
&lt;/h3&gt;

&lt;p&gt;Here are the main learning spaces for the above platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn the &lt;a href="https://developer.amazon.com/en-US/alexa/alexa-skills-kit/start?sc_category=paid&amp;amp;sc_channel=SEM&amp;amp;sc_campaign=SEM-GO^Brand^All^LD^Professional_Developer^Evergreen^US^English^Tex&amp;amp;sc_publisher=GO&amp;amp;sc_content=content&amp;amp;sc_detail=379690615386&amp;amp;sc_funnel=convert&amp;amp;sc_country=US&amp;amp;sc_keyword=alexa%20skills%20kit%20tutorial&amp;amp;sc_place=&amp;amp;sc_trackingcode=e&amp;amp;sc_segment=&amp;amp;sc_medium=paid%7CSEM%7CSEM-GO^Brand^All^LD^Professional_Developer^Evergreen^US^English^Tex%7CGO%7Ccontent%7C379690615386%7Cconvert%7CUS%7Calexa%20skills%20kit%20tutorial%7C%7Ce%7C&amp;amp;gclid=Cj0KCQjwpdqDBhCSARIsAEUJ0hP-NseIhGYEvOP8ehY23n61mIKBG1AlXmXmiLOLPxYAJcQUVUVB1QQaAqooEALw_wcB" rel="noopener noreferrer"&gt;Alexa Skills Kit&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Take &lt;a href="https://developers.google.com/assistant" rel="noopener noreferrer"&gt;Actions on Google&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Enable &lt;a href="https://developer.apple.com/documentation/sirikit" rel="noopener noreferrer"&gt;SiriKit&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  5. When should IOT be part of your omnichannel strategy?
&lt;/h3&gt;

&lt;p&gt;Personally, always… However, this level of custom development might not be the right fit, budget wise, for some merchants. That’s where creating an app like &lt;a href="https://blu.ai/" rel="noopener noreferrer"&gt;Blu.AI&lt;/a&gt; could make IOT more accessible to the greater BC ecosystem. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developers unite! Democratize IOT for SMB merchants!&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Now that I have set forth the rally cry, let’s dive into how you can actually develop an Alexa Skill. &lt;/p&gt;
&lt;h2&gt;
  
  
  How to create an Alexa Skill
&lt;/h2&gt;

&lt;p&gt;Alexa Skills are very easy to develop. Their SDK supports both JavaScript and Python. Additionally, most configuration is done in a JSON file, which is a very developer-friendly feature.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/eKNrUbDJuFuaQ1A37p/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/eKNrUbDJuFuaQ1A37p/giphy.gif" alt="Impressive, Very Nice"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another developer-friendly feature is the Amazon Developer Console for Alexa Skills. This allows you to avoid some of the initial development steps in code. You can opt to use the slick UI. This will also allow you to create a project that is “Alexa Hosted” which means that you do not have to go into AWS and standup services. &lt;/p&gt;

&lt;p&gt;This tutorial will use that console. At the end, I will suggest some extensions for VS code to enable development locally. &lt;/p&gt;
&lt;h3&gt;
  
  
  1. Become an Amazon Developer.
&lt;/h3&gt;

&lt;p&gt;First, you need to have a developer account through Amazon. After checking out &lt;a href="https://developer.amazon.com/en-US/alexa/alexa-skills-kit/start?sc_category=paid&amp;amp;sc_channel=SEM&amp;amp;sc_campaign=SEM-GO^Brand^All^LD^Professional_Developer^Evergreen^US^English^Tex&amp;amp;sc_publisher=GO&amp;amp;sc_content=content&amp;amp;sc_detail=379690615386&amp;amp;sc_funnel=convert&amp;amp;sc_country=US&amp;amp;sc_keyword=alexa%20skills%20kit%20tutorial&amp;amp;sc_place=&amp;amp;sc_trackingcode=e&amp;amp;sc_segment=&amp;amp;sc_medium=paid%7CSEM%7CSEM-GO^Brand^All^LD^Professional_Developer^Evergreen^US^English^Tex%7CGO%7Ccontent%7C379690615386%7Cconvert%7CUS%7Calexa%20skills%20kit%20tutorial%7C%7Ce%7C&amp;amp;gclid=Cj0KCQjwpdqDBhCSARIsAEUJ0hP-NseIhGYEvOP8ehY23n61mIKBG1AlXmXmiLOLPxYAJcQUVUVB1QQaAqooEALw_wcB" rel="noopener noreferrer"&gt;“Getting Started with Alexa Skills Kit”&lt;/a&gt; you can click on the blue “Console” button. This will direct you to login or create an account. &lt;/p&gt;

&lt;p&gt;Follow the on screen instructions to create your account. The initial screens should look like the following gif.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1us4cjn8NFEWEVTbnu3iPUHaUX6RMDsSa/view?usp=sharing" rel="noopener noreferrer"&gt;Gif of Sign Up&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Build a Skill
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F0%2A7SXaAukKa42U1xEa" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F0%2A7SXaAukKa42U1xEa" alt="Slide Building a Skill"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To build a skill it requires understanding how Alexa constructs the frontend user interface. This auditory interface has four parts. &lt;br&gt;
They are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Invocation&lt;/li&gt;
&lt;li&gt;Intent&lt;/li&gt;
&lt;li&gt;Slots&lt;/li&gt;
&lt;li&gt;Utterances&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An invocation is the app or skill that the user is requesting. The invocation or skill name is the only thing that cannot be changed post production. It is important to make sure that you are naming this well. Make sure that you are thinking about how the words are spelled as well as sound. I made the mistake of using “Raye’s Store”. However, Alexa could never find that skill because “Raye’s Store” in JSON was “rayes store” which when pronounced should be “ray-es”. I found that phonetic spelling for invocation names worked best. &lt;/p&gt;

&lt;p&gt;Intents are basically commands. Alexa Skills utilize an MVC architecture. Therefore, intents should align to a method in your controller with a similar name. This way when Alexa is running the skill the user feels like they are on a path. Whittling their way to an ultimate goal. &lt;/p&gt;

&lt;p&gt;You may be wondering, how does Alexa handle variables? &lt;/p&gt;

&lt;p&gt;This is where slots and utterances come into play. Slots are variables that that user might say to access specific functionality. For example: “Alexa, tell me the weather in Austin.” Austin is a slot because that could be represented as &lt;code&gt;{{city}}&lt;/code&gt; or even more generally as &lt;code&gt;{{location}}&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Utterances are another type of variable; the variable of word choice. Users depending on region or preference could request a skill differently. Utterances allow you to teach Alexa the various ways your users may request the same intent. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F0%2Avan8nOpO1sC7m8Bl" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F0%2Avan8nOpO1sC7m8Bl" alt="Slide Utterances"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, there are many ways to ask for the same thing. Utterances help your users avoid frustration. The more utterances you can feed into the model, the better. &lt;/p&gt;

&lt;p&gt;Now that you know the pieces, putting them together is a breeze in the Amazon Developer Console. Following the steps laid out in the UI, you set the invocation name by entering text in a text field. Then you can work on various intents. By default there are several required by Alexa for navigation and system purposes. You will want to have at least one intent that maps to custom functionality in the controller. That is all that is required. Slots and Utterances are optional. They are easily updated in a JSON file that is editable online.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F0%2AFSmubBPoZS6HID2j" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F0%2AFSmubBPoZS6HID2j" alt="JSON Editor"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Code a Skill.
&lt;/h3&gt;

&lt;p&gt;Alexa offers the ability to be low code for UX development, however,you still have to get your hands dirty when it comes to hooking up the frontend to your backend. They offer a nifty online editor that is directly linked to services in AWS. This is convenient so that you don’t have to navigate between AWS and Alexa Developer Console. This editor shows you your project and it’s dependencies. I chose to use a Node.js project. They also offer Python as an option. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F0%2A_05tmSWqBKLpP4gW" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1400%2F0%2A_05tmSWqBKLpP4gW" alt="Code Areas Alexa Console"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Per usual, the Node.js project’s main file is index.js. This file is generated for you with all the required handlers and acts as the controller as previously noted this app utilizes an MVC architecture. You can add custom functions here directly, as I did for this proof of concept; you can also create classes and functions that are exported to be utilized in your index.js. For a larger scale application, I recommend the later option to give you the ability to scale. &lt;/p&gt;

&lt;p&gt;To quickly prove that I could connect to a BigCommerce store, I opted to call the BigCommerce catalog API directly from the index.js. As I go back and update this further, I will ensure to follow best coding practices and remove all keys and place them in key vaults  and .env files. I will also split all API calls into their own classes and export them. The following shows the API call I made to get featured products from a BigCommerce test store.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
function httpGet() {
  return new Promise((resolve, reject) =&amp;gt; {
    var options = {
      host: "api.bigcommerce.com",
      path:
        "/stores/ltgn22trch/v3/catalog/products?include_fields=name&amp;amp;is_featured=1",
      method: "GET",
      headers: {
        "X-Auth-Token": "awj6qjj90rrt899pq5kff6n4ypagp5k",
      },
    };

    const request = https.request(options, (response) =&amp;gt; {
      response.setEncoding("utf8");
      let returnData = "";

      response.on("data", (chunk) =&amp;gt; {
        returnData += chunk;
      });

      response.on("end", () =&amp;gt; {
        resolve(JSON.parse(returnData));
      });

      response.on("error", (error) =&amp;gt; {
        reject(error);
      });
    });
    request.end();
  });
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For those new to BigCommerce you have to use a storehash and authorization token that you generate in the stores control panel. The store hash looks like this, &lt;code&gt;/stores/ltgn22trch/v3/catalog/&lt;/code&gt;. You will see that in the file that downloads when you generate your API keys. Using a simple httpGet() function was the easiest way to get started. This will send the request and return a response. You can then get the information you need from the response in your handler, or parse the response and hold what you need in a constant variable. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🤯  Quick Tip: In your httpGet() for the &lt;code&gt;host&lt;/code&gt; don’t add the “https://” this will cause silly errors and several minutes of frustration while googling the error. Trust me and save yourself a trip to StackOverflow. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Your handler function that utilizes the data returned from BigCommerce can look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const FeaturedProductIntentHandler = {
  canHandle(handlerInput) {
    return (
      Alexa.getRequestType(handlerInput.requestEnvelope) === "IntentRequest" &amp;amp;&amp;amp;
      Alexa.getIntentName(handlerInput.requestEnvelope) ===
        "FeaturedProductIntent"
    );
  },

  async handle(handlerInput) {
    const response = await httpGet();
    console.log(response);

    return handlerInput.responseBuilder
      .speak(`Okay, here is what Raye has for you ${response.data[0].name}`)
      .reprompt("Would you like to hear the featured product?")
      .getResponse();
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code, most of this is Alexa default code for creating a handler. I only added an async handlerInput for getting the data from BigCommerce. I then took the response from BigCommerce and asked for the first item name in the data array. If you wanted Alexa to say all featured products, you could loop over that data and have Alexa read all the names, just have the loop return a comma delimited string. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎉 This is all the code you need to create a simple Alexa Skill app that will read aloud the featured products from a BigCommerce Store. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4. Test a Skill.
&lt;/h3&gt;

&lt;p&gt;It is very easy to test these apps using either the Alexa Developer console or the VS Code Alexa Skills Kit extension. In the video below, you can see the Alexa Developer console in action. You can type commands or use voice commands. &lt;/p&gt;

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

&lt;p&gt;It is important to notice what happens when you speak. Are there words that Alexa can’t understand? Make sure to add these words and phrases to your utterances array. You should also review if you are finding yourself wanting to ask for more than one thing, this may be a good place to use a slot. You can then add scope for the next iteration to include the slot. I found many things that I would like to write up as user stories while testing. &lt;/p&gt;

&lt;h3&gt;
  
  
  5. Deploy a Skill.
&lt;/h3&gt;

&lt;p&gt;The last thing you need to do is deploy your skill. You do this in the console or via CLI. The code will be reviewed by automated tests. Should Amazon find an error - they will not deploy your application. &lt;/p&gt;

&lt;p&gt;As stated before, make sure your invocation name is correct. This is the only thing you cannot change after the skill is deployed. &lt;/p&gt;

&lt;p&gt;Just like that, you are now a BigCommerce and Amazon developer. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/wrzf9P70YWLJK/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/wrzf9P70YWLJK/giphy.gif" alt="High Five"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Want to see a sample app?
&lt;/h2&gt;

&lt;p&gt;If you want to see the sample application source code from this tutorial, it is located on &lt;a href="https://github.com/RayeEThompson" rel="noopener noreferrer"&gt;my GitHub&lt;/a&gt;. You can view it in the repo &lt;a href="https://github.com/RayeEThompson/BigCommerceAlexaSkill" rel="noopener noreferrer"&gt;BigCommerceAlexaSkill&lt;/a&gt;. I have included a README.md that includes tips to get started as well as ideas for what you can build with it. Below I will discuss how I determined what to build, what I learned and how I plan to iterate on this concept. &lt;/p&gt;

&lt;h3&gt;
  
  
  Determining the POC
&lt;/h3&gt;

&lt;p&gt;I had no idea what I wanted this app to do at first. I got into the role of the user. If I was going to ask Alexa anything about a favorite store, I would want to know what product they think is amazing. This led me to look at the BigCommerce catalog and the featured products list. This was small enough in scope to satisfy the requirements of my POC without taking up a whole sprint. There are many small apps that could come out of just using the BigCommerce catalog.  &lt;/p&gt;

&lt;p&gt;If you are wanting to do your own, think small and scale up. This will help you get comfortable with this platform. You will iterate much faster each time as you learn the Alexa Skills Kit development patterns.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Learned
&lt;/h3&gt;

&lt;p&gt;I learned that IOT while magical is very accessible to developers. Companies want developers to expand the use of these platforms. Therefore, they make it easy to get started and iterate. I loved this project because it was just so fun to code and test. &lt;/p&gt;

&lt;h3&gt;
  
  
  How I Would Iterate
&lt;/h3&gt;

&lt;p&gt;There are many things I can think of to make this app more robust. I would love to have all featured products read aloud but I would also want to make these items purchasable. This is completely doable as long as you use Amazon Pay. &lt;/p&gt;

&lt;p&gt;The last thing I would also like to do is convert this from using REST to using GraphQL. That way it would be easier to add more scope to the application in the future. Queries in GraphQL are my preferred method for gathering data from the BigCommerce storefront. I like how much control I have over the returned data. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This was a really fun project that I enjoyed creating. I truly believe that omnichannel commerce is going to take the lead in 2021 and on into 2022. One of those channels should definitely be the Alexa platform. &lt;/p&gt;

&lt;p&gt;So, Alexa...where will ecommerce be in 2022? &lt;br&gt;
The answer is everywhere. &lt;/p&gt;

</description>
      <category>howto</category>
      <category>alexaskillskit</category>
      <category>bigcommerce</category>
      <category>iot</category>
    </item>
  </channel>
</rss>
