Woocommerce full 2 way integration

@lasalesi trust you are going very well

it appears there is an issue with installing the app. If you don’t mind can you help take a look at what the issue is…

Thank you

Was able to reproduce this, the issue only affected fresh installs in ERPNext v12, where the Doctype is visible, but reproducibly shows the error
grafik
I have pushed a bugfix in v12 which resolved the issue in my case, if someone could please check and revert back, thanks.

@lasalesi i pulled the update and now this is all i see:


The settings doctype is gone.

Thanks for checking, this is normal because I have moved the doctype. Can you please reload the WooCommerce page, then it should show up. Otherwise, please go to Doctype List, WooCommerce Settings and open it from there just to check if it becomes accessible…

Going to doctype list and woocommerce settings opens customize form for the doctype. It doesn’t actually open. Reloading the woocommerce page doesn’t help either.

On the doctype, there should be a “Go to WooCommerce Settings” button, which opens the settigns:


Is this not visible? Can you please share a screenshot of the Doctype (I guess something with the update did not complete)…

Okay so i clicked on the go to woocommerce settings button and i still got the “Sorry i could not find what you were looking for” error.

same problem. I updated with bench update. I dont know if I need to do anything else special to update woocommerce connector.


Then I click on go to woocommerce settings and at this address: /desk#Form/WooCommerce%20Settings
image

Woocommerce log list works at this address: /desk#List/woocommerce%20Log/List

Any chances to check what is going on? Let me know if I can help. Thanks

Hello @lasalesi

Lots of people seem to be interested in making this in ntegratiom work. You seem to be one of the very few people who have achieved this.

Would you mind spending some time today to exchange ideas with us today ? We will really appreciate it.

The error message above appears to affect everyone .

Regards

Hey @lasalesi

Please i am trying to install on v11 but i am faced with this error message on v11, but i am faced with the error message below. i once successfully installed on v11 but now i think something is broken…

Installing woocommerceconnector…
Updating DocTypes for woocommerceconnector: [======== Updating DocTypes for woocommerceconnector: [================ Updating DocTypes for woocommerceconnector: [======================== ]Traceback (most recent call last):
File “/usr/lib/python3.6/runpy.py”, line 193, in _run_module_as_main
main”, mod_spec)
File “/usr/lib/python3.6/runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “/home/ubuntu/xlevel/apps/frappe/frappe/utils/bench_helper.py”, line 97, in
main()
File “/home/ubuntu/xlevel/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/home/ubuntu/xlevel/env/lib/python3.6/site-packages/click/core.py”, line 764, in call
return self.main(*args, **kwargs)
File “/home/ubuntu/xlevel/env/lib/python3.6/site-packages/click/core.py”, line 717, in main
rv = self.invoke(ctx)
File “/home/ubuntu/xlevel/env/lib/python3.6/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/ubuntu/xlevel/env/lib/python3.6/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/ubuntu/xlevel/env/lib/python3.6/site-packages/click/core.py”, line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/ubuntu/xlevel/env/lib/python3.6/site-packages/click/core.py”, line 555, in invoke
return callback(*args, **kwargs)
File “/home/ubuntu/xlevel/env/lib/python3.6/site-packages/click/decorators.py” , line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/ubuntu/xlevel/apps/frappe/frappe/commands/init.py”, line 25, i n _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/home/ubuntu/xlevel/apps/frappe/frappe/commands/site.py”, line 168, in i nstall_app
install_app(app, verbose=context.verbose)
File “/home/ubuntu/xlevel/apps/frappe/frappe/installer.py”, line 145, in insta ll_app
sync_for(name, force=True, sync_everything=True, verbose=verbose, reset_perm issions=True)
File “/home/ubuntu/xlevel/apps/frappe/frappe/model/sync.py”, line 56, in sync
for
reset_permissions=reset_permissions, for_sync=True)
File “/home/ubuntu/xlevel/apps/frappe/frappe/modules/import_file.py”, line 65, in import_file_by_path
ignore_version=ignore_version, reset_permissions=reset_permissions)
File “/home/ubuntu/xlevel/apps/frappe/frappe/modules/import_file.py”, line 100 , in import_doc
doc = frappe.get_doc(docdict)
File “/home/ubuntu/xlevel/apps/frappe/frappe/init.py”, line 734, in get_do c
doc = frappe.model.document.get_doc(*args, **kwargs)
File “/home/ubuntu/xlevel/apps/frappe/frappe/model/document.py”, line 69, in g et_doc
return controller(*args, **kwargs)
File “/home/ubuntu/xlevel/apps/frappe/frappe/model/document.py”, line 113, in init
super(Document, self).init(kwargs)
File “/home/ubuntu/xlevel/apps/frappe/frappe/model/base_document.py”, line 54, in init
self.update(d)
File “/home/ubuntu/xlevel/apps/frappe/frappe/model/base_document.py”, line 77, in update
self.set(key, value)
File “/home/ubuntu/xlevel/apps/frappe/frappe/model/base_document.py”, line 124 , in set
self.extend(key, value)
File “/home/ubuntu/xlevel/apps/frappe/frappe/model/base_document.py”, line 161 , in extend
self.append(key, v)
File “/home/ubuntu/xlevel/apps/frappe/frappe/model/base_document.py”, line 155 , in append
self.name, str(type(value))[1:-1], value)
ValueError: Document for field “field_order” attached to child table of “WooComm erce Settings” must be a dict or BaseDocument, not class ‘str’ (status_html)

Hi @olamide_shodunke,

