After countless hours of development, experimentation, API referencing, and good ol' fashioned beating our heads against our desks, the team at Ubercart.org has finally put up an initial release of the Übercart module package. This is being considered an alpha release, with the official 1.0 release being many development hours away as we build on and flesh out some of the core systems. However, the module package as it stands is able to run e-commerce sites and is already being used in live sites. Everyone is welcome to showcase their Übercart site in our forums!

In short, Übercart is a module package designed to let administrators run an e-commerce store on their Drupal sites. For more information, you can view the project page. This package has been developed to address a different set of needs and accommodate some different design goals than the current e-commerce module package. We hope to build a comparison and contrast page on our site that store owners can use to compare feature sets, and we look forward to getting some input from the e-commerce experts and developers experienced with other open source e-commerce solutions!

While still in its infancy, Übercart is well on its way toward hosting our e-commerce sites, which we long to free from the bonds of osCommerce. Expect more module development, catalog enhancements, and usability improvements as the project matures. We will specifically address importing product catalogs from osCommerce to Übercart in the near future, and our ultimate goal is to port our osCommerce enhancements providing inventory, QuickBooks, and eBay integration. We would love to hear your feedback and incorporate your ideas into the project to give Übercart broad appeal even beyond the borders of the Drupal community.

Feel free to download the project, play around with the administrative sections with an eye toward usability, and offer up your bug reports and ideas in the forums. We have no false assumptions that everything here is pretty and ready to wow you, but we hope you can at least get an idea of where we're headed and offer up some killer ideas for improvement.

Project page: http://drupal.org/project/ubercart

Comments

Rowanw’s picture

I can't wait to start testing this out, it will be interesting to compare with E-Commerce.

Thanks for the effort.

rszrama’s picture

Thanks. : ) It's been 6 months coming and has been a lot of fun to work on. Ubercart is like a dear friend, now... we've survived hard times and good times, and he was happy to see me get engaged recently. If only Ubercart gave back and neck massages after hours of coding... ^_^ (Or maybe Ubercart understands that's better left for fiancees. ; )

pamphile’s picture

I was wondering it could host multiple stores.

Hope somone can mention that on the comparison page. :)

rszrama’s picture

Ahh, forgot about that. I'm not entirely sure what you mean by multiple stores. The same code can of course be used to run any number of sites just like Drupal can... separate databases running everything. I don't know all the ins and outs of keeping the file system separate, but I imagine you can just set the files directories to different directories within the root files directory.

It is our intention to design some sort of master/slave system where we can have two different storefronts saving orders to the same database. Right now our business is operating like this on two different osCommerce installations... I just did a minor hack to make it work. So when our company ports our major sites to Ubercart, we'll need this to work right. We've only tossed around a few design ideas, but we intend to at least have product importing/exporting, and maybe even just do database sharing where you could specify a different database to pull product and/or order information from. It's hairy... and we'd love to get your ideas. Feel free to post away in the brainstorming forum. ; )

Andy_Lowe’s picture

I commented on this in the Ubercart forums here: http://www.ubercart.org/forum/uberthink/174/multiple_domains_ii_multiple...
The short version of this long post is that people mean a lot of things when they say multiple stores. Ubercart does shared code base for completely different sites now because Drupal does it. Ubercart will do multiple sites with different themes, similar product sets, and one or multiple back ends (administration and order fulfillment) in the near future because we need them done to move our production sites over to Ubercart. We think these are the most common desired configurations. If you want some other sort of multi site, ask on our forums about it.
Peace,
-Andy

pamphile’s picture

My definition of multiple stores...

here are a few
1. 1 store per user ( the same way Drupal gives each user a blog)
2. Multiple stores per user ( the same way Blogger.com allows multiple stores )
3. Multi hosting Drupal on one host, to provide multiple stores ( the hard way )

Marcel
http://www.bigvertiser.com
http://businessletters.com

csc4’s picture

+1 especially for one store per user and/or per organic g

dougdagaz’s picture

Since Marcel provided a good def for "multi stores", where I was hoping to see this string head was towards "multiple channels".

To put it simply:
One master catalogue that allows products to be displayed in 'different' branded / themed stores operated by one business.

For example: a company might be selling 'spirit wear' (high school polo shirts, sweatshirts, t-shirts, caps, etc). So they have a "green polo" that displays in Store A, B and F, but not in store C,D and E. But they also would have general sporting goods, like, baseballs, equipment, etc, that show up in all stores.

One inventory, one back end admin, etc...

To see an ecommerce solution that does this, take a look at Coresense, coresense.com (I am not plugging them in any way, it will just give you a good idea of what a multichannel set up looks like and do a much better job of explaining what I mean than I can...)

Doug

One little post = 12 months of coding

Andy_Lowe’s picture

I know exactly what you are talking about. We have already designed the core modules of Ubercart to support multi-channels. We just have to write the administration interface. This is a top priority for us because several of our sites have multiple channels, and we can't move them to Ubercart until we have this support. Hopefully one little post = 3 months of coding, not 12.
Thanks for the input
-Andy
Restaurant Equipment

dougdagaz’s picture

That is good news on the multi-channel support front!

Doug
http://www.dagazsolutions.com

Check out our recent Drupal projects at
http://www.chatomvineyards.com and http://www.sanramon.org

bigbob’s picture

Hehe yes girls probably do it better than ubercart.

newdru’s picture

I'm getting ready to start digging in to drupal ecommerce solutions and i ran across your project awhile ago and was waiting for it to become more mature.

fwiw, my experience here on the forums leaves me concerned about pursuing the standard drupal ecommerce path.

more specifically, the ecomm posts i see on this forum:

1) seem to be frequent and varied and express concerns about the system not providing some feature you would expect in an ecomm system
2) often go unanswered

this leads me to believe that there are holes in teh current ecomm solution. it also leads me to believe it's a "black art" making the thing work. which means lots of hours invested that are likley to lead to dead ends because you can't determine what's missing before you start. which leads me to be worried about using it.

that said.

