Rails for ecommerce site - ruby-on-rails

I was planning on using RoR for an upcoming e-commerce site but keep reading
comments that give the impression that this framework is not yet fit for this type of a commercial application.
What is the state of it? May it be used for large scale online stores etc?
Is compatibility and the frequently changing framework an issue to worry about?

Late answer... but I feel I should share some of the latest stuff available.
Is compatibility and the frequently
changing framework an issue to worry
about?
No. But it sounds like you are a beginner with Rails -- anyone starting a big e-commerce project should consider sticking with a framework they are already comfortable with.
If you definitely want a Rails app and your site is primarily an e-commerce shopping site, I recommend you look at Spree (http://spreecommerce.com/).
If your site is primarily a web application with a small purchasing component, consider using ActiveMerchant directly to hack together your own simple shopping page.
If you are making a primarily e-commerce shopping site, you would do well to at least consider non-Rails solutions. There are so many options for standalone web stores, shopping carts linked to CMS apps like WordPress and Drupal, third-party services for a fee (e.g., Shopify for shops, Chargify for subscription services) and many of them can be customized with minimal coding.
Rails is up to the task, but if you aren't already a "Rails guy" there's no particular reason to choose it for a new e-commerce app.

yes, rails can do it quite well. check out active merchant site, as well as shopify, which is a rails site specifically for ecommerce. as far as changes to the framework, i've found them pretty easy to keep up with on our applications.

Agree with other's posts about activemerchant. That combined with someone like Braintree as the gateway (who are programmer oriented) make it pretty simple to do.

It depends on what features you want in your system.
Chris mentioned some tools for payment processing and order / cart management.
If you want something for a 'large scale online store' then I'm not sure there is anything yet. Specifically when I worked with ATG Dynamo Commerce Server, there was a massive amount of effort invested in their pricing, discount and promotion elements.

Very late to answer but try out http://www.ror-e.com
https://github.com/drhenner/ror_ecommerce
Disclaimer: I wrote it, but it is more developer friendly and starts you off with a lot of best practices baked in. Good luck

Related

Rails ecommerce site with Spree what should be ideal blog solution

I have e-commerce site using spree. What should be ideal blog solution please suggest. Since the blog has to be updated almost daily it should be like CMS with end customer able to do the same. Should I use spree-blogging-spree gem or maybe blog hosted separately on wordpress ? What would be little scalable and convenient for a zero tech customer?
By your own definition ("zero tech customer") I would avoid any solution involving coding or custom code. Blog is an area where dozens of very good solution exists "of the shelf", so I would go for a WordPress or equivalent. You could even get the hosting done for you.
Integration can be as simple as putting the blog on a subdomain, for example if your ecommerce is hosted at pikachu-go.com, you could have blog.pikachu-go.com to point to the WordPress instance.
This means that the blog & ecommerce are totally independant, which should be for the best. You'll have a bit of work to ensure visual consistency between both, but a good palette and a logo may be enough to start.
If for any reason you really need the blog to be part of the same codebase (against, I advice against that), you may want to have a look to blogs that can be added to your Rails application as Engine such as https://buttercms.com/rails-blog-engine/ or https://github.com/kiddsoftware/rails_blog_engine.
Per the doc:
Engines can be considered miniature applications that provide
functionality to their host applications
So this is a way to deploy it inside your Spree app without resorting to custom code.

Ecommerce Subscription for Rails

Have seen some conversations revolving around this, but hoping for some current input as to perhaps the best libs and services available for Rails developers at the moment who are implementing a subscription membership based website.
I'm interested in any libs or frameworks with which you may be familiar through GitHub or elsewhere as well as what service has given you the best experience so far for clients and your own sanity? I'm leaning towards paypal and perhaps also including Google Checkout, however there are certainly a lot of other options.
I'd like for it to be clean and to appear as integrated into the website as possible while carrying the trust of a larger service provider such as PayPal and Google.
Additionally, these are mostly micro payments at around $1.00 USD. Sometimes purchases go up to $15 to $30.
EDIT: Since initial post I've found SaaS Rails Kit (http://railskits.com/recurring_billing/). Has anyone had experience with this vs Recurly? Doing some research as per the first answer, it appears Recurly is the superior option at this point for our model, however this Rails Kit may be an even better option if it has met some very positive experiences in comparison with other options.
The one I prefer: Chargify (soon to be available on heroku)
Another I know but haven't used: Recurly (soon on heroku too)

Rails: when would one use shopping cart software when developing a webstore with rails?

For someone who would like to develop a webstore type web application, and at the same time learn about web development with rails, would you recommend using a shopping cart service or starting from scratch? I guess I'm not entirely sure exactly what shopping cart software is either, so if someone could elucidate this and explain why someone would use a shopping cart and someone else wouldn't, I'd appreciate it.
Thanks in advance.
Typically, I'd say use a service if it can meet your needs. I think it is better to focus on developing the meat of your application -- that which makes your app unique -- so you can get it out there. You can always replace a service with your own shopping cart later.
If a service can't meet your needs, or you are developing the Uber Holy Grail of online shopping carts, then sure, roll your own. No sense in letting other people's technology stand in your way. Just be prepared to invest a lot of time into it.
Building your own shopping cart is certainly a good learning experience, but I'd imagine that there is plenty of learning to be had in the rest of your application as well. You can replace a service with your own code later.
From a business perspective, I'd imagine you would want to start generating revenue as soon as possible, so I'd probably go with an existing solution that is already developed and already proven.
You may check out Shopify as a hosted solution. Not only does it provide a solid foundation to work with, it can also be heavily customized and also can be extended through their API. Since it is Rails-based, they have a lot of examples in Rails at http://api.shopify.com/.
As you become more comfortable with Rails, you may build your own shopping cart. By that time, you will not only be comfortable with the language but you will know more of what you need in a shopping cart.

Recommended Rails plugins for software as a service app

I am investigating potential Rails plugins or Gems to help develop a SAAS type app. Specifically I am looking for help in two areas:
Restricting access to certain areas of the app based on the account's plan. For example, a bronze account allows access to some functionality, upgrading to silver unlocks access to new features and functionality. Basically, just controlling what accounts have access to what controllers.
Managing subscriptions, invoicing and taking payments. This app will be charging on an annual or quarterly basis, there's a 30 day free trial with no payment details needed up front, and I think the intention is to use PayPal Website Payments Pro (although that is not set in stone).
Given the above, can anyone recommend any Gems or plugins? I have had a look at the SAAS Railskit and I am not opposed to spending a bit of money. However, I'd certainly want to hear good things from people who have used it first, and also how easy it is to pick appart the Railskit and apply it to my own application (as I am not starting from scratch here - needs to integrate with Authlogic too).
Thanks in advance for your help.
Bruno Bornsztein offers a Rails engine that implements a SaaS site. Look for striped_rails on GitHub.
You might want to look at the open source example application for a Rails Membership/Subscription/SaaS Site from the RailsApps project. It comes with a tutorial that explains the implementation in great detail. It does what you describe using Devise for authentication and Stripe for billing.
My SaaS Rails Kit does integrate well with pre-existing apps... many of my customers do that. And the testimonials at the site are real. :) Plus there are many other similar testimonials that I haven't published -- a lot of good things have been said about it. :)
While there are quite a few different gems out there which do different things different ways, I would definitely suggest that you start with these:
activemerchant — I would use this for payment processing. It is honestly the best (and most extensible) gem out there, and its especially well-tested for PayPal usage, although I'd look elsewhere for SaaS billing because PayPal is utter crap.
declarative_authorization — This is probably the most extensible plugin for authorization, which allows different users with different roles to do different things. For instance, you can build roles for each plan.
You should also take a look at the following Railscasts:
"Declarative Authorization" - http://railscasts.com/episodes/188-declarative-authorization
"Authorization with CanCan" - http://railscasts.com/episodes/192-authorization-with-cancan
"PayPal Express Checkout" - http://railscasts.com/episodes/146-paypal-express-checkout
"Integrating Active Merchant" - http://railscasts.com/episodes/145-integrating-active-merchant
Hope this helps!
You would also need subdomain routes, for restricting your user into its own subdomain.

