Odoo v8 Point of sale – Pricelist options

As we have already developed a module to apply pricelist in v7 Point of Sale but there are some changes we made for Odoo v8 point of sale.

As we normally do, here we have created a pricelist of 10%.

Odoo pricelist

Now in this screen, we assign pricelist to customer.

Assign pricelist to customer

Now, when we select customer from Point of Sale, then automatically, we can see in drop down list, particular pricelist will be visible.

pricelist in pos from customer

When we click on product, then that pricelist will be applied in the list.

Apply pricelist on products

Here are the list of pricelist options available. We can directly select pricelist from here also if we do not assign pricelist to customer but yes, as we normally do in Sales, for pricelist we must need customer to be selected.

Odoo pricelist options in pos


Odoo Point of Sale – Self Service

We are introducing Odoo POS module which can be use for KIOSK system. It is useful during ‘Self Service’ type area where user can deposit some amount in advance and use that amount during purchase. User can able to purchase according to available balance.

It requires to configure type and journal first as we can see in below screen.

POS Configuration for self service

User will login into system by click on ‘Select User’ button. It is possible to login by unique barcode value assigned to each user. User has to ‘Validate’ order for completing payment process and amount will be deduct from his account.

POS Self Service Session

User can be selected by name.

Select user from POS

User can be selected by barcode also.

Select user barcode from POS

User has to enter assigned PIN for verification.

Enter user pin

As we can see on top, after successful login, user can get information about his balance.

POS Login User Detail

On each product add, POS will check available balance and notify if insufficient balance.

User's balance

At the end, user will get an Email and SMS for successful transaction like below.

Transaction Email

Odoo Multi Company Configuration

Odoo-8 has Multicompany configuration, It is simple to use and handle. Now let us see about it.

To get multicompany options First go to Settings–>General Settings , in that check on the Manage multiple companiesoption. Check below multi

Now you set the Multicompany. Dont get panic that no difference in Screen.. but you should have one admin to handle multicompany so that he can view Company hierarchy,etc.

Now next step give one user Multicompany rights(probably admin)… By going to        Settings–>Users       in that go to admin and check on the Multi Companies .. as below


Now Everything is set.. now you can view company hierarchy, Allowed companies, etc…

Work Arounding:

As a sample I will create some companies and work around it.

I have created 3 companies with one company as parent company..

Parent company– Rabel CO

3 child named rabel 1 , rabel 2 , rabel 3

So company hierarchy is as follows…


Create users and give Access rights to them to particular company as below…


Now anand can see only the data or record of “rebel 1” only. You can restrict users by giving values to allowed companies.


According to security Rule you may see parent company details like customers,etc, also Security Rules define what data who should see…

Major diff is.. If a user is Multicompany user then he will see Company (Drop down box)… If a user is not Multicompany user he will not see Company (Drop down box)…

Allowed companies will filter the record of other child companies…..

Thats It,..


Thank you all.,,:):)

Odoo POS Pop Ups

In odoo retailers will be mostly concentrating on POS because that minimizes their effort to more extreme,….

Now on developer side it is tough work to customize that pos.. since it is collaboration of js, jquery with python…  Some times head ache..😛:) ..

No problem now we will see how to create a pop up in odoo POS,,,,

For this you need some basic knowledge in

1) js, jquery


3)odoo qweb widgets

Now we are going to create a popup asking name to enter in pos….

create a module in odoo.. with init and openerp file…

Now normally on creation of wizard we used to create a form for pop right.. like that create one as below..

create model.py file with following code:

from openerp import api, fields, models
from openerp.osv import osv

class pos_model(models.Model):
_name = ‘pos.popup’


def okay_refresh(self,cr,uid,ids,context=None):





view.xml file has this:

<?xml version=”1.0″ encoding=”utf-8″?>
<record model=”ir.actions.act_window” id=”create_pop_up”>
<field name=”name”>Pop up</field>
<field name=”res_model”>pos.popup</field>
<field name=”view_mode”>form</field>