i'm looking forward to your module.

However, to help others and yoru project succeed, would you be able to give in your own words a more clear reason why you branched off and created your own solution. Obviously drupal's standard ecomm solution was lacking otherwise you wouldn't have rolled your own.

What specifically about drupal ecomm just didn't cut it
Tell what UC does differently / better
Tell what it doesn't do
Tell what it will eventually do if it doesn't do it now if you plan to add those features.

I think doing this will put you leaps ahead of teh current ecomm solution. And the more examples you can provide the better. More people will feel more comfortable about investing the time to download, install and use it which will lead to more feedback and a better project overall.

In general, the standard ecomm platform that currently exists just doesn't give me a good enough intro as to strengths and weaknesses and howtos. It leaves one to the forums to succeed. Or at least that's how it looks to me. I've cut my teeth on tons of drupal stuff already and dont' mind the work but my intuition tells me that i should probably stay away from the current ecomm path cause i'm going to be unhappy down the road (as it appears posters are).

I don't say that to take away from those that have invested their own time heavily into it but just to state how it looks after being here (drupal) for awhile.

thanks for any input you can provide and foremost for taking on such a heavy project!

rszrama’s picture

Ahh, well, I'm nibbling on a cherry pop-tart before heading to bed and thought I could give you a little info before turning in. Thanks for the questions, too! I'll use them to guide the creation of brochure type pages on ubercart.org.

I attempted to start the discussion before the release a little bit on the page Comparing Ubercart with Other E-commerce Packages. I don't have a whole lot of specifics on things that didn't cut it... basically, we tried to use it a little, get a feel for the software, and it just didn't seem like a fit. Developing our own cart also seemed like a fun thing to do. ; )

I think you picked up on a couple things we noticed that were hinderances to our companies using Drupal + e-commerce. We were looking for a more robust solution, and I don't fault e-commerce at all for relying on other modules to take care of tasks like our catalog module. But coming from osCommerce and that community, we know people are looking for their package to do a lot more out of the box. I think there is a huge opportunity for e-commerce to get a really solid distribution profile going that will include modules like Views to create a catalog browser and things like that... we just wanted to integrate those tasks. (Other examples may be things like attaching images to products or having product attributes. We wanted these to be better integrated and mimic the ease of use of osCommerce. Wait... I didn't just say that. I take it back. osCommerce's attributes system is clunky and horrible and we hope to improve on it. Right now, this is one of our biggest usability deficiencies and we're all ears on ideas for improvement.) We will happily delegate tasks to contributed modules where applicable, and in those cases we'll post instructions for use in the User's Guide. We'd love to get creative on using already contributed modules to enhance Ubercart, just not leave people in the dark about it.

You mentioned the speed of development, and I concur. Arguably, we may have been able to piece together an installation using 4.7 + e-commerce and other contributed modules these last 6 months that would've worked for us. (But we'd still be out of luck when it comes to migrating our osCommerce catalog over.) But really, in the last 6 months, e-commerce has (I believe) been ported to 5.x and had a lot of improvements, and Ubercart has gone from nothing to what it is now. There's no way for us to directly compare development, but from here on out I expect things to go well for Ubercart. Part of the thing here is that Lyle and I work about 8 feet apart... no problems with internet communication and differing timezones.. we just cozy up for 8 hours a day and plug away at the code. Andy's just across the room, too, so pow-wow's and brainstorming sessions are easy to conjure up. Good development can happen over the net, but there's a reason people come together for BarCamps and Summits and Conventions... it's just darn fun and (can be) more productive (unless you keep throwing the koosh ball around the office) to work side by side. We're excited about the work environment, and since we're being paid to develop it you bet we're happy to keep plugging away at the code!

We were also unhappy with the administrative interface. osCommerce provides a very simple way to monitor and process orders. E-commerce, being a set of Drupal modules, does things the Drupal way which isn't really as easy. One big long form for editing an order can't beat a compact form that is easily read and edited. Our sales team spends most of their time processing orders, so we've designed the pages with them in mind. Furthermore, I've been a part of/trainer for every aspect of the sales team, from building the catalog to taking sales calls to tweaking/hacking our sites so they're easier for us to use. I plan to carry over the things I've learned into the development of Ubercart. We're not a huge business, but we're still moving quite a bit of orders and products per day... I hope the inside knowledge will help us develop the cart better. I don't know the background of the e-commerce developers, and I have a lot to learn from their code, I just hope my experience as every aspect of the end-user helps in development here. (Oh, there is a nice little suckerfish menu that provides easy access to all the store links... there's a block for it, still needs to be debugged for IE. I'd love to get help on that one. ; )

There are other things Ubercart does well, but I don't know that it's over against the e-commerce module. We do a lot of things e-commerce does. We have a payments API that lets modules define payment methods and payment gateways for. It will let you collect payments, track them in a basic ledger, see on the orders screen if an order has been paid in full before shipping... The default uc_credit.module will let you tweak every aspect of your credit card payments. What Ubercart lacks in this initial release is payment gateway modules. Fortunately, we don't have to start from scratch! We hope to take advantage of the work put into the module for e-commerce and plug them into our payments API. And we hope they benefit from us as well. : ) (In fact, I'd give you a hug if I ever met you and you decided you wanted to code payment gateway modules for Ubercart. ; )

I know there have been recent changes to e-commerce in this regard, but we've also hopefully improved checkout over what we saw back in the day. Anonymous checkout is standard, with logged in users getting the advantage of selecting an address from previous orders if any exist. (So, no logging in, creating an address in your address book, and then going back to checkout.) We've worked to make this as simple as possible... you can read more about it at http://www.ubercart.org/ubercart_users_guide/anonymous_checkout. In fact, I have descriptions of key features on Ubercart pages and in the Ubercart handbooks.