Recommendation on development framework for a browser based online product catalogue?

I have to develop a online product catalog which will eventually developed into a simple online ordering system, I have never developed a web application before. Please recommend an application framework which might be a good choice for this kind of apps.
Is Ruby on Rails a good choice?
Thanks.
Definitely Ruby on Rails a Good Canditate for developing online e-commerce application , There are many e-commerce application developed in Ruby on Rails , which are successfully running .
Open source e-commerce application spree
Shopify CMS for online store .
Agile web development book has explained the working of rails with an example how to develop a product catalog , which will be more helpful for you.
Many plugins and gems available for payment gateway like the Payment gem .
What more you could need to develop an online store .If your resources are less and the development time should be speedy then rails a good candidate for your requirement.
Finally its your interest and skills set and choose the platform which suits your requirement :)
Hope this helps !
Rails is as a good choice as any other web framework can be.
Here are a few links to help you getting started with it.
The Guides
The Screencasts
The Agile Web Development with Rails book
And for your online ordering feature, you could look at Active Merchant.
Is it necessary to develop it yourself?
There are a number of great drop in solutions for a catalog/shop application. Some offer both the source code for customized deployment, others offer a package including hosting, setup and maintenance. In addition to what's already been mentioned, here are a few more e-commerce solutions that are ready to do.
Keep your hosting solution in mind when deciding how to proceed. A lot more hosts offer PHP than rails.
PHP Based ZenCart (Both)
Django Based Satchmo (Source only)
Rails Shopify (Hosted only)
Do you really want to reinvent the wheel?
If you've never written a web application before do NOT start with something that involves billing. That's a good way to end up in a lot of trouble. Billing is hard to get right, and if you get it wrong you can end up facing huge fines or even in court. In most cases, you have to comply with PCI DSS security standards, and if you fail to do so and information is lost or stolen, you're likely looking at $500,000 in fines.
If you absolutely must do e-commerce, outsource it to PayPal or Google Checkout so that your risk is limited mainly to charging people the wrong amount by accident.
That warning out of the way, Rails is a good place to start if you've never done web development before. It has it's problems, but they'll go unnoticed until you've been working with it for at least two or three years. i.e., they're fairly minor, and are likely to annoy only a very experienced developer with significant project requirements.
Full disclosure: Google is my employer, so obviously I think you should opt for the Google Checkout option.

Resources