2

I've started working with a marketing team for a well established online ecommerce store.

Their site is a custom ecommerce CMS build (handled by another third party), which works well technically, but the marketing team have regularly expressed how difficult it is for them to create visually interesting and engaging pages within the site, as it's geared so much towards ecommerce.

Currently the only options the marketing team have when adding new pages from the ecommerce CMS is a textarea (single column, bold, italic, links) and a single image.

Updating the ecommerce CMS to give the marketing team greater flexibility is currently not an option (due to history and internal politics). This then led to the conversation of running 2 CMS's on the same domain - 1 for handling the ecommerce and 1 for the blog and product specific promotional landing pages. I showed them Craft, and they loved it!

The Question(s)

First off, is running 2 CMS's on the same domain possible / advisable? (I remember hearing Joel Bradbury mention running EE and WP on the same domain at EEUK)

Are there any obvious pitfalls or gotchas?

I'm assuming it would be simple enough to have Craft handle any blogs if set up on a blog URL (eg: domain.com/blogs/blog-post-name).

But what about specific landing pages (eg: domain.com/discount or domain.com/freestuff)? In theory could I create a route from the ecommerce CMS to point to the Craft generated page? Or should all marketing pages live in the same directory (eg: domain.com/marketing/discount or domain.com/marketing/freestuff)?

Ideally I'd also like to be able to dynamically insert product data (prices, images, descriptions, etc) into the blog and landing pages created in Craft from the ecommerce site. I'm assuming hooking a Craft plugin up to the ecommerce API (if there is one) would be the best option to pull in the data? (Or would scraping be an option?) We would also need to mirror the ecommerce navigation on any Craft generated pages.

The end goal is to give the marking team the freedom and flexibility to add interesting and engaging promotion pages, and have them look native and integrated into the main site.

Apologies, I know there's a lot of questions here. And some non-Craft specific, but I'm hoping this is a good place to start my investigation.

Many thanks!

5

You're asking a loaded question. I don't think there's a wrong answer here but if it were me, you have a couple options.

Addressing the Elephant in the Room

How good of a salesman are you? ;) You mention the e-commerce CMS isn't getting the job done but replacing it is off the table. I've gone down this road before. Since you've got your team interested in Craft, why not consider Craft Commerce too? I know what you're thinking. It's a tough sell. But then again, so is integrating 2 CMS and making sure things don't break between them. What happens if that 3rd party CMS vendor doesn't "approve" of what you're doing and cuts support? Not saying it'll happen but like you mentioned... politics has a way of messing with people.

I don't know how much business logic that the current e-commerce solution has that you'd have to replicate or how many products and variations you're dealing with but if anything is up for the challenge, it's Craft and Craft Commerce. Just demoing the seamless integration between the two might be enough for the sales/marketing team. Time is money for them.

If you can't go with Craft Commerce, it really depends on what the other software does and how you integrate the two.

Integrating the Two

I'm assuming both CMS will live on the same physical server? Indeed, Craft could play alongside the other CMS. That's the easiest option. If it were me, I'd probably setup all new marketing pages within Craft and then link to the actual ordering pages in 3rd party CMS.

By default, most CMS including Craft are going to suck up any request that isn't a static file, query the database, and then return the "virtual" page from the database. The actual page doesn't really exist on the server, so Craft looks for "would-be" 404s. That's basically what the rewrite rules in a .htaccess file does—it tells Apache to send any 404 back to the application (usually index.php).

Why is this important? If you have any flexibility with the 3rd party CMS, I'd "quarantine" it to a folder on the server, like /store/ so any request within that folder (like /store/black-leather-jacket/) would go to the commerce CMS (assuming the CMS is sane and doesn't do something stupid like have absolute URLs).

Craft would handle everything else. You could quarantine "Craft" to a folder, but like you mentioned, any page you create would have a URL like /marketing/black-leather-jacket/demo/ or whatever you decide. That's sub-optimal in my opinion. As far as SEO and flexibility go, you probably want people to hit your marketing/landing pages first. People won't buy if they don't have info.

(And it's probably easier to do a 301 redirect to the already existing pages... you could setup Craft so that if it can't find a file, have it take a look if the page exists in the other CMS and redirect if it does.)

Tapping into the Data

Assuming the e-commerce database design/schema is easy to tap into, I'd write a Craft plugin to grab product data directly from the database, based on whatever parameters you need to feed a Twig template. That's beyond the scope of this question but the dev is relatively straightforward.

Craft is built on Yii, an excellent PHP framework so whatever Yii can do Craft can do as well. Craft also ships with Guzzle which would make it easy to "scrape" the actual page or as Matt P mentions building or tapping into some sort of bridge between the 2 systems.

Speaking of scraping, if the 3rd party e-commmerce solution is a hosted solution, then you might have to set that one up on another domain and let Craft handle the marketing pages. In this case, you might consider something like store.domain.com.

Again, all comes down to what the other e-commerce solution does. Craft is relatively flexible any way you slice it.

| improve this answer | |
  • Thanks so much for taking the time to answer this : ) That's all very helpful and gives me a few options to pitch to the team. Sadly, replacing the e-commerce CMS still isn't an option. But if this integration of Craft goes well, then there's a more of a chance it could happen in future - though their business logic is pretty crazy! – Matt Ellis Feb 15 '16 at 12:17
  • Sure thing. I can imagine their biz logic, which is probably why they went with a custom solution! some clients need to go through that "exercise in futility" before they really realize the benefits you're proposing. – RitterKnight Feb 15 '16 at 16:01
4

I've never had a problem running more than one application, but have always done so from within a sub-directory. e.g. domain.com/marketing/

However the most obvious impact with the above is that you're going to slightly penalise every URL because of the additional segment.

(A sub domain like marketing.domain.com would also work)

Regarding dynamic e-commerce content: I would suggest an XML feed with some kind of categorisation or tags, which you could make use of within Craft. FeedMe might be useful for this: https://github.com/engram-design/FeedMe

Mirroring navigation might require manual updates. Be interesting to see what others think around that one.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.