<record id=”create_pop_form” model=”ir.ui.view”>
<field name=”name”>Pop up</field>
<field name=”model”>pos.popup</field>
<field name=”type”>form</field>
<field name=”arch” type=”xml”>
<form string=”Pop up” version=”7.0″>

<br />
<h2>Enter the name:</h2>
<br /><br />
<label for=”name” style=”clear:left;text-align:right;padding-right:10px;float:left;padding-left:5em “/>
<field name=”name” nolable=”1″ style=”float:left;padding-left:5em “/><br /><br />

<br />
<br />


Now its turn for POS module change..

TO add button to POS.. create static–>src–>xml–>pop_up.xml

<?xml version=”1.0″ encoding=”UTF-8″?>
<template id=”payment_screen”>
<t t-extend=”PosWidget”>

<t t-jquery=”div.pos-branding” t-operation=”inner”>
<button class=”popup-misc” style=”position:absolute;left:300px; top:7px;width: 100px; height: 37px; font-size:15px;”>Name popup</button>


Now create a file static–>src–>js–>pos_pop.js

in that paste it

openerp.module_name = function(instance){

var module = instance.point_of_sale; 
var QWeb = instance.web.qweb;

build_widgets: function(){
var self = this;

type: ‘ir.actions.act_window’,
res_model: “pos.popup”,

views: [[false, ‘form’]],
target: ‘new’,
context: {},





create a file template.xml in that paste the following code


<template id=”assets_frontend” inherit_id=”web.assets_common”>
<xpath expr=”.” position=”inside”>



This will add your js to odoo frond end..

Finally add all the xml files in _openerp__.py…

Thats it.. popup is now okay…. Ping me if you get any dout or any suggestions…

Thank you…:)

Supplier’s own Product Code and Name on RFQ, PO and Invoice instead of default product name and code

Normally in real life scenarios, all suppliers have their own calling code/name for their supplies products.
Today I am going to show you,
How to use supplier’s own product code and name on Purchase Quotation (RFQ), Purchase Order

(PO) and Purchase Invoice.

Step 1: Select any product and goto Formview > Procurements > add supplier’s information.
Step 2: Here I have added Asustak and configuring it’s product code and name.
             Product : Apple In-Ear Headphones
             Supplier : ASUSTek
             Product Code : ASUSE – APPLE-EAR-PHONE
             Product Name : Asus – Apple In-Ear Headphones
Step 3: Create Purchase Quotation (RFQ) with product Apple In-Ear Headphones.
             Product Description field will automatically pop out with Supplier’s product code and name.
Step 4: Confirm Quotation and convert to PO. Same Product Description will be used for PO.
Step 5: Transfer PO and Receive Incoming shipments. Now go for supplier’s invoice.
             Invoice is also pop out with supplier’s product code and name.


So here by configuring supplier’s product code and name, we will get same effect at RFQ, PO and Invoice.

Autostart Odoo/OpenERP server at System reboots (Ubuntu)

Here I am going to show you few easy steps to create a script that will automatically starts your odoo/openerp server when Ubuntu starts (reboots).
Step 1: First of all you need to setup your odoo server by installing odoo packages as well as postgresql database configuration Odoo Installation guide.
Step 2: Once you have done with odoo installation,
            Locate openerp-server.conf file from odoo server files.

                Default path : /opt/openerp/server/install/openerp-server.conf

                Manual Search from terminal:
           locate openerp-server.conf
Step 3: Open file and set following basic parameters for default configuration:
    ; This is the password that allows database operations:   
    ; admin_passwd = admin   
    db_host = False   
    db_port = False   
    db_user = odoo   
    db_password = False   
    dbfilter = .*  
    xmlrpc_port = 8069  
    addons_path = /usr/lib/python2.7/dist-packages/openerp/addons  
                 ; (Custom addons path can be added and separated by commas (,))  
Step 4: Check your odoo server is running from above configured openerp-server.conf file.


           ~/odoo-8.0$ ./odoo.py -c /opt/odoo/server/install/openerp-server.conf

Step 5: Create new script file named odoo-server.sh and place this in path /etc/init.d/


 # Provides:       odoo-server  
 # Required-Start:    $remote_fs $syslog  
 # Required-Stop:    $remote_fs $syslog  
 # Should-Start:     $network  
 # Should-Stop:     $network  
 # Default-Start:    2 3 4 5  
 # Default-Stop:     0 1 6  
 # Short-Description:  Complete Business Application software  
 # Description:     Odoo is a complete suite of business tools.  
 # Specify the user name (Default: odoo).  
 # Specify an alternate config file (Default: /etc/odoo-server.conf).  
 # pidfile  
 # Additional options that are passed to the Daemon.  
 [ -x $DAEMON ] || exit 0  
 [ -f $CONFIGFILE ] || exit 0  
 checkpid() {  
   [ -f $PIDFILE ] || return 1  
   pid=`cat $PIDFILE`  
   [ -d /proc/$pid ] && return 0  
   return 1  
 case "${1}" in  
         echo -n "Starting ${DESC}: "  
         start-stop-daemon --start --quiet --pidfile ${PIDFILE} \  
             --chuid ${USER} --background --make-pidfile \  
             --exec ${DAEMON} -- ${DAEMON_OPTS}  
         echo "${NAME}."  
         echo -n "Stopping ${DESC}: "  
         start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \  
         echo "${NAME}."  
         echo -n "Restarting ${DESC}: "  
         start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \  
         sleep 1  
         start-stop-daemon --start --quiet --pidfile ${PIDFILE} \  
             --chuid ${USER} --background --make-pidfile \  
             --exec ${DAEMON} -- ${DAEMON_OPTS}  
         echo "${NAME}."  
         echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2  
         exit 1  
 exit 0  

Step 6: to make it executable, we need to give some permission.

      sudo chmod 755 /etc/init.d/odoo-server
Step 7: Testing the script:

        1. To start odoo server:

            sudo /etc/init.d/odoo-server start

            Once the service is start, check it in browser by typing IP_or_Domain_name:8069
        2. To stop odoo server:

            sudo /etc/init.d/odoo-server stop
Step 8: at last we need to hit one more final command to make odoo-server script activate automatically.
            sudo update-rc.d odoo-server defaults
Step 9: All is setup now. Just reboot the system and open terminal to check whether the odoo service is start automatic.
             ps aux | grep odoo

you will see something like this,
 odoo 15786 0.1 10.6 207132 53596 ? Sl 22:23 0:02 python /usr/lib/python2.7/dist-packages/openerp/addons -c /opt/odoo/server/install/openerp-server.conf  
It says that you odoo server is running and you can also check this out from web browser.


Have fun 🙂

Odoo Warehouse Stock Removal Strategy : FIFO, LIFO, FEFO

Normally in real time scenarios, there are several products comes with expiry dates like pharmaceutical products, food products etc. It is tedious to manage manually to select that products to sold out based onFIRST EXPIRY FIRST OUT.
Here I am going to show you some of configuration in Odoo that automatically manage your stock based onexpiry date/removal date set on product and removal strategy set on warehouse location.
Manage your stock using Removal strategy in Odoo. Some of removal strategy are as follows,
  1. First In First Out (FIFO)
  2. Last In Last Out (LIFO)
  3. First Expiry First Out (FEFO)
I know, Everyone loves Ice Cream and Chocolate, so here I am going to show you demo with Ice Cream as a Product 😀
Ice cream comes with expiry date, it should be sold out before it gets outdated and causes health issues to customers.
Ok, Lets begin with First Expiry First Out (FEFO)
Step 1: Here is list of Warehouse locations, you can create your own warehouse location also.


Step 2: Set configuration to make menus visible for ‘Serial Numbers’ and ‘Removal Strategy’
Step 3 : Once you have done with configuration, Removal Strategy field get visible.
Here is three type of Removal Strategy are as follows,
1. First In First Out (FIFO)
2. Last In Last Out (LIFO)
3. First Expiry First Out (FEFO)
Step 4: I am going to set ‘First Expiry First Out (FEFO)’ Removal Strategy.
Step 5: Lets create a Purchase Quotation > Confirm > Receive Products > Transfer
Step 6: Click on ‘Transfer’ button, wizard will be pop up. now click on ‘Lot/Serial number’ field and create Lot of Incoming Shipment to receive product batch wise.
Step 7: Set Desired dates for this Lot : 0000007
           1. Best Before Date
           2. End of Life Date : It is an Expiry date
           3. Removal Date : It should be less then ‘End of Life Date’ 
           4. Alert Date
Step 8: Transfer the incoming shipment to ‘WH/Stock’ Location
Step 9: follow step 5,6,7. create second incoming shipment Lot : 0000008
           Set Desired dates for this Lot : 0000008
             1. Best Before Date
             2. End of Life Date : It is an Expiry date
             3. Removal Date : It should be less then ‘End of Life Date’
             4. Alert Date
Step 10: Now we are going to sale this imported product from our location ‘WH/Stock’ where the removal strategy has been configured.
              Create Sale Quotation > Confirm > View Delivery Order
Step 11: Click on ‘Check Availability’ button, Odoo will reserve Quants based on Removal strategy on warehouse location.
Step 12: Here we go 🙂
              Click on move line, you can see the Reserved Quants details. product quantity has been selected from Lot 0000008 due to following removal date and expiry date,
             Product Lot        Lot 0000007         Lot 0000008
             Removal Date    08/28/2015            08/13/2015
             Expiry Date       08/31/2015            08/15/2015
            i.e : Lot 0000008 is a batch having earliest expiry date
You can select FIFO or LIFO removal strategy as per your requirements.
Have fun 🙂

Twitter Integration in Odoo

Every organizations are using twitter nowadays to promote their products as well as group discussion. so instead of managing separate window to get active for tweets , odoo comes with twitter integration.
Odoo provides Twitter Roller in Frontend (Website), that rolling tweets for a single channel continuously.
Here I come with easy steps for twitter integration,
Step 1: Install website_twitter Module.


Step 2 : Once we have done with module installation, navigate to Website.
             Click on Edit then place twitter roller snippet in webpage where ever you want to see the tweets.
             Click on Twitter Configuration URL. It will allow to do some configuration to connect Twitter Account with Odoo.
Step 3: Here we need to place some secret keys to connect Twitter API
            Goto : https://apps.twitter.com/app/new
Step 4: We need to create Twitter Application to get secret keys for connect twitter api from Odoo.
Step 5: I have created a Demo Application, you can check I got my secret keys that I highlighted below.
            Just simply copy and paste following secret keys to odoo website setting,
      1. API Key
      2. API Secret
Step 6: Just simply copy and paste following secret keys to odoo website setting,
      1. API Key
      2. Secret Key
      3. Channel [It is # (hashtag) channels like (#Odoo, #Funworld etc.)]
        I.e Odoo (without # symbol)
Step 7: Here we go 😀 🙂
            All the tweets are rolling here from left to right, you can select any of them by simple mouse hover.
           You can retweet and comment by click on that. It will redirect you on twitter.
Have fun 🙂

How to boost your sales with flexible, easy to use product recommendations ?

Hello Friends,

After a long time, here i come with small but most important feature of Odoo that is product recommendation configuration – Odoo Ecommerce.

How to boost your sales with flexible, easy to use product recommendations ?


Lets start with few configuration steps that allows your customers to shop their desire products on same page instead of search individually in entire site.
Step 1: Open Any product, In Sales tab there are two important fields and set them,
             1. Accessory Products
             2. Optional Products
Step 2: Now move to website, and start to shop that product,
1. Accessory Products :
–  See, whatever products we have set in Accessory Products, they appeared as Suggested products.
–  So Customer don’t want to look around all other products to find out best matched recommended accessory products of main product.
2. Optional Products :
–  Same like Accessory Products, you can also set Optional ProductsOptional Products are like Warranty, Membership Contract, Onsite Support Service etc.
– See Optional warranty product is listed here, Customer can shop this service product with this main product.
Hope this small configuration tip help you a lot,