👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
openERP- How to connect OpenERP with external Systems, AkretionAkretion base external_referentials_openerpdays
1. BASE EXTERNAL REFERENTIAL
HOW TO CONNECT OPENERP
WITH EXTERNAL SYSTEMS
OpenERP Community days Sébastien Beau
April 12th, 2012 Sebastien.beau@akretion.com
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 Sale
Bundle m2m Images Variant
links Multichannels
Product Category Olbs Multi
Base External
Referentials
generic part of the
project
5. Must be multi-referential
● Connecting one Magento is great, but it's 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
1.3.2.4 + 1.5.0.0 +
DATA DATA
8. Must be flexible ;)
● Next step : add generic mapping
GENERIC
MAPPING
MAPPING MAPPING
1.3.2.4 + 1.5.0.0 +
DATA DATA
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_mapping
for 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... you're done, and your
boss can not imagine that you have already
finished ;)
16. Error management
Before :
● 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
1.3.2.4 + 1.5.0.0 +
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
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 generic
module 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, ...
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
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 :(
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. MagentoERPconnect's
roadmap
● For May:
● Huge re-factoring is coming
● RMA synchronisation
● Invoice export
● Delivery time synchronisation
34. PrestashopERPconnect's
roadmap
DONE 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. AmazonERPconnect
Will be released in May 2012
● Sale order import
● Bank statement import
TODO :
● stock level export
● product export
● picking export
38. Project hosted on launchpad
● https://launchpad.net/openobject-extension
● https://launchpad.net/e-commerce-addons
● https://launchpad.net/prestashoperpconnect
● https://launchpad.net/magentoerpconnect
Modules in extra-addons are deprecated and
will be remove soon. Use the specific branches.