thank you for your feedback. And sorry for the inconvenience with the app/the above error. I am trying to resolve this also with @EnSeal. We’ll have to find a way that allows this in new installs, and also works in our installed base… I will have a look into this asap and revert back.

@EnSeal, the above error is a downgrade issue from v12 to v11. Are you ok if we try and get this working on v12?

Just did a clean install on a fresh machine and found all working:
image


I am using a current v12 system and did

$ bench get-app https://github.com/libracore/woocommerceconnector.git
$ bench install-app woocommerceconnector
$ bench restart

I did note that bench uninstall-app with subsequent bench install-app actually messed up the app.

Can you please check that the doctypes are correctly installed:

The timestamp if the WooCommerce Settings should be created on 2020-01-28.

2 Likes

I also tried to install in on my other server and got this error

bench install-app woocommerceconnector
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 97, in <module>
    main()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", 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/core.py", 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/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 25, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py", line 173, in install_app
    _install_app(app, verbose=context.verbose)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/installer.py", line 50, in install_app
    frappe.clear_cache()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 570, in clear_cache
    frappe.cache_manager.clear_user_cache()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/cache_manager.py", line 42, in clear_user_cache
    clear_global_cache()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/cache_manager.py", line 48, in clear_global_cache
    clear_website_cache()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/website/render.py", line 301, in clear_cache
    for method in frappe.get_hooks("website_clear_cache"):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 946, in get_hooks
    hooks = _dict(cache().get_value("app_hooks", load_app_hooks))
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/redis_wrapper.py", line 79, in get_value
    val = generator()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 920, in load_app_hooks
    for app in [app_name] if app_name else get_installed_apps(sort=True):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 884, in get_installed_apps
    installed = json.loads(db.get_global("installed_apps") or "[]")
  File "/home/frappe/frappe-bench/apps/frappe/frappe/database/database.py", line 702, in get_global
    return self.get_default(key, user)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/database/database.py", line 706, in get_default
    d = self.get_defaults(key, parent)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/database/database.py", line 724, in get_defaults
    defaults = frappe.defaults.get_defaults(parent)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/defaults.py", line 77, in get_defaults
    globald = get_defaults_for()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/defaults.py", line 204, in get_defaults_for
    where parent = %s order by creation""", (parent,), as_dict=1)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/database/database.py", line 122, in sql
    self.connect()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/database/database.py", line 75, in connect
    self._conn = self.get_connection()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/database/mariadb/database.py", line 90, in get_connection
    local_infile = frappe.conf.local_infile)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pymysql/__init__.py", line 94, in Connect
    return Connection(*args, **kwargs)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pymysql/connections.py", line 325, in __init__
    self.connect()
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pymysql/connections.py", line 599, in connect
    self._request_authentication()
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pymysql/connections.py", line 861, in _request_authentication
    auth_packet = self._read_packet()
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pymysql/connections.py", line 684, in _read_packet
    packet.check_error()
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pymysql/protocol.py", line 220, in check_error
    err.raise_mysql_exception(self._data)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pymysql/err.py", line 109, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.OperationalError: (1045, u"Access denied for user 'root'@'localhost' (using password: NO)")

@lasalesi thanks for the prompt response, i actually intend deploying on v11 production instance…Will really appreciate if we can make this install on v11.

Regards

Hi, I did a fresh v12 installation, checked for the five DocTypes(ok) and even tried the workarround at #18, but still nothing, the same “Sorry! I could not find what you were looking for.” Even with a bench update.

DocType List

A click on the Desk Options shows me an empty page, wi the “WooCommerce” Title.

If it helps, I got this as a failed background job:
woocommerceconnector.api.check_hourly_sync

Queue / Worker	Job	Created
failed	
woocommerceconnector.api.check_hourly_sync
Traceback (most recent call last):
  File "/home/frappe/frappe-bench/env/lib/python3.5/site-packages/rq/worker.py", line 793, in perform_job
    rv = job.perform()
  File "/home/frappe/frappe-bench/env/lib/python3.5/site-packages/rq/job.py", line 599, in perform
    self._result = self._execute()
  File "/home/frappe/frappe-bench/env/lib/python3.5/site-packages/rq/job.py", line 605, in _execute
    return self.func(*self.args, **self.kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 99, in execute_job
    method(**kwargs)
  File "/home/frappe/frappe-bench/apps/woocommerceconnector/woocommerceconnector/api.py", line 17, in check_hourly_sync
    woocommerce_settings = frappe.get_doc("woocommerce Settings")
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 740, in get_doc
    doc = frappe.model.document.get_doc(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 68, in get_doc
    controller = get_controller(doctype)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 56, in get_controller
    raise ImportError(doctype)
ImportError: woocommerce Settings

i need to have woocommerce full in 2 way
someone have a working solution ? i can pay
regards .

Thanks for getting it fixed and all of the hard work that has gone into it. I will try to install it when I get time this evening.

A could of questions. What would it take to make this support more than one woocommerce install and have you thought about makeing a pull request to make this part of the core product.

I know that we have this working on verison 10 with a couple of clients and it works better than what is core atm

1 Like

Thanks. I am really at a loss why this error is occurring at new installations. We have several instance with this up and running without issue. Still I am fully commited to also get this running for you guys, especially seeing the strong interest.

As far as merging this to the core, on this subject I am not confident enough (especially with the issue at hand) that this would be the right way. In my personal opinion, this is a very specific module (and without going into the monolithic discussion again), and only a fraction of users will use it. An app seems the right place for such an extension…

Looking forward to your insights and to get it back working. If someone has an idea, why a doctype can be there and then still cannot be opened, any input is welcome.

I trust everyone is on Python 3…