Panes. I don't know why I went for this idea, but I've put panes all over the cart and order code. You can use any of the default panes for your checkout and order administration pages, or you can define your own. The systems are extensible, and the hooks have been documented (and will be rewritten to be easier to use). We're trying to make everything flexible, and have designed the core systems to be extensible from the get go. You can change the order of panes, switch them on and off, and create your own to come up with a winning combination for your site. Don't ship stuff? Well... turn off the delivery address pane at checkout and the ship to panes on the order screens. Want to write a coupon module? Create a pane that lets them enter their code and process that information during checkout... I'm happy with the systems, though I wish they were more like the payments system. I love it... it's my holy grail in coding experience. But the cart and order systems are pretty good, too.

Ahh, last thing... I think you mentioned documentation. Well, documenting just isn't fun. It can be hard and boring... it took me three hours to document the two main hooks of the Payments API. I hate that. But I know it's essential to encouraging development, and so I plan to do it more. My motto (which actually comes from my pastor) is to "put the cookies on the bottom shelf." I want everyone, Drupaller or not, to be able to get Ubercart up and running. So the installation instructions, module descriptions, FAQs, etc. will all be geared toward that. The User's Guide has a good start... I spent a day writing installation documentation... and will continue to grow. It's nowhere near complete, and most of the things you can do aren't documented yet. But boy can you get started! hehe I'm also trying to build tips and FAQ sections into the guides as I go along, and I'll keep adding to them as issues come up.

A major reason osCommerce is successful is that, in spite of horrible code and a horrible contribution system, they've built a community. Thousands of people are going to their forums, contributing, asking the same bad questions over and over again... and many people are there to help out. That's a key reason for us keeping up with a custom issue tracker and our own support forums... if this is to succeed, we do need a community of users and developers. We invite everyone to join in the development process, even if it's just building and showcasing a live site that other people can learn from! The decentralized nature of e-commerce support here on d.o is tough when a large scale application like the module package really needs focused support. I do believe there is an e-commerce mailling list, and there's always the issue tracker, but it's just tough to use and can be intimidating for the newbie or casual user. Hence the Ubercart forums and shiny user badges.

Things to look for in the future... (in no particular order)

-Improved image handling. (First on the list for alpha 2...)
-Sales and traffic reports.
-Security improvements. We need help to spot security holes and would be more than happy to plug them!
-Improved attributes management.
-More payment gateway/shipping quote integration modules.
-Improved order processing support... invoice templates, invoice emailing, PDF generation.
-Order fulfillment modules to do things like create, ship, and track UPS (and other) shipments from Ubercart.
-Fulfillment modules of other types, like site access, file downloads, etc.
-osCommerce migration utilities.
-Ever improving user interfaces and in general polish.
-Needed for our site migration: Physical inventory, QuickBooks, and eBay integration.
-Better documentation.
-Better marketing.
-Better code!

The pop-tart is long gone, and now so am I. The pillow is calling me oh so sweetly. ; ) Ciao!

newdru’s picture

Posts like that make you want to use a module! Purely because one has a sense that the developer is actually interested in sharing their own module and knowledge in a useful way! Or possibly you just have better communication skills then other module writers.

For starters i must say that i'm impressed with your effort and the way you are structuring it for delivery to the community. i came across a post on the uc site about how this module should be supported. I'm not sure what the rules are at drupal.org but i like the idea of you keeping the bulk of your effort documented and supported OFFsite, like you have it now versus using drupal org book pages and the like. imho, i personally think you will be able to keep the documentation better integrated with your own forums and STRUCTURE IT to your hearts content which will mean a better end user experience. If you have to post the main module as releases drupal.org do so. But because ecomm is a tightly interwoven subsytem in and of itself, i vote for the separate system approch. any way my 2 cents.

I had a few followups, after cruising through your site and posting here. Admittedly there is a lot to digest and the best thing to do would be simply to download and get busy with it which i will do today

1) you mention on your site that you are writing UC because your current ecomm site is in OSCommerce. When will your personal site be migrated and what is the url of your current ecomm site (if you don't mind sharing)?

2) it looks like UC is already capable of running an online store right now. So does it support these **specific** things right now..

a) calculate ups shipping and taxes? (i recall seeing lots of posts about that regarding drupal ecomm)(you talk about UPS fullfillment above as future feature - i'm talking here about automatically calculating shipping/taxes on orders)?

b) the ability to sell downloads (as private / hidden files)?

c) the ability to sell subscriptions (a recurring payment system)?

e.g. customer buys access or some other widget for a period of time (1 month, 6 months, 1 year). when the time period expires, their access is susspended and they are sent a renewal reminder?

d) could i use it to bill client services (lets say billable hours verus a shippable product)?

- The customers would be clients and could have multiple services billed against them?
- Would i be able to pull up all unpaid orders for all clients or a given client? (searchable backend functionality)
- Would i be able to generate reminder emails for all or specific clients that show up in the unpaid orders search

e) your gateway api sounds very flexible - which specific gw/s do you support right now: paypal? etc?

f) does UC allow you to easily generate emails to any customer in the system

say you want to send a customer a reminder or simply communicate with them - e.g. they called you on the phone and said where's my order? - you say i'll check into it, hang up the phone, figure out what's wrong and instead of calling them back, you go to their account and simply click on a button that says "send email". A form is presented with their email (you don't have to type it in) and the email is formatted automatically with a header with your company address, phone number etc so that when they recieve the email they can call you back without having to dig it up. you click "ok" and the mail is sent. preferably it's logged so you can track deadbeat customers.

3) Theming products (this is a big one for me and probably most out there)

a) By default, product LISTING pages deliver products to appear as a list, sequentially one after the other. If I want to line up products in a grid, how/where do i do that? Do you use the drupal theme concept with tpl.php files that can be overriden or some other mechanism?

b) Same concept as 3a except for the product DETAIL page (the full node view). how do i REtheme the full product node if i want to?

c) Regarding 3b. Is it possible to retheme EACH PRODUCT TYPE / CLASS DETAIL NODE separately so that you have different detail pages for product type A versus product type B?

