# Re: E Commerce as Behavior? -and- Embedding RoR applications

**URL:** <https://www.ruby-forum.com/t/re-e-commerce-as-behavior-and-embedding-ror-applications/82005>\
**Category:** Radiant CMS\
**Created:** [January 16, 2007, 8:34pm UTC](https://www.ruby-forum.com/t/re-e-commerce-as-behavior-and-embedding-ror-applications/82005 "2007-01-16T20:34:24Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![smc7000](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ed655f/32.png) [@smc7000](https://www.ruby-forum.com/u/smc7000)\
**Post date:** [January 16, 2007, 8:34pm UTC](https://www.ruby-forum.com/t/re-e-commerce-as-behavior-and-embedding-ror-applications/82005/1 "2007-01-16T20:34:24Z")

</div>

One solution that has not been discussed, and bears mentioning, is the  
creative use of the web server.

On www.kckcc.edu, we have several mini-applications that help serve  
content  
on the website. However, because we were migrating from some old Perl  
and  
PHP apps, some of those didn’t get converted into Radiant extensions.  
For  
example, the class schedules are a Perl CGI script, and the Library  
Online  
Database listings are a PHP app. In order to serve these needs, we  
defined  
“contexts” (in Litespeed; for Apache it would be a Location directive)  
that  
redirect to or serve separate applications (some are proxied). Thus,  
for  
the main website we have the “/” context point to Radiant and the  
“/cgi-bin/” context proxies to CGI apps that run on the old web server.

So I guess what I’m saying is, not everything has to be in the  
extensions to  
the Radiant application. It is possible, and with Rails quite easy, to  
skin  
your external application to look like the rest of the site (we did this  
pretty simply on a couple apps). Just serve it up under another part of  
the  
URL namespace, then you don’t have to worry about writing code  
specifically  
to integrate.

On the other hand, if the data your application serves needs to appear  
on  
multiple pages (for example, our contact information that comes from  
LDAP),  
then the application is a good candidate for an extension.

Of course, there’s also a middle ground where it could be part external,  
part extension. For example, if you have a heavyweight e-commerce  
application, you could connect via AWS or ARes (or even open-uri!) and  
serve  
up parts of the data in pages with some custom tags. Then, for the cart  
management and checkout, you could redirect or proxy to the e-commerce  
app.

The key, I believe, is to do what’s practical with the minimum of  
trouble.  
Some of those PHP apps I wanted to convert just didn’t make it for our  
January 1 deadline, so we found a variety of ways to support them and  
moved  
on.

Cheers,

Sean C.
