You Don't Need to Quit Your Job to Make ⇒

I’m always in need of a good reminder that browsing social media, watching YouTube or Netflix does not contribute to goals of making something. The risk of our need to decompress after a long day at work can turn into an entire evening of watching Netflix.

But what if we stopped imaging “me time” as relaxation time, but instead exactly as it is titled — time to focus on yourself and align with your goals. If you need rest, then rest. But if your goal is to one day become an entrepreneur, a significant portion of “me time” should be invested in getting there since it won’t happen on its own. “Me time” shouldn’t just be non-tiring activity, but anything that helps an individual get to the future state that they wish to be in.
Source: https://blog.stephsmith.io/you-dont-need-to-quit-your-job-to-make/

Seeking The Productive Life ⇒

This is a fascinating blog post from Stephen Wolfram on his Personal Infrastructure and how he organizes himself. I find that I’m always on the lookout for better ways to be organized, whether it’s new software to keep files and other data organized or a better way to store physical documents. I can be a bit obsessive about it.

I believe I first thought seriously about how to organize my files back in 1978 … And over the past 40 years I’ve basically gone through five generations of filesystem organization, with each generation basically being a reflection of how I’m organizing my work at that stage in my life.

I did love, and can certainly relate, to his comment about connecting to projectors:

And it’s amazing how random it is. In places where one can’t imagine the projector is going to work, it’ll be just fine. And in places where one can’t imagine it won’t work, it’ll fail horribly.
Source: https://blog.stephenwolfram.com/2019/02/seeking-the-productive-life-some-details-of-my-personal-infrastructure/

Elephants In The Room ⇒

This is something that a lot of us struggle with, me included. It’s time to start embracing conflict and make better products.

Why do people sitting around a table keep their doubts to themselves? Much of the hesitation boils down to conflict avoidance and always trying to keep everyone happy
Source: https://medium.com/positiveslope/kill-the-elephants-in-the-room-before-they-kill-you-9ccfbcc429fb

Over-Engineering Side Projects ⇒

A great reminder on not putting too much effort into the infrastructure of our side projects.

I’ve fallen into this type of busy-work before:

… focus too much on this initial plan and you risk falling down the ‘project management’ rabbit hole: writing user stories, creating backlogs and finding tools for a project that you haven’t even started, let alone need copious amounts of rigid management for
Source: https://elsyms.com/the-art-of-over-engineering-your-side-projects/

A Simple Plugin Example

The latest version of Sitecore Commerce was released back in January, with version 8.2.1. An update to that release is expected soon, but I thought I’d discuss some of the new capability around the plugin architecture.

We wanted to make the process of adding your own custom business logic as easy as possible. Obviously, this is something that a developer is often required to do in an implementation. No solution is perfect out of the box.

Actually, the entire Commerce engine is based on plugins so a customer can chose which modules they require for their implementation. It’s called opt-in complexity and provides quite a bit more deployment flexibility.

If you download the Release Package, an SDK is also provided which contains a customer sample solution. The solution contains a couple of existing plugins, and a Visual Studio project template for building your own.

Shared Cart Plugin

I wanted to create a simple plugin, just to show how it’s done. The requirement is to be able to share a shopping cart across multiple sites, but the CSR and fulfillment process needs to know what store the product was purchased from. Here’s what I did:

When the product is added to the basket, I check the current context and add the current shop name to the new component:

//Get shopname from context
var shopname = context.CommerceContext.GetObjects<Shop>().FirstOrDefault().Name;

//Add component to CartlineComponent
arg.GetComponent<SharedCartLineComponent>().ShopName = shopname;

Now I need to display this value in the Customer & Orders Manager when a CSR looks at the line item details

if (line.HasComponent<SharedCartLineComponent>())
{
var sharedCartLineComponent = line.GetComponent<SharedCartLineComponent>();
//Add shop name property to the line item view
lineEntityView.Properties.Add(new ViewProperty { Name = "ShopName", DisplayName = "Store", IsReadOnly = true, RawValue = sharedCartLineComponent.ShopName });
}

Be sure to check out the full code example on GitHub, specifically ConfigureSitecore.cs. This is where your plugin functionality gets injected into the Commerce Engine.

Documentation on plugins is a work in progres, but in the meantime, the samples in the SDK (and this one) will definitely give you an idea of how it’s done.

Cross posted on my Sitecore Blog, The Commerce Experience

Every Song Considered

I finally released a little side project. I’ve started so many but just never finished any of them. Either I lost interest, or something changed along the way that made me rethink the idea altogether.

NPR

All Songs Considered is a fantastic podcast by the good folks at NPR. I’m a big fan of Bob and Robin and the music they (and others) share on the show. It introduces me to a lot of the music I end up listening to. The show’s blog posts on the NPR site don’t always include music, so I wanted a way to bring all the shows together that contained song lists and provide a consistent way to listen to them.

