PrestaShop custom POS Point Of Sale module for backend needed

Completed Posted Oct 30, 2011 Paid on delivery
Completed Paid on delivery

*Please note:*

If you are a COMPANY or an AGENCY with more than 2 people/employees, then **please do NOT waste your time applying**. I am only interested in working with an individual, or at most 2 people.

We need a completely custom module for PrestaShop to add new additional backend functionality.

Some basic functionalities that the module will need are:

- adding new customers

- searching for existing customers

- adding/removing products from a new order

- adding completed orders to existing customer accounts

- using existing enabled payment modules to process credit card payments

- module will need to be made installable from the Modules tab

We are looking for an experienced PrestaShop programmer, that has worked on custom modules before. You must be very familiar with the PrestaShop code and how it works.

*

See additional information for more details.

*When you summarize the bid in your own words (bid spam prevention), include the following:

#1- Please specify whether you are an Individual freelancer or a Company.

#2- If you are a company, please specify how many employees including yourself.

#3- Include the code word "banana" so I know you took the time to read the entire post.

*Please note:*

If you are a COMPANY or an AGENCY with more than 2 people/employees, then **please do NOT waste your time applying**. I am only interested in working with an individual, or at most 2 people.

## Deliverables

We expect a high quality, polished product that YOU have bug tested. We should not have to micro manage every little step and change. You must be able to use "common sense" to fix things that just don't work right, or that don't look right.

You must communicate DAILY with short update of what was accomplished, and 'commit' and 'push' changes to our repository each day.

You will be working with latest stable release of PrestaShop v1.4.5.1 but you will also be required to make it compatible with the upcoming release of v1.5.

Payments will be setup for specific milestones in 3 phases, with phase 1 being the largest. There will be at least two interviews before the project is awarded.

**FULL PROJECT DETAILS & OVERVIEW**

**POS Point of Sale Module for PrestaShop**

**ADMIN TABS**

**POS -** This will be the main tab and will appear as a top level tab in the Back Office.

Will be named/located at: /admin/tabs/AdminPos

**Settings -** This is a sub-tab of POS tab and will contain any settings or options needed for the main POS screen and module.

Will be named/located at: /admin/tabs/AdminPosSettings

**PrestaShop Module name:**

POS Point of Sale

This needs to be an INSTALLABLE module (see Phase 3).

Module folder/directory name: /modules/pospointofsale

**JavaScript:**

Since its a back office module only, this can use as much AJAX/jQuery/JavaScript as you want.

**OVERVIEW**

This module will allow an Employee to log in to the back office and take/enter manual orders from a live person or somebody on the phone. For example, at a conference or event, sales of product to real people can be entered by an employee. But instead of using the normal online shop that most customers would see if they visit the website, the Employee would have access to additional features so it would act more like a Point Of Sale system or a Cash Register.

It is based on this idea: <[url removed, login to view]> Login to site and click on SALES to see the screen and functionality I am referring too.

Some more notes:

- The employee should be able to search for existing customers or add a new customer to db from the POS screen.

- When an employee takes an order, it can either be assigned to an existing customer account, or it can be processed as a GUEST order.

- There will be an additional settings sub-tab that will have an option to either allow or dis-allow the employee to use GUEST. Note that this setting is independent of the "Enable guest checkout" on Preferences tab.

- ALL products from the Catalogue database should be available to employee, even if the product is set to disabled. This will allow you to have special products available for sale in the POS module that are not available to regular online customers.

- There will be an additional settings sub-tab that will have a "POS Product Ignore" table (like a blacklist), so that you can specify which products in the Catalogue database will not be available in the POS module.

- Must have the ability to use multiple payment types for one order. For example, if the order total is $100, they can pay with cash and/or check and/or credit card.

- Cash and check payment methods must always be made available to POS module, even if they are disabled for regular online shoppers.

- If credit card is choosen, then it must hook/use existing enabled payment modules to process the credit card immediately upon clicking Complete Sale. Will set this option up in the Settings sub-tab.

- Once the order is completed, it should be saved in the database as a normal order that appears under the Orders tab. The order will also be displayed on the screen using a smarty template file so that it can be printed as a receipt.

**PHASES of Project:**

Phase 1

Set up POS Tab and all necessary functionality within that page, including:

- Product Search and Adding to Shopping Cart

- Removing Products from Shopping Cart

- Modify products in cart (Quantity, Price, Discount)

- Customer Search by Name or Email or Phone

- Adding New Customer

- Sub-Totals area

- Payment Area

- Cancel Sale

- Complete Sale

- Display of completed orders with option to print

- Orders being stored properly in database

- Set up Settings Sub-Tab and the functionality to Allow/Dis-Allow Guest Checkout and Ignore Products table, which should all be incorporated into the main POS Tab

The only functionality that is not required to be complete in Phase 1, is the actual Credit Card processing (see Phase 2) and making the module installable (see Phase 3).

Phase 2

Set up credit card processing functionality, incuding Settings Sub-Tab options.

Phase 3

Package everything into an installable PrestaShop module that works with both v1.4.5.1 and v1.5. It should work when module is installed with a PrestaShop installation that has never had the POS module installed before.

