Best Buy Remix Developer Blog
RSS FeedUpdated Blog
If you have landed at this blog, please click on through to our new updated blog.
Thank you and sorry for the inconvienience.
Remix Team
Holy cow, Slashdot!
The Finance and Commerce article got linked up by Slashdot, which is resulting in a notable increase in signups.
http://tech.slashdot.org/article.pl?sid=09/01/26/2240255
Remix in the news
Two great pieces appeared online today, both about Remix.
First is an excellent article from Finance and Commerce about what Remix means to Best Buy.
http://www.finance-commerce.com/article.cfm/2009/01/27/Bestbuycom-seeks-wider-Web-footprint-Electronics-retailer-hopes-API-technology-will-boost-sales-and-
Second is a write-up on using Ruby and HTTParty to consume web services. Fascinating stuff. :)
http://www.ioncannon.net/ruby/91/using-ruby-and-httparty-to-consume-web-services-the-easy-way/
- Kevin
Remix Portal Maintainence
This Saturday morning, January 10 the Remix developer portal will be offline. The API wil be functioning as per usual and there will be no disruption to API calls. The team here at Remix is working hard on portal design, the affilaite program and in making your user experience better. The portal will only be down for a short period from 9 am to 9:30 am EST. Thank you for your patience and for being on the ground floor with us here at Remix. If you need anything please feel free to email keith.burtis@bestbuy.com.
Thank you - Keith
UPDATE:
Maintenance is over.
- Kevin
Cool Product Look-up through the Twitter Tubes
Recently, developer Omar Abdelwahed has been working on a product look-up tool that combines the powerful Best Buy Remix API along wih the Twitter API. Omar has created an uber-cool application that allows you to look up items from the Best Buy product catalog using what he calls a 'Twitter bot'. Here's how to use it.
First and foremost you need a twitter account. You can do that easily by going here: Twitter Sign up ......ok great, now that you have a twitter account you will want to follow @BBYRemix by going to the BBYRemix twitter page and clicking on follow, or by sending the command "follow bbyremix" to Twitter.
Next is to send @bbyremix a question. It needs to know a few things.
- that you want it to "find" something
- what kind of thing you want it to find
- hardgoods (TVs, computers, appliances, furniture, and so on), abbreviated to "hard"
- software, abbreviated to "soft"
- music
- movies
- games
- the name of the thing
- where you want it to find that thing, if you are looking for a product at stores
The way Omar describes this in the documentation is:
To query the Twitter bot, these calls must be made exactly as you see them: "@bbyremix find [category] [product name OR sku#] near [postal code, distance]"
Here is a sample query, diagrammed out:
In the query graphic above you will see that the message is directed @BBYRemix , then you see that 'find hard' is the product type; hardgoods. After product type the actual product is listed 'Xbox 360' followed by 'near 14226' a zipcode location, and finally by '25' the search area or distance around the zip code.
Here is the answer:
In just a few seconds I was alerted with a message back from the 'Twitter Bot' that the XBox 360 was available in my local area and it provided a link for more information. This is a great example of taking the information in Remix and making it generally available. Nice work, Omar.
--Keith
Found: Community Manager
We've been looking for a community manager to help us make Remix into something very cool, and our search is over. We've asked Keith Burtis to join our team. Keith is @keithburtis on Twitter, and his web site is at www.magicwoodworks.com). Keith's not only a passionate social media evangelist and podcamp speaker, he's also an accomplished artist.
We have him in the bunker now watching training videos. Once's he fully programmed to mindlessly repeat our corporate line, we'll let him loose.
Kidding!
Look for Keith to begin posting here and in the Forums within the next couple of days. If you see him, say hi for me.
Wanted: Community manager
We’re seeking a Community Manager to become the voice of Remix. We need a dynamic and creative person to represent the company by answering questions, spreading the Remix message, and seeking out issues on blogs, message boards, forums, and social networking sites. We need someone who is passionate about assisting customers, and a resourceful problem-solver. Providing feedback and insights from our community to the rest of the project team is an essential component of this role.
Responsibilities:
1. Maintain the site
- Proactively manage the developer forum – assist users, deal with spammers, and ensure that complaints, concerns and questions are responded to in a timely manner (including bringing other team members into the process)
- Monitor the primary inbound email address and ensure appropriate and timely responses
- Author content – blog posts, articles, podcasts, videos, screencasts, tweets, whatever medium you want to use – to communicate with our users about what we are doing and how it will affect them
- Serve as a “gardener” for the wiki – review new submissions, fix spelling and grammatical errors and implement formatting standards
- Establish community engagement metrics & report on them on a monthly basis including recommendations for improving the engagement of the community
2. Grow the community
- Identify & engage external advocates
- Proactively escalate issues, observations, opportunities, and insights to the project team
- Communicate issues, opportunities and insights to the company at large.
3. Grow your skills and career
- Stay up to date on new social media tools, best practices and how other organizations and companies are using them, so that the company can continue to be an early adopter of these technologies.
- Participate in professional networking by following the prominent bloggers and online writers & attending events.
Qualifications:
- You have moderated a forum for at least six months.
- You have worked with website developers in the past or have developed website content.
- You love technology and learning about it.
- You write a blog. About anything. Penguins, Macs, NASCAR, anything.
- You love helping people and find it rewarding to solve people’s problems. Then you love to proactively use that experience to make the whole service better.
- You are an independent, creative self-starter who loves running with things while keeping everyone inside and outside the company in the loop.
- You love to write & enjoy sharing your ideas with others.
- You spend a lot of time online and stay up-do-date on new, fun things out there for web savvy users as well as regular people.
- The person taking this role can work remotely 100% of the time. The initial length of this project goes through Feb 2009.
Interested candidates should send a resume for review, as well as the address of your blog, and your hourly rate, to me -- Kevin.Matheny at BestBuy.com.
New version!
Well, we've been talking about it for a while...so we've finally gone and done it, we've versioned the API. Below are Steve's release notes on what's been changed...but the most important thing to note is that we are now at version 1. Previous to this we were, well, version nothing, I guess. Now, to access the API you need to hit http://api.remix.bestbuy.com/v1/products...
Check out what we've done...and please comment away!
Dave
-----------------
- API versioning:
- /products refers to /v0/products
- /v1/products refers to the new version of the api
- we will stop supporting /v0/products and /products soon. For new development, always use /v1 urls
- Image urls are now available for almost every product (not just type=hardgood)
- Query improvements:
- "or" works: (manufacturer=canon|manufacturer=nikon)
- grouping/nesting works:
((manufacturer=canon|manufacturer=nikon)&salePrice<30)
- we handle values with &'s and such (name='Batman & Robin')
- wildcard searches are improved. (name=begins*) now matches "Batman Begins" - i.e. we match words in the middle of a string of words, not just at the beginning.
- you can now use one-to-many attributes in a query, e.g.
/v1/products(cast.name='Tom Cruise')
- fixed: if you fail to encode spaces with a '+' (plus sign) inside your product filters you will get an error page.
- you can query by time on attributes where that's appropriate, ex:
/v1/products(itemUpdateDate>2008-10-20T11:20:00&itemUpdateDate<2008-10-20T13:15:45)
- We show only active products by default - that is, all queries are constrianed by active=true, UNLESS you explicitly use the active attribute in a query. So for instance:
- to get all active products: /v1/products(active=true), which, because of defaulting, is equivalent to /v1/products
- to get all inactive products: /v1/products(active=false)
- to get both active and inactive products:
/v1/products(active=false|active=true) ...this is necessary to override the defaulting.
- Fixed a bug where you couldn't use dates before 1970 in a query.
So to get all music originally released in the 60's:
/v1/products(type=music&originalReleaseDate>=1960-01-01&originalReleaseDate<1970-01-01)
- Categories are now available in a structured form:
<categoryPath>
<category>
<id>cat00000</id>
<name>Best Buy</name>
</category>
<category>
<id>abcat0600000</id>
<name>Music & Movies</name>
</category>
<category>
<id>cat02015</id>
<name>Movies</name>
</category>
<category>
<id>cat02016</id>
<name>Action & Adventure</name>
</category>
<category>
<id>cat02017</id>
<name>Action</name>
</category>
</categoryPath>
...you can make a corresponding query:
/products(categoryPath.category.name='Action & Adventure')
or
/products(categoryPath.category.id=cat02016)
...consequently, categoryIdPath has been dropped
- in /v1, 'buyUrl' is renamed to 'url'
- New product attributes:
- active
- activeUpdateDate
- offers
- priceUpdateDate
- addToCartUrl
- upc
- inStoreAvailabilityUpdateDate
- onlineAvailabilityUpdateDate
- We now expose time information for attributes where that's appropriate. Previously we were only showing the date information.
So for instance itemUpdateDate values previously looked like "2008-10-20", now they look like "2008-10-20T23:20:50". Querying works too. So you can do
/v1/products(itemUpdateDate>2008-10-20T23:20:49&itemUpdateDate<2008-10-20T23:20:51)
to retrieve the above product.
- Non-truncated results are returned for all attributes. Formerly, these were limited to 256 characters for description, long-description, plot, etc.
- affiliate url's: if you provide "ref" and "loc" query parameters, the api will generate affiliateUrl and affiliateAddToCartUrl for each product
/v1/products/8880044.xml?ref=88&loc=99 gets you
<affiliateUrl>
http://www.bestbuy.com/site/olspage.jsp?skuId=8880044&type=product&id=1484301&ref=88&loc=99
</affiliateUrl>
and
<affiliateAddToCartUrl>
http://www.bestbuy.com/site/olspage.jsp?id=pcmcat152200050035&type=category&ref=88&loc=99&qvsids=8880044
</affiliateAddToCartUrl>
- error messages are more helpful
/v1/products/8880044.xml?show=foo
/v1/products(foo=1)
are examples of bad urls that give you information about what went wrong and what to do differently.
- There are some product attributes we don't display by default. Use show=all to see all product attributes.
- The product catalog is updated every two hours (the most important update period, incidentally, is around noon CT)
- All times are CT
- In /v1, JSON date and time formats have changed from milliseconds since 1970, to string-formatted dates as in the xml.
Twitter account
I've created a Twitter account for Remix communications. We already have the @bbyremix account, but that's being used as a host for a Twitter bot* so we needed another one. The new one is @bestbuyremix, which interestingly enough had 4 followers the instant it was created. I think Twitter queues up "follow" requests and applies them when an account is created or something.
What we're working on....
I realize it's been awhile since last we talked...and I hereby resolve to never start another post with an inane statement like that. One thing I hate about blogs is the blogster apologizing for not writing sooner. So...never again!
We haven't been writing because we've been in the middle of doing...trying to develop the API so that it's actually useful and usable. We have a ton of updates waiting to be pushed out all designed to make using Remix easier and more fun.
One thing in particular that we've been working on is versioning. When we do our next push to production the formal way of requesting data will include a version number somewhere in the string. We'll detail it out here when we're closing to launching it and of course, we'll be backwards compatible for awhile so that y'all will have some time to correctly format your query strings.
Another thing we're working on is some more advanced functionality around wildcards and query strings, as well as some great tools for generating an affiliate buy URL, so that you wouldn't have figure out how to do it yourself. Speaking of affiliates, we do have an affiliate program, administered by Commission Junction that Remix developers can join. Basically, if you get people to click on a "buy" link that ends up either in a cart or the product detail page on bestbuy.com, we'll share a percentage of the sale with you. The link on the front page of the portal is a way to join. In the coming weeks we'll be focusing on making the whole process easier...
[ Page 1 of 2 | Next ]


