This is one of the more challenging projects I've worked on at Next Jump. We use a large number of APIs from various merchant partners to allow for purchases to by our users directly through the site. All the data is different, and all the checkout requirements are also different. So designing a system flexible enough to handle them all was fun. Were still working on it, but i'll keep the content here.