**

**

**LAYOUT of POS Tab** (see attached sample **[url removed, login to view]**)

Based on example site I showed you: <[url removed, login to view]> (login then click on SALES) but not an exact copy.

CSS should be PrestaShop back office theme so that if the employee changes their backoffice theme, the POS module will change accordingly.

These things are **NOT** required from the example site above:

#1- Does not need a Register Mode. We will incorporate refunds on a separate tab in a future update.

#2- Does not need Suspend Sale/Suspended Sales buttons. This will be a future feature.

#3- Does not need New Item (add new product to db) button. This will be a future feature.

#4- No UPDATE buttons for cart section. Use JavaScript/jQuery ONCHANGE instead, so that if Price or Quantity or Discount are changed for an item, the totals will re-calculate when you leave the box.

These things **ARE** required from the example site above:

LEFT SIDE OF SCREEN

#1- POS Search Product dialog.

#2- POS Shopping Cart area (where products gets added under Search Product dialog). Note that Quantity, Price and Discount need to be changeable

RIGHT SIDE OF SCREEN

#3- POS Cancel Sale button (rename this button to Cancel Order).

#4- POS Search Customer dialog, and Add New Customer button.

#5- POS Shopping Cart Summary.

#6- Payment Method (just need cash, check and credit card).

#7- Complete Sale button (hidden until needed).

**SETTINGS SUB-TAB** (see attached sample **[url removed, login to view]**)

#1- Settings Sub-Tab should have a checkbox option that says "Allow orders to be processed with GUEST account?" Default would be yes (checked). This should be independent of the Preferences Tab "Allow Guest Checkout" option, so even if Guest checkout is disabled for online shoppers, it should still work in the POS if needed.

#2- Settings Sub-Tab will need to display a table/list that will be empty at first, and the table name will be "POS PRODUCT IGNORE LIST". Choosing ADD PRODUCT will show you a list of ALL products in the Catalogue database (including those that are set to Disabled). You can then add a product to the Ignore List, and then that product will NOT be available in the POS product search. There should be an X beside each product added to the Ignore List so that it can be deleted if want the product available in the POS product search again.

**OTHER INFORMATION:**

#1- Clicking COMPLETE SALE should check if a customer was selected/added. If no customer was selected, then it should say either "*No customer selected. Would you like to continue processing this order as the GUEST account?*" or "*GUEST account checkout disabled. Please select a customer before completing sale.*"

#2- If Credit Card is chosen as one of the payment options, then clicking COMPLETE SALE will use whatever payment gateway is setup to process the credit card. If the credit card fails, then the order should NOT be processed and an error dialog should pop up displaying the problem.

#3- If Check is chosen as one of the payment options, there needs to be an additional text box appear that they can enter the check number into. This would then be a mandatory/required field and they would have to enter something into it (text and/or numbers) before the order can be processed.

#4- If an item is added to the POS shopping cart from the Search Product dialog, it will ALWAYS go on a new line, even if the item is already in the cart. So if I already have a Blue Widget in the POS cart, and I add another Blue Widget (from the Search Product dialog) then there should be two separate entries for Blue Widgets.

#5- Upon completion of an order, it will be stored in the database and then displayed on the screen for receipt printing using a smarty template. The order should be stored in the database in the standard way orders are stored. All payments methods used should be easily visible. It should somehow be noted on the order that "**Order Taken By: JS123**", where the JS would be the first and last initial of the Employee name that is logged in (the employee using the POS), and 123 would be the ID of that employee from of the Employees tab.

#6- When using the Search Product box, it should use AJAX/jQuery to immediately show a drop down list of all matches. So if I type the letter "a" into the Product Search box, I will immediately get a list of all Products that have an "a" somewhere in the name. When I type a second letter like "ab", then the list will be filtered down to only products that have the letter combination. Clicking a product from the drop down list should immediately add it to the POS shopping cart.

The same filtering as above applies to the Customer Search box as well, but you should have the option of searching customers by either Name or Email or Phone number. When results are returned in the drop down list, they should ALWAYS show as "Firstname Lastname - Email - Phone" in order to distinguish between customers with the same name.

Optimization Suggestion: Since we know that we will always be searching the product database and customer database everytime we use POS, maybe we should always pre-load customers and products into memory everytime we start the POS Tab or Cancel the Order? Or can we rely on ajax/jquery database queries to be sufficiently fast? Please discuss this with me on what you think is the best way to implement this.

#7- You should be able to add a new customer to db without leaving the POS screen. Probably a popup of some kind would work.

#8- Security should not be compromised in any way with the implementation of this module. For example, if any ajax is used to access product or customer information, the ajax should not be useable from outside of the module or if the employee does not have sufficient privileges.

Engineering Project Management Software Architecture Software Testing

Project ID: #3664112

About the project

2 proposals Remote project Active Nov 10, 2011

Awarded to:

hamsavn

See private message.

$750 USD in 45 days
(17 Reviews)
4.9

2 freelancers are bidding on average $625 for this job

bliving1012

See private message.

$500.65 USD in 45 days
(11 Reviews)
3.3