Monday, February 27, 2017

Geo Fencing in Odoo

Using Geo-Fencing API of Google, a module named google_map_fencing is built in Odoo 9 which stores the locations in warehouses by defining a region. It identifies whether a particular pin (location pointed on google map) falls in the defined region or not. Just click on the map over a specific area and you will get a fence over that region, which is defined by a polygon on the google map and can be updated just by dragging the polygon points. The region can be saved per location according to the address and can be viewed or changed as you want. Following are the screen shots related to google map fencing:
  • 1. Consider a google map of a particular region
  • 2. Click around a region example Pune, to get a fence around it. This way you can define a region. The white dots indicate the polygon points, by dragging which you can expand the region
  • 3. Save the changes to again view the defined region on map.
  • 4. Once the fencing is done, drop of pin at any location gets you to know whether that pin falls in the fence or out of it.
  • 5. Option to reset is also provided to clear all the changes
  • 6. Geo-Fencing in Odoo can be used for storing warehouse or contact locations in case of multiple warehouses
  • 7. Easy to implement and understand.

Wednesday, February 22, 2017

Odoo ERP for Magento 1.x / 2.0

Magento is a very popular e-commerce platform and provides a turnkey solution for running any business online. Magento 2 brings in better performance, flexible architecture and improved administration and reporting. But it still lacks the ERP capability which is required to run a business. Magento can be complemented by Odoo which is a leading open source business suite of application. There is ready bridge between Magento and Odoo which allows to sync data between systems. Odoo has integrated suite of applications for managing Sales, Purchase, Inventory, Accounting, CRM, HRM Shipping and many more applications required to run an e-commerce business.

Magento Dashboard

Odoo Dashboard

Odoo has a very robust warehouse and inventory Management application integrated to Accounting. Additionally if you are running a physical store and an online store, inventories can be utilized between them.Odoo also provides a POS application which can be used in a physical stores. Since Odoo is open source thier are more than 4000 modules available to use.

Thursday, February 16, 2017

Odoo 9 : Rolled-up cost for Manufacturing products

It has been always a challenge to know exact cost of the manufacturing nature product in Odoo.

Pragmatic Techsoft Pvt. Ltd. has come up with a new module “pragmatic_rolledup cost” to compute the same.

This module works on BOM defined for the product. Cost of every product defined in a BOM is passed on the main product. It considers quantity as well as price of a product used in BOM.

It works with multilevel BOM as well.

If a product has multiple variants then the cost price of the product shall be updated on individual variants.

Monday, February 6, 2017

Hubspot Integration With Odoo

Hubspot integration module acts as a connector between the hubspot system and odoo system. The contacts and the companies created in hubspot, get created in odoo system as well and vice versa.

A. Contact Creation from Odoo to Hubspot:
  • Once, you create a contact in Odoo, it will be automatically synced in hubspot.
  • Following fields related to contact are synced to hubspot:
      1.Contact Name
      2.Job Position
      7. Company
  • Any change in the contact fields are also updated to the contact in hubspot.
B.Contact Creation from Hubspot to Odoo:
  • When a contact is created in hubspot, it gets synced in Odoo.
  • A scheduler is triggered once a day(configurable), after which the contact gets created.
  • Any change in the contact is updated to the corresponding contact in Odoo.
C. Assign Company to a contact in Odoo
  • Assigning a company to a contact from odoo will add the corresponding contact to that company in hubspot.
  • Similarly, when a company is assigned from hubspot to a contact, it gets reflected in the contact in Odoo after the scheduler is triggered.
  • Following configurations are required to integrate with hubspot:
The timestamp for Modified date for Contact and Company are set to current timestamp by default.

Sunday, February 5, 2017

Advanced Printscreen for Odoo 8(Printing Report Analysis)

Printscreen has been and is an attractive feature of Odoo which enables the user to take the printout of the tree view of the selected records.

We have a new module which enables users to take the printout of the selected records in the tree view. After installing the module, a new dropdown will be available in the header of each tree view. No configuration is required, jut installing the module is enough.

The main features of this module are:
  • Ability to export view in both PDF as well as in Excel.
  • Ability to export analytic views in to PDF and Excel including group totals.
  • Hierarchical view of the groups.

The module can be installed as a normal Odoo module. The only python dependency that is need for the module is python-xlwt which is needed to export to xls file. This can be installed using the comment "sudo apt-get install python-xlwt" for Ubuntu. After installing the module, you can see two anchor buttons called "Export to PDF" and "Export to Excel" on the right side of the OpenERP web client as shown

These buttons will only appear if the active view is a tree view. This button wont be visible in any of the other view types. When the button "Export to PDF" is clicked, the report will be exported to PDF or if "Export to Excel", the report will be printed in "Excel". The heading and the totals will be printed in Bold. A sample screenshot of the excel and PDF report is shown below:
The module also allows to print analytic reports in to CSV of excel. The screenshot below shows an analytic view:
You can also print Graph View as PDF format which will be more useful for analysis part

Tuesday, January 17, 2017

Magento 2 Basic Theme Development

