Yahoo! Store has come a long way in the past several years. When we were bringing our wedding accessories site online in 2004, we looked at Yahoo! Store, and felt the costs were too high, and features too few, to use them. So we went with Lagarde Storefront. The features were good, but the code left a lot to be desired.
It’s time for an upgrade and a redesign, and we evaluated YS again with several other packages. In terms of hosting cost, features, ease of setup and use, the YS will be our new platform.
Yahoo! Stores are really divided into two functions, which I’ll call "catalog" and "cart". The distinction is important because you have complete control over catalog, but you can only skin the cart to a limited extent. The cart functions (including SSL) are provided by Yahoo as a single resource shared amongst all merchants, which is nice because you don’t have to worry about payment integrations, etc.
Yahoo! Stores traditionally use static HTML pages for their catalog, and they have several ways you can develop these pages. The simplest is with their wizard, which binds you to a few template and color choices, but gets you online quickly. YS also has a SiteBuilder tool, which has even more templates and is more customizable, and ties right into your catalog so you can generate and upload the pages directly. They recommend this tool for around 100 items or less, so that won’t work for us (plus, we want a very custom look).
You can use Dreamweaver, FrontPage, Expression Web or even Notepad to generate your own catalog top to bottom, but this is very time consuming since you need to generate a page for every item, and manually paste in little snippets that the store uses at load time to place the content on the page. Dreamweaver has a plug in to generate these snippets, but other tools will require a cut and paste from the YS store manager. This would be a total pain, but could be improved with a code generation tool if your database is available outside your store.
For automatic page generation in larger catalogs, YS supports a vaguely documented templating language called RTML, which when your site is "published" regenerates all static HTML pages. All editing of RTML is done online, using YS’s site tools. In their help files, YS claims to be committed to RTML, but they don’t offer support or documentation for the language. It seems to be a legacy tool for YS, supported because of a large installation base and vibrant RTML ecosystem of developers. A couple of dev shops offer e-book references, and in most cases if you outsource development, the results will be RTML templates. It’s actually a pretty cool language (I bought one of the e-books), and there is some pretty amazing work being done with RTML, but I have an issue with static HTML catalog pages.
For a truly dynamic catalog, YS offers PHP/MySQL support. Even the Amish know what this is, and Microsoft Expression Web 2 offers full PHP support built in. Yahoo! makes the documentation and references for this option more visible than RTML, so it seems like this is the direction they’re trying to nudge their stores. For me, this seems like the best option, even though I don’t know PHP.
Static HTML | DB Driven | |
Speed/Performance | Usually a little faster and lighter on the CPU; in most cases, negligible difference | Usually a tad slower and a little more CPU; in most cases, negligible difference |
Timely updates | Need to regenerate every catalog page to update one item | Instant, since details are pulled from the database each time the page loads. |
Suitable for | Carts that don’t change very often | Dynamic carts with defined inventory levels or impromptu specials |
Pain/Tedium factor | Very painful and tedious for large catalogs, although greatly alleviated if you learn RTML (which involves some pain on its own). Not to mention regenerating the site when visitors are browsing might cause some issues. | A little painful to learn a new language if you don’t know PHP/MySQL, but no maintenance required once your site is programmed. |
Choice | Nope! | Winner! If I’m going to learn something new, it’s something that will make my life easier. |