d) Referring to 3b. I'd like to be able to have multiple images for a given product. So that when you click teh product detail page, you can see a front, side, back view for instance or maybe a closeup of something. This requires multiple images. Is that supported or an image feature for 2.0? And assuming muliimage support did exist, would it be easy to retheme the product accordingly per 3b/how?

e) Is UC tied to any one theme (does it function better in one versus another)?

I ask because you use a lot of JS and probably AJAX as well.

4) Is UC tied to any particular browsers/versions ((does it NOT work or work suboptimally in some browsers)?

As in question #3e, I ask because you use a lot of JS and probably AJAX as well. This stuff is often browser dependent. I'm sure you've builtin graceful degradation but from your in the field experience/testing so far, how rock solid has this been.

And when graceful degradation does occur, what is the "hit" to the user experience? It seems like a lot of the beauty of what you are doing on the order form might be attributable to js.

SUM

That's a fair amount of questions but pretty valid ones that most folks interested in UC are going to want to know. Forgive me if you covered those elsewhere on your site and i missed them. I did look/read through it.

Also, once we hash out my latest batch of questions i'll refrain from posting here and move future questions to the uc site. I see you posted to my original reply here and back on your site. you guys seem like you're pretty busy already.

great work!
thanks

newdru’s picture

and starting answer some of my own questions..

2a) it looks like you have ups shipping and a variety of other customizable methods. cool!
looks like you have tax config as well. cool!

Regarding the taxes. if i'm going to ship to all 50 states, do i have to go in and configure taxes for each state separately in admin/store/settings/taxes?

If so, since this is a pretty common task most people will have to do, couldn't there be a quick setting to enable this for all states (maybe there is one already). it would mean someone would have to once a year monitor irs guidelines for each state and post a module if any taxrates change. that way when folks install UC, they get the latest 50 state tax rates already setup. i don't know how often state tax rates change but having each user who installs UC configure this seems like a lot of duplicate work. Any thoughts?

Finally, as an internet retailer, do the laws now requier that sellers must tax internet sales to each state?
And if you only sell downloadable materials that are NOT shipped i imagine no tax rules apply (seems obvious but i don't know)?

maybe this tax stuff isn't even an issue (i'm new to online selling)..

thanks

rszrama’s picture

newdru, thanks for such a thorough examination and set of questions! I'll reply to the other post from the office tomorrow, but I can handle this one tonight. ; ) As far as I know, you're only required to charge sales tax for goods sold to customers in states where you operate your business. Our stores charge sales tax only for KY. Some states have no sales tax, and some states require residents to report their out of state purchases that they didn't pay sales tax on so they can pay tax to their home state. (Kind of chincey if you ask me.) I don't know how that applies to electronic goods, but its my hunch that there would be no tax for these. (I don't suppose WoW charges tax for subscriptions?) Someone correct me if I'm wrong here.

And a quick plug for your 2a... yes, Lyle has got some UPS quoting working. I believe it may require you to have a UPS account setup, but all that is required to start using it will be documented in the User's Guide if it isn't already. We're going to have to rely on people to develop/port more methods from other e-commerce packages to quote more services, so you can bet the documentation will be good for integrating your preferred shipping quote service. ; )

stefgosselin’s picture

In my area, and many coutries are like this , we have provincial and federal taxes. No taxes for exports.

I have yet to see any problem, however complicated, which, when looked
at in the right way, did not become still more complicated.
-- Poul Anderson

NancyDru’s picture

It is true that I only pay taxes on goods delivered to SC, where I live. I do have to report out of state sales as a deduction from my total sales. (They do some stupid things here.)

The tricky part, though, is that in SC, counties and even cities can charge various types of taxes that apply to my sales. I haven't the foggiest idea how to set that up. I suppose it would require me to ask the customer's county as well as city. Then I have to hope that they've spelled both of them correctly.

Nancy W.
now running 5 sites on Drupal so far
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in Your Database

Island Usurper’s picture

In Übercart, it's possible to define taxes for a single zip code or for a range of them. I hope for your sake that zip codes run along county lines. Regardless of what system you use, it sounds like you've got your work cut out for you.

-----
Übercart -- One cart to rule them all.

NancyDru’s picture

I doubt I could count on that absolutely in this state. But an even bigger problem is even finding, then entering all the zip codes involved. There are 46 counties in SC.

Nancy W.
now running 5 sites on Drupal so far
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in Your Database

frost’s picture

I run an osCommerce based site in Ireland which I use for a small local buyers' group. I'm also a developer and am building a Drupal-based site for a larger non-profit organisation that will be selling online.

Here in Europe, we have a tax called VAT (value added tax). VAT is charged on most items, and the percentage varies according to the TYPE of item. For example, the VAT rate on computers in Ireland (anywhere in Ireland) is 21%. The rate for milk is 0%. The rate for car repair is I think 13%. The same products or services in another country can have a different VAT rate, for example, the VAT rate for computers in Germany is 16%.

If you live in Ireland and buy online from a company in Germany, you pay Germany's rate. I just did this. However, in my case, I didn't pay *any* VAT because I am registered for VAT. That's because there's an exception: Traders who are registered for VAT can supply their VAT number to the seller, who has to record and verify it. If it checks out okay, they don't charge the buyer VAT at all. Note that this exception only works when the buyer and seller are in DIFFERENT EUropean countries. If I buy in Ireland, where my business is registered, I pay VAT like everyone else (actually, I file a VAT return and get a refund of the VAT paid, but that isn't relevent to this discussion!).

All VAT traders have to file a return with the country's tax authority on a regular basis - for me it's every 2 months. That return has to give, among other things, the totals of sales at each rate of VAT separately for a given period of time, and totals of sales sold to other European countries where the buyer wasn't charged VAT.

So all this adds a few requirements for a European-friendly shopping cart solution:
-tagging of products with different tax codes
-ability to not charge VAT and record buyer's VAT number
-ability to produce reports of total sales by tax code and VAT-exempt sales to other countries

rszrama’s picture

Yikes... that really is crazy. ^_^

If you don't mind, would you start a thread in the Internationalization forum with that post? I'd love to get our system to a place where it could support something like that, and some changes Lyle implemented in Alpha 4/5 are a huge step in the right direction.

