Your SlideShare is downloading. ×
  • Like
openERP-  How to connect OpenERP with external Systems, AkretionAkretion base external_referentials_openerpdays
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

openERP- How to connect OpenERP with external Systems, AkretionAkretion base external_referentials_openerpdays



Published in Business , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • hi
    Are you sure you want to
    Your message goes here
  • We have developed Magento Connector with OpenERP version 7.
    Please click on the link below for screenshots

    The Module is ready to USE. Please email for demo.

    Are you sure you want to
    Your message goes here
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. BASE EXTERNAL REFERENTIAL HOW TO CONNECT OPENERP WITH EXTERNAL SYSTEMSOpenERP Community days Sébastien Beau April 12th, 2012 Consultant at Akretion
  • 2. Context● June 2009 : Akretion and OpenLabs start a new project « MagentoERPconnect », the new connector for Magento and OpenERP.● June 2011 : MagentoERPconnect project is now maintained by the group « MagentoERPconnect Core Editor » composed of Akretion, Camptocamp, OpenLabs and ZikzakMedia.● February 2012 : Camptocamp and Akretion release a new connector for Prestashop : PrestashopERPconnect● March 2012 : Akretion release File Exchange, a new way to synchronise automatically files with OpenERP● Soon : AmazonERPconnect
  • 3. Goals in 2009 Example connection with Magento● What is needed by my customer : ● Must be multi-referential ● Must be flexible ● Must report errors of synchronisation ● Must synchronise all of the data (product, sale order, picking, invoice, ...) ● Must be cheaper => These are generic needs !!
  • 4. Generic needs Specific part to magento MagentoERPconnect MagentoERPconnect Bundle Product Product Variant MagentoERPconnect Sale Product Product Product Product Base SaleBundle m2m Images Variant links MultichannelsProduct Category Olbs Multi Base External Referentialsgeneric part of the project
  • 5. Must be multi-referential● Connecting one Magento is great, but its better to connect to various Magentos at the same time => do not add a new column on each object to store external_id => using the table « ir_model_data » to store external ids
  • 6. Must be flexible ;)● The mapping (link between OpenERP field and Magento field) should not be hard-coded !
  • 7. Must be flexible ;)● Base_external_referential => the magic box MAPPING MAPPING + + DATA DATA
  • 8. Must be flexible ;)● Next step : add generic mapping GENERIC MAPPING MAPPING MAPPING + + DATA DATA
  • 9. How does a mapping look like?
  • 10. How does a mapping look like?
  • 11. 3 kinds of mapping lines● 1. Direct mapping : Map an OpenERP field with an external field
  • 12. 3 kinds of mapping lines● 2. Function mapping : Use some lines of Python to evaluate a field
  • 13. 3 kinds of mapping lines● 3. Submapping : a field will be evaluated using another mapping object Example : the field “order_line” of the “sale_order” will be evaluated by the mapping of the “order_ line”
  • 14. More information about sub- mapping _transform_external_resources ONE SALE ORDER _get_mapping if not exist for each line _transform_one_ _resource _transform_one_resource code to convert data merge_with_default_value code to merge converted data with default value merge_with_default_value _transform_sub_ mapping _transform_sub_mappingfor each submapping _transform_resources
  • 15. How can I make my own mapping?● Step 1 : Add mapping in OpenERP with the interface and test it● Step 2 : Export it and put it in a module● Step 3 : Take a drink... youre done, and your boss can not imagine that you have already finished ;)
  • 16. Error managementBefore :● If a synchronisation failed, everything had to be restarted from the beginning. No incremental import.● No easy way to understand what happened, what raised an error, what worked● Bugs can not be reproduced and fixed easily
  • 17. Error management NOW MAPPING MAPPING + + DATA DATA RAPPORT Soon : email notification ;)
  • 18. Error management NOW● Incremental import / export => resources are exported one by one. After importing / exporting a resource, everything is committed Synchronize orders import one order and commit it import one order and commit it import one order and commit it
  • 19. Error management NOWA report is generated for each synchronisation
  • 20. Error management NOW● For each failure, a report line is generated and can be replayed easily
  • 21. Base external is great but...E-commerce needs more than a genericmodule of synchronisation. We also need to :● Import orders● Play on_change on order lines and sale orders● Play workflow● Compute or use external taxes● Export products, stock levels, ...
  • 22. Base_sale_multichannels● An abstract module to make OpenERP a MULTI-SALE-CHANNELS software
  • 23. Base_sale_multichannels
  • 24. Base_sale_multichannels OpenERP sale order E-Commerce waiting for validation Payment by approval check sale order validated + shipping confirmed 56971236 56971236 send invoice created automatically and e-mail with confirmed invoice
  • 25. Base_sale_multichannelsPayment configuration
  • 26. Generic is great but how does it work ? ● If two modules like MagentoERPconnect and PrestashopERPconnect are installed and overwrite the method “import_orders”, how can it work ? Button : import_order ???? ????import_order (from Magento) import_order (from PrestaShop)
  • 27. Generic is great, but how does it work ?● We have to test where we are :(
  • 28. Decorators are great ;)
  • 29. Last improvement of the week● Synchronizing data with Magento is long, very very very very very long ! => we have to optimize the data sent to Magento
  • 30. Last improvement of the week● Before : When we send a resource (product, category...) in multi-lang, we send x time all fields of a resource => sending X time a not translatable product is useless● Now : Base_external_referentials generates a dictionary with all resource information : {en_US: {all of data}, fr_FR: {only translatable field}, ...}
  • 31. Last improvement of the week● Before : If one field changes on a resource, all fields of the resource are synchronised again● Now : Ability to create a group of fields that will have their own “last update date”
  • 32. Modules that use base_external_referentials and base_sale_multichannels● MagentoERPconnect● PrestashopERPconnect● File Exchange● AmazonERPconnect
  • 33. MagentoERPconnects roadmap● For May: ● Huge re-factoring is coming ● RMA synchronisation ● Invoice export ● Delivery time synchronisation
  • 34. PrestashopERPconnects roadmapDONE in 4.5 days:● shop/websites import● customer import● languages & country synchronisation● product import● order import (still missing taxes and shipping costs)TODO :● finish order import● stock level export● product export● invoice export (PDF report)● picking export
  • 35. File_exchange What is it ?A new way to synchronize data with file system STEP 1 : create mapping
  • 36. File_exchange What is it? STEP 2 : build your model file●
  • 37. AmazonERPconnectWill be released in May 2012● Sale order import● Bank statement importTODO :● stock level export● product export● picking export
  • 38. Project hosted on launchpad●●●● Modules in extra-addons are deprecated and will be remove soon. Use the specific branches.
  • 39. Thank you for your attentiontwitter : seb_beau