We are looking to build a website that allows anyone with internet access and digital photos to get large prints/posters made, 18" x 24". The person would access the site, upload a picture, review this picture online, add more pictures if needed, and finally place the order. The system would allow for an unlimited amount of pictures to be uploaded for one order, and any quantity of posters for each picture. For instance, Joe uploads 3 pictures. He wants 4 prints of poster #1, 2 prints of poster #2, and 25 prints of poster #3. Once the order is place, we will download the image files from our server, print the posters and ship them out. We already have the printing infrastructure in place, we just need a better system of taking orders online.
We are printing company with a substantial online presence. Using a slightly modified shopping cart system that allows uploads, we have been taking online orders for about 1 year now. After starting a new site that is geared towards "short run poster printing", quantities less than 150, we have decided that we need to upgrade our current system to allow functions that the shopping cart system doesn't have. Two of the main complaints that we get from our customers are there is no image preview and no order tracking. For the image preview, this could get a little complicated, but using a GNU available software like GD Image or ImagePreview, this should be a snap. These programs also offer other utilities like scaling, rotating, etc. The ordering tracking system could be something as simple as updating the status of the order, but we'll need to make it efficent with the use of barcodes.
The next biggest complaint that we get about our current system is our shipping method, which desperately needs to be changed. We need to incorporate a seemless shipping method into the system. If we can have the system calculate the postage and print a label out with the order, this will greatly reduce time on our end. We can incorporate a shipping label within the order ticket. This is done via "peel and stick" labels, which is a label integrated into a normal sheet of paper. Only part of the sheet is the label, if that makes sense.
One of the things that we have implemented in our site currently is a poor man's tracking system, which we will need to implement in the new site as well. Basically, when an order is placed, the images in the corresponding order will be renamed with the order number.
Please check out [url removed, login to view] for an idea of what we are looking for.
• Simple and easy layout - needs to be template based and we need a simple way to edit the static pages and add static pages, and the navigation for them. Things like "Contact Us", "FAQ", etc.
• Simple shopping cart system, should be able to handle unlimited products in cart
• Upload progress animation
• Uploaded image preview
• Ability to specify quantity of posters
• Resolution check - system will tell customer if the uploaded image is a high enough resolution to print, ie: 2000 x 3000 or something...
• Coupon code field
• An editable "Testimonial" section of the front page (something that will allow you to add, edit or delete testimonials easily)
• Contact page
• Needs to have an instant pricing calculator integrated within the product quantity field like at this printing website: [url removed, login to view]
• We'll be doing the design and layout for the website
-Back End -
• User Account
- Let's keep it simple. Username and password. How about just a simple sign-up with billing and shipping address fields. Paypal Payments Pro will grab the billing information from the user account. Also, users can see their recent orders, the order number, date of placement, order status and tracking information will be provided. See [url removed, login to view] - this is what we want.
- Let's also have permissions. So that we can make a user a full admin, or a partial admin that would only have access to maybe the order pages (can lookup and see orders) and the tracking page (will speciy tracking info: see below)
• Admin control panel
- statistics page (number of orders and gross $ monthly, will list months)
- a place to manage orders, basically just to pull and order up and be able to print it
- Need a shipping control panel, probably will need a way to edit the shipping of packages, cancel shipments for certain orders, add shipping to an order, change the shipping preferences of an order, etc.
- Multiple shipping options (ie: ground, 2 day, next day, etc.) The way that our shipping is setup now is basically a flat $10 charge per order for shipping any amount of posters. We'd like to keep something like that available to customers, but also provide expedited shipping choices. Because that $10 for flat shipping covers "handling" as well, we'll need to implement some code that will allow us to add a dollar amount on top of the expedited shipping services if the user chooses that, to account for our handling costs.
- Pricing Schedule - we need to be able to change the pricing schedule in the future if necessary. For instance, right now our system allows us to have an individual item pricing, then a flat price per item. For instance, if Joe ordered 10 posters and the posters are $1.50 each that's $15.00 for that one poster. We could add an "item base charge" onto that if we wanted, like $10. So for that poster alone, it would cost $25.00 for the 10 posters. We'd also like to be able to put an "order base charge" on the order as a whole. This would simplify the flat shipping costs. We'll take the above order as an example. Let's say Joe orders 10 posters each of 2 images, at $1.50 each plus the $10 item base charge. That's $50. But we also want to add an “order base charge" of $11. That's brings the total for the order to $61.00. Understand? Great. Now, along with this, we need to be able to specify rules that these extra costs apply. But we can make a few scenarios and leave it at that.
- We need to be able to set a sales tax amount (%)
- We need to be able to have this system secure and use PayPal Payments Pro
• Tracking System
- Here's an easy way to handle the tracking. We'll have 3 different status's of orders: "Order Placed", "Order Printed" and "Order Shipped". When a user places an order, the order status will be "Order Placed". Then for changing the order status quickly, let's have a single page that an admin will login to with password of course. It will just be a page with a field that you will type in the order number and hit return. By doing this, it will change the order status of that order to "Order Printed". We can also incorporate the use of a barcode on the order invoice that will be the order number. Then all the admin will have to do it scan it and hit return. For shipping status, depending on what carrier we use, we could either have another status page that would make the status "Order Shipped", or if we use UPS, it should just automatically send tracking information to the user. We may want to incorporate having the tracking number in the order status part anyways.
• Order invoice
- We need to incorporate an integrated label that would have all the order information on it, plus the shipping label. Take a look at this website:
[url removed, login to view]
this has what appears to be the correct label for UPS or FedEx.
- Shipping address, seperate from shipping label
- Billing address
- Each item ordered plus quantity of item
- Total number of items ordered
- Referring url
- IP Address of user
The system also needs to send an invoice to the customer's email.
• File Handling
How the system works now, works quite well - I'll walk you through it. Basically a user goes to the item page, uploads an image file. This gets put into a temp directory and once the order is placed and an order number is defined, the image file(s) get saved into another directory where it is renamed as the order number. We then download this file and run it through a script that places it in an InDesign template which has two pages. The image gets resized proportionally to have the maximum length and width, rotating if necessary. On the rear of the page, the script places the filename on the back so that we know what order that it corresponds with. This is then saved as a Postscript file and sent to the printer.
If we could automate this entire process on the website, that would be great, but it is not necessary at this point since the way we have now works quite well. But, here is what we would need if we wanted to automate this online:
- Create a 2 page PDF or Postscript file (18" x 24")
- Page 1: Scale image to 17 x 23, but proportionally. The dimensions of the image may not end up being 17 x 23, but maybe 16.5 x 23. The image must be rotate if necessary to achieve maximum size. The sheet size is 18" x 24", but we put a 1/2" white border around all sides, thus giving it a 17 x 23 dimension.
- Page 2: We just need to place the order number at the bottom of the page, and probably a barcode too if we implement that.
- File will need to be saved as a PDF and moved to directory.
-System will also tell if uploaded file meets the resolution requirements, like on [url removed, login to view] - try uploading a small file, medium file, and large file...
This isn't all that much more work, but you'll have to be experienced in PDFLib or the like to do this effectively.
• Payment Handling & Accounting
Because we want to use Paypal Website Payments Pro, we will need to make it so that a user does not need to create an account to place an order, so keep that in mind.
Right now we use Paypal and download our history to view the accounting side. This may need to change to something on the website, but you'd need to integrate paypal fees so we know what our net payment would be. This is something that can come later, but maybe think about it and if it's easy enough we can do it.
Went over this a little bit before, but I wanted to add that we can calculate the exact shipping weights for each quantity of posters. We use tubes to ship 10 posters and under, and a flat box to ship more than 10.
Please read this desription thouroughly and present any questions that you have. We will not accept any offer that clearly has not read the description completely. Thank you for your time.