Building a Multi-language Website With YAMS
Background
My partner asked me to build a website to sell pet products online. Basically it would just be a simple catalog site, with a shopping cart and an email ordering system. No problem. MODx can handle that easily, and I figured a day or two to set it up. I have a few (about four dozen on my hard drive last time I checked) templates already ported to MODx, so it should be a snap to install one of them and set up a Ditto catalog and play around with some of the nifty JQuery shopping carts available. Having the checkout button load a page with a view of the order, and a "place order" button to fire off an email would be a piece of cake.
Then it started. "Oh, that will need to be in two languages, Hebrew and English". Well, that shouldn't have been a big surprise, but it did complicate things a bit. Then I got some bright ideas myself. We should add Russian and French to that. Once you go multi-language, it doesn't matter much how many languages you do. And I've been wanting to dive into YAMS for some time now, and this would be a good chance to put it through its paces.
I've been studying web design, web marketing, SEO and all that good stuff, although I'm a tech, not a shopkeeper. The articles about dominating your local market got me thinking, and I got another bright idea. What if visitors could register and upload a photo of their pet, a gallery would display these photos with a voting function, and periodically the winners would get a gift? That would draw interest to the site, and offering a checkbox to subscribe during the registration process would also provide a list for emailing announcements of winners, newsletters and all that marketing stuff.
So now my work is cut out for me. Multiple languages. Catalog, cart and checkout. Visitor registration. Gallery with voting. Announcements and newsletters (that does sound better than advertising, doesn't it?).
This series of articles will trace the process of developing this site, documenting the basic installation of the features as well as the tweaking, hacking and customization that will inevitably become necessary. (Which sweater should I make for my partner?)
- The template - porting a template to HTML 5 and adding some CSS 3 goodies (IE can live with what it gets).
- YAMS - lots and lots of TVs.
- Ditto - pretty basic stuff, with tagging, "related items" and "most popular" tagging to keep it from being too boring to develop. Amazon, eat your heart out!
- Easy 2 Gallery - already has a nice AJAX commenting feature (although I would much rather it used a snippet on a MODx resource for its processing), and it should be easy to clone that to make it just a voting feature without the commenting part. It shouldn't be difficult to coordinate it with YAMS. (They're way ahead of me!)
- Registration and image upload. No big deal, I will just use the basic included web registration snippet rather than WebLoginPE.
- Shopping cart - I haven't really settled on a shopping cart yet; there are certainly enough JQuery-based carts around to choose from. So far I kind of like JCart, and even though for now I only need to email the order, it comes with PayPal integration.
