Try ERPNext Buy Support Partners Foundation

Woocommerce full 2 way integration

I have a guy working on a wordpress pluging that is working very well but I need an ERPNext consultant to review and verify that everything is well made. Please contact me. Thanks

would you share the plugin?

When the developpement fees are covered, yes I want to share it

I’ll also post for suggestion here.
The wordpress pluging that interface with erpnext item doctype work well. This way it’s possible to sync items from ERPnext to wordpress automatically.
But the item price and stock is not available in this doctype. So what would be the best way to do that? Also, what would be the best way in ERPNext to trigger an action when stock change so we can update woocommerce in real time (price and stock ideally).

Thanks for the suggestions!


We are using this:

Does sync of PIM/stock/customers/orders and runs smoothly in several instances for > 1 year… Works with ERPNext v12 or Dokos v1

1 Like

Great, is this a two way sync?

tried to install in on my test server and got this

File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/”, line 206, in load_doctype_module
raise ImportError(‘Module import failed for {0} ({1})’.format(doctype, module_name + ’ Error: ’ + str(e)))
ImportError: Module import failed for GCalendar Settings (frappe.integrations.doctype.gcalendar_settings.gcalendar_settings Error: No module named gcalendar_settings.gcalendar_settings)

How did you get it to work on version 12. The past version that we could get that to work on version 10

Yes, it is two way for customers and products, sales orders only into ERPNext.

This is a know ERPNext issue in version 12 and has nothing to do with the app. Run this and then repeat:

$ bench mariadb
> delete from `tabDocType` where `name` = "GCalendar Settings";

This is actively maintained and was ported to Python 3 (note Py2 is no longer patched).

Thanks for the command. It seems to work but I have a new problem…

frappe.exceptions.ValidationError: Search field manufacturer_part_no is not valid

Could you please share to full traceback? As far as I can see this again is not related to WooCommerce, but the ERPNext database structure…

@lasalesi Does this include stock balance update as well? I can’t seem to find any documentation for configuration.

Traceback (most recent call last):
File “/usr/lib/python2.7/”, line 174, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/lib/python2.7/”, line 72, in _run_code
exec code in run_globals
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/”, line 97, in
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/”, line 18, in main
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/”, line 764, in call
return self.main(*args, **kwargs)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/”, line 717, in main
rv = self.invoke(ctx)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/”, line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/”, line 555, in invoke
return callback(*args, **kwargs)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/”, line 25, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/”, line 173, in install_app
install_app(app, verbose=context.verbose)
File “/home/frappe/frappe-bench/apps/frappe/frappe/”, line 94, in install_app
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/”, line 24, in sync_fixtures
ignore_links=True, overwrite=True)
File “/home/frappe/frappe-bench/apps/frappe/frappe/core/doctype/data_import/”, line 60, in import_doc
frappe.modules.import_file.import_file_by_path(f, data_import=True, force=True, pre_process=pre_process, reset_permissions=True)
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/”, line 66, in import_file_by_path
ignore_version=ignore_version, reset_permissions=reset_permissions)
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/”, line 141, in import_doc
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/”, line 259, in insert
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/”, line 919, in run_post_save_methods
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/”, line 787, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/”, line 1058, in composer
return composed(self, method, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/”, line 1041, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/”, line 781, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/custom/doctype/custom_field/”, line 61, in on_update
File “/home/frappe/frappe-bench/apps/frappe/frappe/core/doctype/doctype/”, line 669, in validate_fields_for_doctype
validate_fields(frappe.get_meta(doctype, cached=False))
File “/home/frappe/frappe-bench/apps/frappe/frappe/core/doctype/doctype/”, line 977, in validate_fields
check_search_fields(meta, fields)
File “/home/frappe/frappe-bench/apps/frappe/frappe/core/doctype/doctype/”, line 831, in check_search_fields
(“Search field {0} is not valid”).format(fieldname))
File “/home/frappe/frappe-bench/apps/frappe/frappe/”, line 364, in throw
msgprint(msg, raise_exception=exc, title=title, indicator=‘red’)
File “/home/frappe/frappe-bench/apps/frappe/frappe/”, line 350, in msgprint
File “/home/frappe/frappe-bench/apps/frappe/frappe/”, line 316, in _raise_exception
raise raise_exception(msg)
frappe.exceptions.ValidationError: Search field manufacturer_part_no is not valid


ok I was able to install it finally
but when I open the woocommerce settings I see that. I tried reload, clear cache

No errors during installation

Installing woocommerceconnector…
Updating DocTypes for woocommerceconnector [========================================]

Yes, it includes stock balance from ERPNext to WooCommerce. It uses one base warehouse and can also include additional warehouses.

Which version are you on? Maybe a bench update could help resolve this…?

I am having similar issue

i am on v11.1.68…

Are we missing anything ?

I’m on the latest version. Bench update yesterday

@lasalesi Same error for me. ERPNext v12.4.2. I ran bench update but still no change.