One question you can address is whether the VAT is supposed to be added to the price and it is just designated as "Price includes VAT" or if it should be a separate line item on the invoice. Because with the up and coming tax conditions system you'd be able to do something like this: create a field either through taxonomy or product classes that lets you specify a product type or maybe VAT type and then in the taxes configuration create tax rules for each option there. With your help I think we could get this working great for Europe! We've already nailed the compound taxes in Canada. ; ) (It'd be nice to have a module or something that defined presets, too, so European users could just install it and go.)

Thanks, frost!

NancyDru’s picture

Like that might go a long way to solving my county/city tax problem too. I could set up a vocabulary for my state and list the counties and cities that are different. That's a whole lot easier than knowing zip codes...

Nancy W.
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in your database

newdru’s picture

Using UC now and coming up with a few more questions:

PRODUCTS:
========

1) under admin/store/settings/products you have "Display Price". I see where it shows up on the product node view but what does that field actually represent versus the sell price (e.g. what actually determines the value that ends up in that field)? fwiw, it looks like you have it disabled in your livecart.

2) what are store settings 'user initials" used for?

3) is it possible to set the default weight from lbs to ounces? also is it possible to configure the display of a suffix 'lbs" or 'oz' to follow the weight amount in the product view without having to adjust the theme?

4) Lets say i have a product **TYPE** like a music cd. I've set up attributes that i want to be on all products of that type. Maybe i'm not doing this the right way but if i've got 200 CDs by different artists, each of those has to be created as a "new product" to make it available as a product right? That's cool but it also means i have to enable the same attributes EACH TIME i create a new cd product (2 mouse clicks + wait time).

Is there an easier way to do this?. For instance a way to create product TYPES with the attributes already associated with the type by default. That way instead of just creating a generic product from scratch every time via "product>create product", i could create "product>create CD product" with chosen attributes already assigned to it. Hope you follow that.

I imagine this might just be part of biting the bullet to get ones products set up.. But if one is constantly adding products (in this case CDs), it would really be beneficial to have the attributes automatically enabled for a given product 'type'.

POST UPDATE: I just rediscovered your product classes and it looks like they might cover this. However, only if i can associate the attributes WITH THE CLASS. Is this possible? If not, it's a great feature to add to UC!

5) i can create products fine, then list them and view them. however, when i click 'add to cart', i get the following error:

Fatal error: Call to undefined function uc_catalog_node_types() in C:\wamp\www\drupal51\sites\all\modules\UC\ubercart\uc_cart\uc_cart.module on line 1416

Note: i don't have the UC category module enabled because i wanted to work my way out from creating basic products first, getting to know UC, then enabling successive modules and getting familiar with what each does and the settings each provides. I wouldn't think i need to have catalog enabled to use the cart since it's not listed as being required but maybe i do. If so you probably should adjust the "required" settings.

POST UPDATE: I enabled the catalog and this works now. I'm not sure but i think catalog IS REQUIRED for any UC installation to work. If so make it display in the modules panel as 'required'.

ORDERS:
=======

6) Because i can't set anything in my cart, i tried to create an order from scratch. I enabled the 'test gateway'. When i try to create an order i get this error message:

Fatal error: Call to undefined function uc_payment_load_payments() in C:\wamp\www\drupal51\sites\all\modules\UC\ubercart\uc_order\uc_order.module on line 2847

POST UPDATE: I enabled the catalog and this works now. I'm not sure but i think catalog IS REQUIRED for any UC installation to work. If so make it display in the modules panel as 'required'.

However, now when i try to add an order i get:

warning: mysql_insert_id() [function.mysql-insert-id]: A link to the server could not be established in C:\wamp\www\drupal51\sites\all\modules\UC\ubercart\uc_order\uc_order.module on line 2523.

I then enabled the "payment" api module to see if that helped. It seemed to let me create the order. The "text gateway" doesn't state that it requires "payment". does it need to be enabled?

7) Now i'm manually creating an order form. I complete the top half of the form fine. However when i go to "add a product", it brings up two select boxes titled " Select a category:" and "Select a product:". The problem is that the select box that says "Select a product:" doesn't have any products listed in it. Only contains an option "select a category"????

Which leads me back to the earlier question that maybe "product categories" are mandatory for UC to work. Yes?

POST UPDATE: I enabled the catalog and these select boxes now work. I'm not sure but i think catalog IS REQUIRED for any UC installation to work. If so make it display in the modules panel as 'required'. However, now when i actually try to "add to order" the product i have selected in the search box i get this error:

Fatal error: Call to undefined function uc_product_get_manufacturer() in C:\wamp\www\drupal51\sites\all\modules\UC\ubercart\uc_order\uc_order.module on line 1225

which is kind of odd since i have mfg disabled! actually it looks like it wants mfg TO be ENABLED but i have it turned off much like i got errors because the catalog was turned off. Either these modules are REQUIRED OR the code needs to be cleaned up to run without them without generating errors.

CHECKOUT
========

8) I can pull up the checkout form and populate the fields but it never lets me actually checkout. There's no submit button only "review order" and "cancel" buttons.

NOTE: *** This might be a bug. If i'm on checkout and hit "review order", once i go back to checkout i have to refill in all of the "delivery information" again (e.g. ship to and bill to infomration ) even though the cart and other aspects of the checkout form maintain their fields.

9) I'm not sure but not being able to checkout (#8) might be because my "calculate shipping cost" doesn't seem to do anything. i've tried to configure that but it doesn't seem to do anything?

10) i've tried enabling the "test gateway" and it doesn't seem to do anything. that part of the configuration is a little confusing. the only options i have on checkout are pay by cash or check?

CATEGORY (MENU) BLOCK
======================

11) My product categories are 2 levels deep. Is there any way to:

a) make the top level category (or any other level) expanded like you can do with menu items so a user does NOT have to click to see the categories contained within? Without that the category block is going to be somewhat limited imho. you want customers to see all your cats right away otherwise they can't find what they're looking for and leave.