With the help of the NPR API I was able to easily get a list of the shows and the attributes that go along with each. Apart from having to deal with inconsistencies in the data, a complete list of All Songs shows containing song lists was relatively straightforward to get. The next step was to display the list of songs, with artist and album information and a small image of the album cover. Previewing the song was tricky as this data wasn’t always avaialble.

Spotify to the rescue

With their extensive set of APIs, I was able to get the song preview I was looking for. It would have been great to play the entire song, but for now the preview would do. There was a problem though. There was no common unique identifier between what I was getting from NPR and what I needed to get accurate data from Spotify.

The UPC was my first try, but for some reason, they both use different UPCs to identify albums. I had to resort to searching against the Spotify API with artist, album and song information. In most cases, this method returns accurate results but there are edge cases where it might not. I haven’t seen this behaviour yet.

The Resulting MVP

It’s certainly not going to win any design awards, but does what it’s supposed to.

What’s Next

I am in the process of building some new functionality that will allow you to create Spotify playlists based on selected songs.

Update: July 2017

Given some changes to the NPR API (they’ve deprecated the Stories API), I’ve taken the site down until I get a chance to make the necessary changes.

Ecommerce Trends - No. 3

The state of mobile web isn’t what it should be and I like that others are pointing out this lack of usability. There are two such articles below, essentially warning us that we need to focus more on making these experiences better for customers. After all, the number of people using mobile browsers is only going to increase.

Auto-Detect ‘City’ and ‘State’ Inputs Based on the User’s Postal Code (Baymard Institute)

There are still many sites that could vastly improve their mobile experience. One such example, is reducing the complexity of the checkout process. According to research, there are twice as many form fields as necessary. One suggestion in this article that I really like is to auto-fill the state and province fields based on the zip or postal code entered by the user. Even with the fields out of their traditional order (zip code first) users found that to be a great way to save time and reduce the complexity of the checkout.

How to overcome shopper hesitations to buying gifts online (Internet Retailer)

Ready for another new technology term? Gift Commerce or G-Commerce is used to describe the process of buying a product as a gift for someone else. Gift card sales are very strong, but some just don’t like the impersonal nature of buying someone a gift card. The article is about offering new features (and products) that cater to the gift buyer, like a gift guide, gift suggestions and gift wrapping. But it’s hard to buy a gift for someone when you need to know a size, favourite colour or even the correct shipping address in some cases. The answer? Get them to pick for themselves.

4 takeaways from NRF’s Big Show 2017 (Retail Dive)

Other than 3 full days of standing, having interesting conversations with customers and booth swag, there were some interesting takeaways from the show. Retail Dive highlights these, but definitely two that top my list are more effort around omnichannel scenarios and thinking more like a digital native.

Your Mobile Website Sucks (Forrester)

This a great part 2 to the first in the series, A Drunk History of your Mobile Strategy. Of course, you have to access the research to really dig into the details, but these posts are a good start. A mobile strategy is not simply making your desktop site responsive, but addressing what exactly a customer is looking for when they browse your site from a phone or tablet. By 2019, 59% of web traffic will be mobile so it’s time to take a different approach to mobile.

7 Successful E-Commerce Companies That Made It Big With Content Marketing (Inc.)

Content marketing on your e-commerce site can drive addtional revenue, increase brand loyalty and also promote brand awareness. A couple of brands in this article have some great ideas on how to accomplish this. My favourite is Beardbrand, fostering a community of users around the idea of urban beardsmen!

Ecommerce Trends - No. 2

The second series of ecommerce links discusses interactive email, products-as-a-service and a few posts on user experience.

2017 Will Be The Year Of Interactive Email (Medium)

The app market is over saturated and fewer people are downloading new apps. Email has the opportunity to become the next big thing for developers. Content creators get more engagement out of their email newsletters than other methods. The article discusses an example of an interactive shopping cart, that allows users to make changes to their basket and even view product details.

Product-as-service: A necessary evolution (Future of Ecommerce)

People are expecting more value from a product they purchase. Manufacturers or vendors need to evolve to offering an integrated product and service offering. “Manufacturers transition from selling physical products to selling the business outcomes the products will deliver.” (from an additional article)

The top four e-commerce elements to A/B test (Internet Retailer)

Really, why would you guess at what your customers like if you could find out for certain? Test pricing, because a lower price may not actually sell more products. Is it Add to Cart or Buy Now? The wording and UI experience make a difference in whether or not the customer takes that final step.

9 Crucial – But Overlooked – Aspects of Mobile eCommerce UX (Lemonstand)

Based on a Baymard Institute mobile usability study, it was found that many sites don’t honour some of the standard mobile features on their mobile-enabled webites. One of the most obvious for me is the ability to take advantage of the proper mobile keyboard (based on the field you’re in) and disabling auto-correct during the checkout process.

How Layout Bugs Keep Haunting E-Commerce Sites (Baymard Institute)

Even some of the biggest names in ecommerce are haunted by layout bugs, either in a traditional desktop browser or on a mobile device. They don’t purposely deploy sites with these bugs, but just that they have a harder time identifying them. Server crashes are easily logged and monitored, while layout bugs are not as easily surfaced.