Magento 2 Theme development and customization can be categorised in different level depending on the different developer’s skills. Different level of customisation are:
  • If a developer just wants to change the colour, images or other small changes on his website, then it can be achieved only with the knowledge of CSS. Developer can use Magento default CSS and make his required changes in it.
  • If a developer wants to make some more changes other than CSS, like some changes in the HTML generated through PHTML file. Then the developer can achieve it if he has a little knowledge of PHP and HTML.
  • If a developer wants to make changes in the website structure, like: placing one block to another place, adding new block or completing moving a block to a different page. This can be achieved if the developer also have the knowledge of XML.
  • Finally, if the developer have complete knowledge as mentioned in above three points, then developer can design his own theme.

Pre requisites

  • Previous Magento coding experience
  • Some knowledge of Magento 2
  • Magento 2 fully installed and running smoothly, access to the frontend & admin.

Theme Development:

Similar to the Magento 1, themes are stored inside app/design/frontend directory. Inside this we need to create Vendor directory with your Vendor_name and inside vendor directory we need to create a new directory which your Theme_name. Both name should not have space between them. So after this the structure will be:
Now your structure is in place, you need to declare your theme so that Magento knows it exists and you can set it as an active theme in the admin. Create a theme.xml file within the theme folder, on the root. You can use the code inside of the Blank or Luma theme folders. You can also use the code below. Just insert the name of your theme in the <title> tags. You can also specify a parent theme for fallback purposes.
<theme xmlns:xsi=""
<title>INSERT THEME NAME</title>
This is the minimum code you need, but you can also declare a theme image. This is a thumbnail image which shows in the admin on your theme page so you can see a preview of what your theme looks like. To add one of these, add the code below in-between the XML nodes, underneath the theme declaration.
<media> <preview_image>media/theme-screenshot.jpg </preview_image> </media>
Change the name of the thumbnail image to that of your filename. Place the image in the following location:
If you don’t have this file in the correct location when you visit your theme page in the admin, you’ll get an error – so make sure your image is in the right place and named correctly.

Theme Registration File:

The last part in declaring your theme is to add a registration.php file to your theme’s root.
Add below code in your registration file:

* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.

Theme Basic Structure:

In a design, there are many static files such as javascript, css, images and fonts. They are stored in separate directories in web of theme package. In Magneto 2, there is no skin directory as Magento 1. So all this static files are kept in web folder inside theme root directory. Here are the structure
├── etc/view.xml
├── web/
│ ├── css/
│ │ ├── source/
│ ├── fonts/
│ ├── images/
│ ├── js/
The etc/view.xml file is where you can configure the Magento Catalog image sizes and other things. Copy the etc/view.xml file from one of the default theme’s and edit as necessary.

The last thing you can do before activating your theme, is to add you logo and declare it. The image file can be added to the web/images folder which you created not long ago. This can be whatever file type you like, in this case I’ve used an svg. So to actually tell the theme to use your logo, you create the Magento_Theme/layout folders and add the following code to a default.xml file. Edit to match your requirements.
<page xmlns:xsi=""
<referenceBlock name="logo">
<argument name="logo_file" xsi:type="string">images/logo.svg <argument name="logo_img_width" xsi:type="number">300 <argument name="logo_img_height" xsi:type="number">300 </arguments>

Composer File:

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

To distribute your theme as a package, add a composer.json file to the theme directory and register the package on a packaging server. { "name": "vendor_name/theme_nameultimate",
"description": "N/A",
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"magento/theme-frontend-blank": "100.0.*",
"magento/framework": "100.0.*"
"type": "magento2-theme",
"version": "100.0.1",
"license": [
"autoload": {
"files": [

Activate your Theme

Now everything is in place for you to activate your theme. Browse to the admin of your Magento 2 store, and go to Content > Design > Themes. Make sure your theme appears in this list – if it doesn’t, it hasn’t been declared correctly.
When you can see your theme in the path above, browse to Stores > Configuration > Design. Select the right store scope and then change the theme to your newly created theme.

Monday, January 16, 2017

Odoo 8 – Email Reminders To Vendors

Pragmatic Techsoft Pvt. Ltd. has comeup with new module “pragmatic_email_reminders” to send reminder emails to vendor. There are following email notifications categories involved :
  • Delayed Quotation Submission Against RFQ
  • Delayed Incoming Shipments
  • Partial Incoming Shipments
All above mentioned are the reminder emails to the vendors.

This modules has follwoing configuration available

1. Configurations in Odoo is available in Purchase section :

  • This will allow user to set initital delay to shoot email reminders to vendors for delayed quotes submission.
  • Initial delay is considered from the date of Order itself
  • User can setup frequency schedular with interval unit and type
  • max. no. of reminders for vendor per RFQ can be set up

2. RFQ Reminder Configuration

  • This will allow user to set initital delay to shoot email reminders to vendors for delayed quotes submission from a date of order

3. Delay Incoming Shipments

  • This email reminder is used to notify vendor if none of the product received on a scheduled dated in PO. The initial delay considered for this is on and above on the “Scheduled Date” mentioned for a Shipment.
  • User can update new expected date of shipment in Picking if conveyed by vendor.

4. Partial Incoming Shipments

  • This email reminder is used to notify vendor if full quantities in picking are not received.