Need a plugin for eCommerce developed

Permalink
I need a quote for a plugin that will extend eCommerce.

Details:
The details are simple. I need an additional type of "Customer Choices" added to the eCommerce system.
The new type would be image/file upload. This would allow customers to upload files/images that would be attached to the product in the shopping cart.

Example: Lets say I had a product that involved me printing a users picture on the actual product. They will need to be able to upload the desired image then add the product with the attached image to the shopping cart. (this is just an example, not what I am planning on actually doing)

Since the user will not necessarily have a user account on the site I would require that they are not taken to the file manager to upload the files/images.

There should also need to be options to set the allowed file types and max file size.

This plugin will have to work with all the latest versions of Concrete5 and eCommerce.
If there are other features that you feel would fall in line with what I need please feel free to share.

Since I would be paying for this work I would expect an unlimited usage, however would expect some sort of discount if you desire to list the plugin on the marketplace for other to purchase.

 
mesuva replied on at Permalink Reply
mesuva
I'd be careful not underestimate the complexity of something like this, there are lots of things to consider in this scenario.

My suggestion would be that you'd need a product attribute to flag products that require an upload, but that the actual prompting for and uploading of the files required might be better off handled by an additional step in the checkout process, instead of trying to handle the upload on addition to the cart. I'm thinking it would be much easier to handle validation, error messages, etc, via a proper 'single page' instead of trying to cram the functionality into an attribute.

I'm thinking sort of like the way the Digital Downloads add-on for eCommerce works, where it adds a download page to the checkout process, listing the available downloads, but instead you'd have it prompt for each product to upload something.

Just sharing my thoughts!

-Ryan
goldhat replied on at Permalink Reply
Could it be a prompt (modal screen) during add to cart? I understand what you're saying is you need a space where you can display validation messages or a way to let the user retry if their upload fails. And it may need separation there from the processing the addition to the cart. Could you get that by having a modal show after add to cart?
mesuva replied on at Permalink Reply
mesuva
I could see that working, perhaps more fiddly to build, but I reckon possible using a tools script. I personally like having an actual page where you can be quite verbose with an instruction (single pages can have editable areas too which is awesome), but I can see how a model prompt could solve the problem. It would just have to handle cases where someone adds a product to the cart and then closes the upload modal (refreshes, navigates elsewhere, etc) and skips the upload step - I could see that it would still need to check further in the checkout process for missing files.

My main point was really that a custom 'customer choice' attribute for a product by itself might not be enough to make this work nicely, there'd need to be some other scripts/pages to handle the uploading stuff.
DanHolley replied on at Permalink Reply
I understand the possible need for additional steps. However this could end up getting overly complex for the user if this step happens upon checkout. There is a pretty good chance there will be multiple items in the shopping cart that will all need images/files uploaded for them. I thought it best to handle the upload when the product is selected instead of having the user figure out uploading multiple images in the checkout process, then making sure they are attached to the correct product.
mesuva replied on at Permalink Reply
mesuva
I thought a bit more about this over the weekend and I'm still pretty confident that things would be simpler to be handled in one page in the checkout process rather than handling the upload as part of the add to cart, both in terms of the development but also for customers. I do agree that conceptually it makes a lot of sense to upload a file at the same time as picking a product, but I'm also thinking it's better to leave the more complex user tasks to later in the process and just let them browse and select products without anything initially technical to do.

You'd also need to cram file uploading instructions, error and confirmation messages all into either the cart or a dialog, I could see this getting really messy, whereas a page in the checkout process has lots more breathing room.

On a checkout page, you'd just have a list of the products they've selected that require an upload, and I can envisage on this page a fairly clear set of instructions. It basically would have a series of file uploaders, under each product that needs a file, which would all need to be successfully completed before the checkout process could continue. I actually see that they'd be less chance here to mix up files than if the uploads were spaced out.

From a 'flow' perspective, I'd also imagine that if customers have selected their products, have started going through the checkout process and entered in some personal details, they'd be more committed to their order than someone who hasn't - so therefore I'm thinking if they start having trouble uploading files earlier in the shopping process, they are more likely to abandon their shopping earlier, whereas later in the process they'll persist more as they are more committed to placing the order.

I could image though a file upload step on add-to-cart, but I still think this would be a separate page, rather than a small dialog or file-selector next to the add to cart button.

I actually think this does come down a bit to the type of products on sale and whether it needs to give you previews of what your product will look like with your upload.

Ultimately the best thing to do is wireframe/sketch this out, how you think it would operate. Include the process and messages for both successes and the various different failure scenarios - find the problems in the process before any development.

My business partner didn't quite agree with my perspective when I asked her about it, she though the add-to-cart step was more what people would expect - so I'm quite happy to be proven wrong here! :-)
TooqInc replied on at Permalink Reply
TooqInc
Just a few quick thoughts for you:

1. Leaving the upload until after the purchase could result in more returns as the risk of the upload not working, or more likely, the user not understanding how it works, getting frustrated and abandoning, is higher. High returns could have your payment processor make life miserable for your business.
2. Leaving it until later could also create a lack of confidence in the buyer. "This vendor doesn't even know what I want yet, how can they charge me before they know?" may stunt your sales.
3. Alternatively, leaving it until the end could help to capture more sales by streamlining the checkout process. Once paid, users are more likely to stick with getting the upload completed even if they run into issues. This really depends on your market and product. Probably best to wireframe both scenarios and get it in front of some real customers for input.
4. Adding it to the checkout flow helps ensure that the transactions you capture are solid sales that don't require verification before you get started on filling the order. You have the file and the money, so it's safe to assume that you can start. If you leave the upload until after the sale, you might end up chasing people to get the files you need (while you have their money but can't spend it!). This would be my worst case scenario - Sales that cannot be turned into profits.
5. If it is likely to be a single product sold per transaction, consider adding a single section on a page of the checkout process. The eComm code is very complex, but tailgating on an existing page should work - just mind the update process for the eComm add-on.
6. If you sell multiple items per transaction, it is really best to have them pick as they add items to the cart. This is the most common usage you see and therefore what people will expect. Again, this comes down to expectation and trust as you accept stranger's money online. Don't try to be groundbreaking on the transaction structure, but do the expected in the smoothest and easiest way possible.

It's a bit rambly, but hopefully there's some food for thought that helps you figure things out.

-Brian
DanHolley replied on at Permalink Reply
I feel it would be best to have the uploading of the images/files to be part of the product selection phase and not the checkout steps. However I do feel that the uploading should take place on its own step (page) and not be done on the product page where many of the other product options would be selected.

I am going to put together some wireframes/diagrams of the user flow. Im sure this will help quite a bit.
barco57 replied on at Permalink Reply
barco57
As someone who deals with Ecommerce sites daily I have seen this handled both ways. oscommerce and zencart both deal with attaching the file at the product page when you go to place the item in your cart by having a "browse' button on the page and making it mandatory to select a file from your local computer before your allowed to place the product in the cart. The other way I have seen this done is to do it in the checkout prior to the shipping method selection by checking the cart for product requiring a file to be uploaded and inserting a page that requests this information, and will check the cart for multiple products requiring uploads and cycle you through the form multiple times before moving on to shipping and payment with text like the following:

---------------------------------------------------------
The product(s) you ordered require some additional information in order to complete your order.

You can see the product information below, and there is a form below where you can provide the information we need. You'll be prompted to fill out a form like this for each product that you ordered that requires this additional information.

You are currently working on product 1 of 1.

---------------------------------------------------------