b) is there a way to remove the number of items displayed after the ONLY THE TOP level category (e.g. looks similar to "(2)")?

For me this is just personal preference and probably intuitively many customer's prefer as well. I personally don't care how many products i have under the category. In fact if i have only one product, it looks kind of silly to post a "(1)" after the category. It clutters up the space and provides relatively little value add. Now if i had 200 products some might want that number. But even then, i'm not sure *i* would want it.

c) is there a way to remove the number of items displayed after ALL category terms (e.g. looks similar to "(2)") if i want? for the same reasons i posted in 11b.

d) if i don't have a product in a category is it possible to still display the category in teh category block. I might want to let customers know that we WILL be carrying functionality in those categories in the near future. Or maybe we are just updating that category line with new products but haven't filled them in yet?

I'm sure all of this stuff is configurable. It just needs to have a configuration page with the ability to save the settings and pass them into your taxonomy display function that's populating the block. Now the question is do you think it's important enough to add? I do :-)..

IMPLEMENTATION QUESTION
======================

12) Lets say i sell cds or books. what i would call "publishable items" that have both an author AND a publisher (additional metadata about the item itself that is usually stored in separate tables). How would you recommend one best goes about configuring that w/ UC?

I see you use taxonomy for mfg and categories. possibly for a cd/book, mfg could take the roll of the publisher (i think it has metadata fields for phone number, address, url, etc). But what if i actually get the CDs from a distributor which actually IS the mfg. Then how would i use mfg as the publisher?

Either way that still leaves the artist/author dangling somewhat. I could create a taxonomy for author/artist but what about the metadata for those entities? for instance, is there a way to attach a bio, url, etc field to the author so that a customer can click on a link to bring up a node with info about the artist/author? or search for all cds by x author (that's currently achieveable if author/artist is defined with taxonomy).

Also, I would like to be able to display the Artist/Author and Publisher as a separate fields in the product node view. Which means it would be preferable to be able to make the artist/author and publisher product select menu fields populated from the artists and publishers table versus taxonomy which sits "outside" the node? I can retheme the product node to reposition the taxonomy links for publisher or artist IN the node body but they become links to taxonomy NOT information about the publisher or the artist. Hope you can visualize what i'm talking about.

Can i add cck fields for artist and publisher to the product node? Possibly they could somehow be foreign keys to another node custom content type for both the publisher and artist?

Anyway, is it possible to achieve "published items" now and if so how would you do it currently? And if not do you have any plans to offer support for 'published items' in the future?

POST UPDATE: I just read more about your product classes and this looks like it might help with #12. I'm trying to wrap my head around how to use / implement / cfg it for the example i gave. If i'm on the right path maybe you can give some pointers. It looks like i can create a "book" class but i don't want to have the author and publisher on that same class. e.g. i want them separate and reusable so that if product 1 and product 2 are both books by the same publisher, i do NOT have to type the same publisher in as repeated text for each product. e.g. i want to simply pull the publisher as a FK in a publisher table. Because i'm not sure how product classes work, i'm not sure i explained that very well but it's basically the same setup i talked about in the inital #12 post.

POST POST UPDATE: I just create a class and see how it works now. however, it only creates text fields which means that i would have to retype the publisher and artist name on every product which means they are repeatedly stored in teh db multiple times. FEATURE REQUEST : Would there be any way to make one of the product class fields be a select menu that is populated by a sql query to another table e.g. an artists or publishers table (you provide the sql query in the field value)! That would do the trick! In fact, you might be able to enable php as the input filter on your current select menu field and if that's set behind the scenes, take the sql input in the field as the query to do the lookup and theme the select box. That would be pretty easy to do. The harder part would be creating the interface for populating the publisher and artist tables and integrating it into your current UC!

FWIW for me #12 is the most important question in this post.

thanks

newdru’s picture

After trying to enter an order, it appears that a UC customer has basically a 1:1 relationship to a drupal user in the user table (e.g. they are one and the same thing which essentially equates to an email address)

that's fine.

i'm not an expert at this by any means but the ship to and billing info are hardcoded in every order in the uc_orders table. that means that if joe smith orders 20 times, he has to reenter the same info over and over again right? which is prone to error and wastes space right?

wouldn't it make more sense to have a lookup table user_addresses that looks more like this:

uid       shipto         billto
1         xxxxx          xxxxx
2          akdfjkla      kajlkj
etc

basically so that the user addresses primary relationship is to the user and only secondary (FK) on the order..

just curious?

thanks

erlendstromsvik’s picture

At checkout, you get to choose from your previously registered shipping and billing addresses. So once you have registered an order, it's very easy to "fill in" the address information on you next order, just select them from a drop down menu. So no typing the same information 20 times over for Mr. Joe Smith :)

A lookup table for addresses for registered orders is really not a good idea.
All information for an order should be left as it is after it is registered for each and every order, being as close as possible to an actual receipt. A lookup table for addresses for registered orders would need some complex logic to work.
Say we have order #1, #2 and #3, both using delivery address #1. What if the customer contacts your store by phone wanting to change something for the delivery address for order #1? You would have to register a new address and assign the new ID to order #1 instead of just edit the order information directly. Of course the system could do this in the background, but that would require a lot more code. At the same time you could actually move away from the standard way of storing transactions. Any change on any of the records in the address lookup table could affect an arbitrary amount of orders (which if did happen would be really bad).

newdru’s picture

Although this would conflict with schemes where a sku has already been assigned to a product (e.g. when you resell a product), for businesses that are creating their own products, it would be handy to autogenerate SKUs so that they are NOT reused.

This might simply be the node-> nid since that is always unique.

However, i'm not sure if a sku has to conform to a certain standard like a barcode does or something like that.

Anyway, wanted to get this in before i forgot it.

I'm posting a lot of stuff here ;-) Hope you don't mind.

thanks

rszrama’s picture

INITIAL QUESTIONS:
=================

1) Personal site migration is the primary goal of Ubercart development... when we migrate, we will consider that the official 1.0 release of Ubercart. The main one is at http://www.vittitow.com.

