Can you use Commerce without the Cart/payment processing?

I have a client who is not quite ready for e-commerce, but might be down the road, or perhaps implement an order online bu hold in store for pickup mechanism at the start (ie no online payment). I was wondering if it is possible or advisable to use Commerce for this purpose, simply to use the product creation and display features, but leave Cart and Payment modules disabled, only to enable and configure them at a later date?

I'm about to try this on a local testing site but would be interested in hearing if anyone else had any experience doing this, if it is difficult and or advisable.

Thanks in advance and happy New Year to all out there.

Posted: Dec 31, 2012


RKopacz on January 9, 2013

Well, I suspect as soon as we build the site, and my client sees the potential for e-commerce, he will want to enable e-commerce. If I go without the commerce module, I will create a node type called product with fields for price, etc. Then, let's say we add 400 products as nodes. Now, he wants to add e-commerce.

I suppose I could migrate the content using some of the migration and feed modules, but it seems to me it would be faster to just install commerce at the beginning, create the products and use them for display purposes only, and once he decides to do e-commerce, it will just be a matter of switching on the cart and payment modules.

That is the hope, anyway. Do you see my point?

ronald on January 10, 2013

And especialy with drupal commerce, you can add funktionality step by step.

In this case, I would start off with commerce, creating products, and product displays.

I would not use the kickstart. This is an overkill.

But for you it is important to know it in detail, so you can offer different sections (modules) to your customer.

RKopacz on January 10, 2013

My experience with clients who are new to this technology is that they say they want something simple, because they "don't know what they don't know". After they get a taste of it, they look at functionality on some other site and then turn to me and say, "Hey, can we do this with my site?" Right now, my client says that he does not want e-commerce, but after three months, he will have clients say "can I just buy it online?" and we will be ready to deploy quickly :).

Thanks so much ronald and to all for the feedback! The Drupal Community Rocks.

torq on January 11, 2013

I built bellracing.com which is built using Drupal Commerce, though they aren't selling anything...yet. I just used CSS to hide the add to cart functionality. However, they are finally ready to move forward on the commerce part, which is great, except now commerce kickstart v2 is out, which I think fixes a lot of headaches I ran into on another drupal commerce project.

I think I would build out in standard Drupal. Content types can easily be converted into product displays (that's really all they are, content type with a product reference). If the data doesn't need to be used as a selectable product attribute it may belong on the product display and not on the product anyway, so you won't be repeating a lot of work. Then, you can add commerce when they're ready. Fresh always seems less scary then updated in my mind.

asperi on February 19, 2013

I think there is a lot more demand for this.. Say you start building a site, but you dont have all the credit card processing in place, or the product is not released yet, or you want to list the product but it is out of stock.. The need is great..

There has to be some way to just list all the products but not have a buy button and a check out cart. But yes, like RKopacz said, I know I will need to turn on the cart later once we decide to process credit cards. Seems like this should not be a big deal but I cannot find a solution.. Any help would be awesome.

immoreel on April 22, 2013

create a module with this in it:

function cart_hack_form_commerce_cart_add_to_cart_form_alter (&$form, &$form_state, $form_id) {

// Disable the Add to Cart submit button

$form['submit'] = array('#access' => FALSE);