We need a Flash based shopping cart module (Payment Module) that can use Paypal "standard payment" (not pro) to accept payment. It will be part of a flash website of a professional photographer.
A. Program Structure
There will be a main flash program (referred to as Main Program, developed ourselves) that communicates with the Payment Module developed by a freelance programmer.
The Main Program will present photos of the photographer. Under each photo there will be an "Add to Cart" button.
Near the main menu in the Main Program, there are a shopping cart icon, a number indicating the total number of photos in the cart and the sub value of the cart.
Near the shopping cart icon, there are a 'View Cart' button and a 'Check Out' button.
The Main Program will communicate with the Payment Module when user clicks the "Add to Cart" button, the "View Cart" button or the "Check Out" button.
B. Use Cases
Case 0: Initialize
When the Main Program is loaded, it will call a function of the Payment Module; pass the user login name and shopping cart expiration time. The Payment Module will load the saved shopping cart content, which is saved at user's client side hard drive. If the content is not expired, it will update the content of the shopping cart. In the initialization function, the Main Program will also notify the Payment Module whether optional fields should be displayed (See use case 2 for details).
Case 1: Add to Cart
User clicks "Add to Cart" button. The Main Program will pop up a window asking for quantity and print size, and then it will call a function of the Payment Module, pass the photo details. The photo details passed in the function are defined in “Section E. Data Structure”. The Payment Module will notify the Main Program to update the total photo number and sub-total value.
Case 2: View Cart
User clicks the 'View Cart' button. The Main Program will call a function of the Payment Module to show the shopping cart content. The Payment Module will show something like a pop up window/panel, where user can do the following:
- view the details of each photo item in the shopping cart, including
photo name, thumbnail, print size, optional field 1, optional field 2, optional field 3, unit price, quantity, total amount of the item
- change quantity
- clear shopping cart
- apply discount coupon
- see subtotal before and after discount
- check out
If user makes any changes, the Payment Module will call the Main Program to notify the changes.
Case 3: Check Out
User clicks 'Check Out' button on the Main Program or on the Cart Content Panel.
The Payment Module will launch the Paypal website, and post the shopping cart content to Paypal. User should see the order details on Paypal's webpage, input the credit card info and finish the payment though Paypal.
C. User Interface
The Payment Module is responsible to provide the shopping review pop up window, which should contain the following information:
shopping cart content list, each item line contains: photo name, thumbnail image, photo print size, optional field 1, optional field 2, optional field 3, unit price, quantity, total amount of the item
Change quantity button
Clear shopping button
Check out button
D. Program Interface functions
Main Program Calls Payment Module
1. Init (user login, optional fields display switches, content expiration period)
2. AddItem (ShoppingItem)
4. Shopping cart content query
Payment Module Calls Main Program:
5. Shopping cart change notification
E. Data structure (For “Add to Cart” function all)
ShoppingItem data class
Flash Source Code (. FLA files and all other project files that needed to build the flash module and testing Flash movie)
Compatible with Flash Player 8
Compatible with ActionScript 2
More details about the ShoopingItem:
1. The photoID and printSize together form the key.
For example, Photo01 and 4x6 print size is one item in the shopping cart. Photo01 and 5x7 print size is ANOTHER item in the shopping cart.
2. I have made a small change to the ShoppingItem data structure.
The image URL is added so that the Paypemt Module only need to store the link to the local hard drive instead of the thumbnail images.
The URL is linked to the original image (large size), so the Payment Module needs to resize it when it has to recover the shopping cart content from the local hard drive data.
The optioal field strings are also passed, but they can be empty. See "B. Use Cases - Case 0: Initialize" for more info.
ShoppingItem data class
Aloha, Flash guru. I have built a basic shopping cart in Flash that integrates with PP so this would just be taking my previous work a step further. [login to view URL]