2) Yes, we support at least one live site, but I know for a fact the Latin School is doing external CC processing and shipping.

a) Shipping quotes for UPS work if you're configured properly, and taxes are at least working for the U.S. Both of these systems are being improved as I type.

b) Downloadables: Not supported right now. (May I suggest Quickfile if that's all you want? http://drupal.org/project/quickfile)

c) Recurring payments/site acces. Not supported right now. There are hooks so you could make a module do this.

d) Bill client services. Sure... create your products as an hour of your service. Hide the product nodes from site users and you'll still be able to add them to orders through the order edit screen. You'll have to get creative with the subpoints... we do want reminder emails, though... we're thinking automated processes. And I like the idea of being able to search orders based on balance. I'm adding it to the issue tracker.

e) Gateway API. We support none right now. We will develop/port them as we go, but the alpha release only has a file called test_gateway.module to show the concept.

f) Customer emails. Well, you can send them an email notification from the order view page... when leaving an Order comment, check the Notify box and they'll receive an email with a link back to your site and the contents of your comment.

3) Theming products. Haven't even tried it yet... but,

a-c) Theming product pages... Check out the thread at http://www.ubercart.org/forum/development/467/how_can_i_theme_product_view

d) Multiple images. We'll hopefully integrate content.module, imagefield.module, and thickbox.module to provide much improved image support.

e) Is UC tied to any one theme? Nope... we use Garland because it's the default. It's not a good e-commerce theme, and we'd love to see some developed that we can funnel users to!

4) Right now, we've been assuming Javascript. 99% of our users for our other sites have JS enabled, and we weren't that concerned about catering to the other 1% when they could just turn it on to purchase from us. I imagine the cart and order pages would just not work, because AJAX is used for dynamic loading of div content all over the place. It is all jQuery, though, so everything that Drupal + jQuery works with, we work with.

PRODUCTS:
========

1) Display price. What you see may have seemed like a good idea when it was coded and just hasn't been revisited yet. If you have any suggestions, bring them to the issue tracker. :)

2) User initials are mentioned here: http://www.ubercart.org/ubercart_users_guide/store_settings

3) Adjusting weight format. Honestly, I hadn't thought of that, but I suppose we should. We already do it for currency. Posting to the issue tracker.

4) I suppose you're asking for default attributes to be set based on product class? Not a bad idea, maybe tricky to implement, but you can always start the discussion as a feature request/implementation proposal in the tracker.

5) Catalog error... yeah, that was an oversight when that function was written. I'm changing it now to not assume the catalog module is enabled. As soon as you create an account at ubercart.org I'll give you a Bug Finder badge. ;)

ORDERS:
=======

6) Test gateway issues... Yes, the payment gateway relies on the payment API found in uc_payment.module. I'm tweaking the .info file now and removing incorrect dependencies on uc_payment in the uc_order module.

7) Made an issue for these to remove module dependence where it shouldn't be. Also, I already found the bug that won't let you add products to an order manually without the catalog module installed. That will be fixed soon.

CHECKOUT
========

8-10) There may be bugs here, but it sounds like just some module configuration issues. Feel free to bring them up in the forums if you can't get them sorted out. The test_gateway module really just offers a gateway for credit card payments, so you have to enable uc_credit.module to test out the test_gateway.

CATEGORY (MENU) BLOCK
======================

11) For all your category blog suggestions, I'd love it if you came by the forums and posted them for others to comment on or added a feature request to the issue tracker. I think Lyle has already written them down and is considering what to change.

IMPLEMENTATION QUESTION
======================

12) Good ideas and feedback on product classes. Lyle wrote some stuff down and may be looking into already, but I'd recommended adding the suggestions to the issue tracker.

ADDRESSES
=========

We weren't too concerned with space in the database, but if a repeat customer orders again he or she may select a previously used address like Amazon.com allows... this is up for change if you have any ideas. I was trying to avoid needless complexity in the way addresses are stored and used later on. I really would like every order to be a snapshot of the customer/products so that if the customer changes things later or the product catalog changes, I can still come back and look at a 3 year old order and have all the info there.

AUTO SKUS
=========

heh I really don't think this is necessary and doubt we'll be implementing this. I can see a module might be able to use hook_form_alter to set the default value of that field on new products... but I doubt we'll investigate it further. It seems like most people have SKUs that relate to their products anyways, and not just random numbers.

SUMMARY
=======

Thank you! You posted a lot of great ideas and some bugs/oversights in the code. I think it's awesome that so many people are checking out the project and giving us good feedback. This is why I love the Drupal community! Heck, you can even check out http://www.ubercart.de to see how international support springs up literally overnight. : P

I would ask that you bring future bugs/feature requests to the issue tracker at ubercart.org where it's easier for us to manage and respond to... it'll also be easier for other folks looking for similar information, as I doubt they'll come back to the initial announcement thread for support. ; )

Ciao,
-Ryan

BryanSD’s picture

Originally, when I heard about this project I wasn't sure if it was coming from osCommerce roots or not. I am so glad to hear that someone with background in the osCommerce community is working on an osCommerce-like module Drupal. I'm looking forward to seeing the "best of" osCommerce to finally be available in Drupal. I will of course even be just as excited to have a way to migrate my osCommerce site/database into Drupal.

I understand exactly what you mean when you say that the "Drupal way" in some aspects is less desired than what osCommerce currently offers. As much as I like Drupal, I found osCommerce to really be the only open source shopping cart currently available to meet the needs of many store owners. While I have found that osCommerce meet the needs of the users, from my perspective, there was little enjoyment in getting the site ready. There are so many aspects of a modern CMS missing in osCommerce that I found my time with osCommerce to not be that rewarding of an experience. For those of us who are fans of Drupal but users of osCommerce...this module is very much appreciated.

Bryan
CMSReport

rszrama’s picture

