I work independently on many web projects, but I also partner up with other companies in various capacities. One of my longest-running partnerships is with [Nonprofit Tech][npt], which is now based in Madison, but was my first job when I lived in the San Francisco area back in the early 2000s. We've worked on a lot of different projects with many clients over the years, but one that has been consistent is [Consumer Action][ca], a consumer-advocacy organization based in San Francisco. They offer a wealth of information on the laws and industry surrounding credit cards, home buying, privacy, insurance, and a lot of other stuff; and they offer all this in many languages. They're good, and I'm happy to be of service to them.
Their website runs [ExpressionEngine][ee], and in the last year they upgraded to the 2.x version. There was a lot of work involved migrating their pretty massive online empire from 1.x to 2.x, because along with having a lot of content, they deliver it over a network of targeted websites (they call them subsites), not just the main Consumer Action website. I wasn't involved in a lot of the migration work, but I did work a lot on their publications store, which we switched from a homegrown system to the [Store plugin from Exp:resso][store]. The point of the publications store is to allow registered members (you can become an online member for free) to order printed copies of the publications, and everything is free thanks to Consumer Action's donors and corporate sponsors. We needed the system to support a conventional shopping cart experience, but with all products being free, and being able to use the existing publications channels so there would be no re-entering a bunch of product data. The homegrown system worked, but it wasn't robust, and after researching many options, we ended going with Store, and it did the trick. We migrated the main Consumer Action site to Store fairly painlessly, and got a nice increase in stability.
The trouble came when we wanted to set it up on [MoneyWi$e][m], one of the subsites. Consumer Action uses the ["classic" multi-site setup][cmsm], which predates the current Multiple Site Manager module, to serve its subsites. I'm not as well-versed on the history of ExpressionEngine as I am with other systems, but it's my understanding that the MSM didn't support easy content sharing between sites for a while, and that fact, combined with the additional license fee, was enough to keep this website away. The site has become large enough that migrating to the MSM was looking daunting, so with all the other migration work that had to be done, something had to give, and it was an additional MSM migration. These days, it seems to be assumed that any set of websites served from a single instance of EE use the MSM, so making this classic setup work with third-party add-ons can be tricky.
It took us a little while to nail it down, but Exp:resso were very helpful throughout the process. Here are the issues we faced and how we solved them.