I compiled a page of some screenshots so you can take a gander at some of the administrative interface. I haven't checked out the latest e-commerce, so there may have been improvements in this area, but we just found it too difficult to use for our high traffic sites. Check them out here:

http://www.ubercart.org/ubercart_screenshots

sime’s picture

Hi newdru

Not to comment on your findings, but we don't hang out in the forums answering support questions. Anyone interested in EC can look in the README for a few options.

rszrama’s picture

Thanks, sime. ; ) A quick note to keep me afloat, newdru... a lot of things in your posts are addressed elsewhere and may be figured out with a little bit of creative thinking. I'll reply once, but I'm sure you understand that after that it's back to working on the site/modules for me.

Island Usurper’s picture

I can't believe we thought we'd have something, even something half-finished, released at the end of January. We keep finding things to improve and fix up, and I'm sure that trend will continue for quite some time to come. Be sure that we are committed to making Übercart be the best we can make it.

While it may not look like it now, Übercart will have full i18n support. We just don't have all the information neccessary to do it ourselves. If you have some good ideas on how we can achieve that, stop by our Internationalization forum and tell us about them.

-----
Übercart -- One cart to rule them all.

mrbert’s picture

Am using E-commerce, just wondering if Übercart is better ? Any advice or comments(s)?

Griffonia | Voacanga Africana

BioALIEN’s picture

We're waiting for people like you to try out UC and report on your experience migrating from EC > UC. Then we can get a detailed and precise comparison table between the two modules.
------------------------------
BioALIEN
iScene Interactive :: iScene.eu

zenny’s picture

Just wondering whether this module or ecommerce module support multiple layers of clients and customers. The site that I am working on deals with different levels/groups of customers and clients. They sell the same product to different stockists, dealers, resellers, retailers and end consumers, but the prices differs, depending on the nature of the client.

Can different policy and price range for the same product for different groups be possible with ubercart and/or ecoomerce module?

Or has that been achieved already? In the latter case, pointers or links are requested. Thanks.

rszrama’s picture

Hmm.. I believe e-commerce may be perfect for you here with role based discounts. I don't know all the ins and outs of their system, but I know Ubercart can't handle this right now. The basic systems needed for price adjustments and discounts are in place, but there is no real support.

dougdagaz’s picture

I just came across this string as we are trying to go live w/ the current ecomm/Drupal module in 4.7. I will have more comments later, but on the topic of role discounts -- they DO NOT WORK in the current 4.7 release. But if they did work, the problem with how they are implemented: it is an 'all or nothing' application. This causes problems when there are products that a role discount would not be applied to.

Ideally, the product administration would allow you to 'disable role discounts for this product' as a first step.

As usual..any 'little' feature set, opens up a can of worms....

I will be downloading the Ubercart -- all in favor of 'besting' an OS commerce set up

Thank you!
Doug

Andy_Lowe’s picture

This is good to know for the future. When we develop role based discounts, we will make sure to enable exceptions by product. While we are at it we should enable exceptions by class and category. Anything else you would like to see in role based discounts?
-Andy
Restaurant Equipment

dougdagaz’s picture

Sorry for the lag time...

A suggestion on role based discounts:

Include a variable role base discount by product, class and category too... i.e. Wine Club members - 15% on all case purchases, 10% on individual wines, but only 5% on Ports.... so an exception, would allow the options : (perhaps?)

Choice of:
global setting-

default = apply role discount OR default = do not apply role discount

allow for individual settings on class/category/product that override default setting

no role discount to this class or category or product

apply role discount of xx% or SPECIFIED dollar amount to this class or category or product...

(Example -- for the Chamber of Commerce - Luncheons (event product) $35.00 for non-members and $30.00 for members. So, the ability to select "give role = 'chamber members' '$5.00' (fill in $$ field) discount to the product class 'monthly luncheons'

Doug
http://www.dagazsolutions.com

Check out the latest Dagaz Drupal projects at
http://www.chatomvineyards.com and http://www.sanramon.org

sime’s picture

Yeah, as rszrama done sez, ecommerce has role_discount (although I've never used it) and now also flexicharge will do this too. I won't say our support is comprehensive though, for example flexicharge doesn't support displaying the altered price on the product (just applies in the cart).

avolve’s picture

i am not sure if this has been covered or not - i had not noted it.

I worked with the 4.7 eCommerce module for some time - i gave up and was waiting for it for 5.0.

I am now looking at/having a play with Ubercart. I have noted a couple things. I am using working on a site for a friend as a means to learn the system. My friend is an artist and sell's her illustrations online. here are things i would like to be able to do:

When an item is sold it is marked as sold out.

  • being sold changes an attribute and it is moved to a different category automatically
  • then i can(?) set up a view or similar (other ideas?) to create a gallery/catalog of sold out illustrations

I recall that eCommerce let you list a number of products that would then indicate sold out - i think it was based on inventory management as opposed to what i want...

shipping
i noted there are only options for US states. Will support for other countries be added, or is there a way to change this. I am personally interested in including Canada/Australia. The quick fix is to enable typed states, though can lead to problems with typo's as i am sure you are familiar.

[i have not looked into this with taxes as the site i am working on does not charge them]

Thank you for all you work on this!

avolve designs | ethical by design

rszrama’s picture

Hey, avolve. Thanks for the feedback. To answer your second question first, Alpha 4/5 saw huge improvements to the internationalization setup. I have started getting contributed country import files that ship with Ubercart (and are kept up in support threads in our i18n forum) that let you import new countries and their states/regions. There already is one for Canada, and someone has mentioned helping with Australia. You'd be more than welcome to pitch in, though! Near the top of my list for Alpha 6 is to make sure people can select a country at checkout and it will update the state select box for the country.

As for the sold out products, at the moment we don't have inventory. I do want to add basic inventory control to Ubercart very soon. We'll have a very robust solution ported over in the future, but a basic stock level would be great for most people. I made a note of this here:

http://www.ubercart.org/forum/development/620/alpha_6_battle_plans#comme...

Feel free to join the forums and offer up more feedback! We're happy to help you get setup. : )