Open mecpcanada opened 1 month ago
@mecpcanada is this what you are referring to? https://woocommerce-fusion-docs.finfoot.tech/features/items.html
so https://github.com/libracore/WooCommerceConnector which i'm assuming this is based on when sync product from woocommerce it also creates them in erpnext
This custom app is not based on the one you linked.
This custom app also creates ERPNext Items for existing WooCommerce Products
ok cause mine shows 27000 items in woocommerce product but none in erpnext items is there a setting i have to turn on ?
Are you using the latest version of the app?
yes
Any error logs? Perhaps also send a screenshot of "WooCommerce Integration Settings"
Traceback with variables (most recent call last):
File "apps/frappe/frappe/app.py", line 114, in application
response = frappe.api.handle(request)
request = <Request 'http://erpold.incognitocorp.ca/api/method/frappe.desk.form.load.getdoctype?doctype=Google%20Calendar&with_parent=1&cached_timestamp=&_=1721067034877' [GET]>
response = None
rollback = True
e = AttributeError("module 'pkgutil' has no attribute 'ImpImporter'")
File "apps/frappe/frappe/api/__init__.py", line 49, in handle
data = endpoint(**arguments)
request = <Request 'http://erpold.incognitocorp.ca/api/method/frappe.desk.form.load.getdoctype?doctype=Google%20Calendar&with_parent=1&cached_timestamp=&_=1721067034877' [GET]>
endpoint = <function handle_rpc_call at 0x755369944900>
arguments = {'method': 'frappe.desk.form.load.getdoctype'}
File "apps/frappe/frappe/api/v1.py", line 36, in handle_rpc_call
return frappe.handler.handle()
method = 'frappe.desk.form.load.getdoctype'
frappe = <module 'frappe' from 'apps/frappe/frappe/__init__.py'>
File "apps/frappe/frappe/handler.py", line 49, in handle
data = execute_cmd(cmd)
cmd = 'frappe.desk.form.load.getdoctype'
data = None
File "apps/frappe/frappe/handler.py", line 85, in execute_cmd
return frappe.call(method, **frappe.form_dict)
cmd = 'frappe.desk.form.load.getdoctype'
from_async = False
server_script = None
method = <function getdoctype at 0x755369579260>
File "apps/frappe/frappe/__init__.py", line 1768, in call
return fn(*args, **newargs)
fn = <function getdoctype at 0x755369579260>
args = ()
kwargs = {'doctype': 'Google Calendar', 'with_parent': '1', 'cached_timestamp': '', 'cmd': 'frappe.desk.form.load.getdoctype'}
newargs = {'doctype': 'Google Calendar', 'with_parent': '1', 'cached_timestamp': ''}
File "apps/frappe/frappe/utils/typing_validations.py", line 31, in wrapper
return func(*args, **kwargs)
args = ()
kwargs = {'doctype': 'Google Calendar', 'with_parent': '1', 'cached_timestamp': ''}
apply_condition = <function whitelist.<locals>.innerfn.<locals>.<lambda> at 0x7553695791c0>
func = <function getdoctype at 0x755369579120>
File "apps/frappe/frappe/desk/form/load.py", line 72, in getdoctype
docs = get_meta_bundle(doctype)
doctype = 'Google Calendar'
with_parent = '1'
cached_timestamp = ''
docs = []
parent_dt = ''
File "apps/frappe/frappe/desk/form/load.py", line 83, in get_meta_bundle
bundle = [frappe.desk.form.meta.get_meta(doctype)]
doctype = 'Google Calendar'
File "apps/frappe/frappe/desk/form/meta.py", line 42, in get_meta
meta = FormMeta(doctype, cached=False)
doctype = 'Google Calendar'
cached = True
meta = None
File "apps/frappe/frappe/desk/form/meta.py", line 53, in __init__
self.load_assets()
self = <FormMeta: Google Calendar>
doctype = 'Google Calendar'
cached = False
File "apps/frappe/frappe/desk/form/meta.py", line 67, in load_assets
self.load_templates()
self = <FormMeta: Google Calendar>
File "apps/frappe/frappe/desk/form/meta.py", line 248, in load_templates
module = load_doctype_module(self.name)
self = <FormMeta: Google Calendar>
File "apps/frappe/frappe/modules/utils.py", line 250, in load_doctype_module
doctype_python_modules[key] = frappe.get_module(module_name)
doctype = 'Google Calendar'
module = 'Integrations'
prefix = ''
suffix = ''
app = 'frappe'
key = ********
module_name = 'frappe.integrations.doctype.google_calendar.google_calendar'
File "apps/frappe/frappe/__init__.py", line 1476, in get_module
return importlib.import_module(modulename)
modulename = 'frappe.integrations.doctype.google_calendar.google_calendar'
File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
name = 'frappe.integrations.doctype.google_calendar.google_calendar'
package = None
level = 0
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
name = 'frappe.integrations.doctype.google_calendar.google_calendar'
package = None
level = 0
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
name = 'frappe.integrations.doctype.google_calendar.google_calendar'
import_ = <function _gcd_import at 0x75536c3a40e0>
module = <exception while printing> Traceback (most recent call last):
File "env/lib/python3.12/site-packages/traceback_with_variables/core.py", line 222, in _to_cropped_str
raw = print_(obj)
^^^^^^^^^^^
File "apps/frappe/frappe/utils/__init__.py", line 328, in dict_printer
if key in v:
^^^^^^^^
TypeError: argument of type 'object' is not iterable
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
name = 'frappe.integrations.doctype.google_calendar.google_calendar'
import_ = <function _gcd_import at 0x75536c3a40e0>
path = ['apps/frappe/frappe/integrations/doctype/google_calendar']
parent = 'frappe.integrations.doctype.google_calendar'
parent_spec = ModuleSpec(name='frappe.integrations.doctype.google_calendar', loader=<_frozen_importlib_external.SourceFileLoader object at 0x755366e9e180>, origin='apps/frappe/frappe/integrations/doctype/google_calendar/__init__.py', submodule_search_locations=['apps/frappe/frappe/integrations/doctype/google_calendar'])
parent_module = <module 'frappe.integrations.doctype.google_calendar' from 'apps/frappe/frappe/integrations/doctype/google_calendar/__init__.py'>
child = 'google_calendar'
spec = ModuleSpec(name='frappe.integrations.doctype.google_calendar.google_calendar', loader=<_frozen_importlib_external.SourceFileLoader object at 0x755366e9e090>, origin='apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py')
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
spec = ModuleSpec(name='frappe.integrations.doctype.google_calendar.google_calendar', loader=<_frozen_importlib_external.SourceFileLoader object at 0x755366e9e090>, origin='apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py')
module = <module 'frappe.integrations.doctype.google_calendar.google_calendar' from 'apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py'>
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
self = <_frozen_importlib_external.SourceFileLoader object at 0x755366e9e090>
module = <module 'frappe.integrations.doctype.google_calendar.google_calendar' from 'apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py'>
code = <code object <module> at 0x2a2fd70, file "apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py", line 1>
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
f = <built-in function exec>
args = (<code object <module> at 0x2a2fd70, file "apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py", line 1>, {'__name__': 'frappe.integrations.doctype.google_calendar.google_calendar', '__doc__': None, '__package__': 'frappe.integrations.doctype.google_calendar', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x755366e9e090>, '__spec__': ModuleSpec(name='frappe.integrations.doctype.google_calendar.google_calendar', loader=<_frozen_importlib_external.SourceFileLoader object at 0x755366e9e090>, origin='apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py'), '__file__': 'apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py', '__cached__': 'apps/frappe/frappe/integrations/doctype/google_calendar/__pycache__/google_calendar.cpython-312.pyc', '__builtins__': {'__name__': 'builtins', '__doc...
kwds = {}
File "apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py", line 12, in <module>
from googleapiclient.discovery import build
__name__ = 'frappe.integrations.doctype.google_calendar.google_calendar'
__doc__ = None
__package__ = 'frappe.integrations.doctype.google_calendar'
__loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x755366e9e090>
__spec__ = ModuleSpec(name='frappe.integrations.doctype.google_calendar.google_calendar', loader=<_frozen_importlib_external.SourceFileLoader object at 0x755366e9e090>, origin='apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py')
__file__ = 'apps/frappe/frappe/integrations/doctype/google_calendar/google_calendar.py'
__cached__ = 'apps/frappe/frappe/integrations/doctype/google_calendar/__pycache__/google_calendar.cpython-312.pyc'
__builtins__ = {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), '__build_class__': <built-in function __build_class__>, '__import__': <built-in function __import__>, 'abs': <built-in function abs>, 'all': <built-in function all>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'breakpoint': <built-in function breakpoint>, 'callable': <built-in f...
datetime = <class 'datetime.datetime'>
timedelta = <class 'datetime.timedelta'>
quote = <function quote at 0x75536c35c540>
ZoneInfo = <class 'zoneinfo.ZoneInfo'>
google = <module 'google' (namespace) from ['env/lib/python3.12/site-packages/google']>
requests = <module 'requests' from 'env/lib/python3.12/site-packages/requests/__init__.py'>
parser = <module 'dateutil.parser' from 'env/lib/python3.12/site-packages/dateutil/parser/__init__.py'>
File "env/lib/python3.12/site-packages/googleapiclient/discovery.py", line 68, in <module>
from googleapiclient.http import build_http
__name__ = 'googleapiclient.discovery'
__doc__ = "Client for discovery based APIs.\n\nA client library for Google's discovery based APIs.\n"
__package__ = 'googleapiclient'
__loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x755366cb6120>
__spec__ = ModuleSpec(name='googleapiclient.discovery', loader=<_frozen_importlib_external.SourceFileLoader object at 0x755366cb6120>, origin='env/lib/python3.12/site-packages/googleapiclient/discovery.py')
__file__ = 'env/lib/python3.12/site-packages/googleapiclient/discovery.py'
__cached__ = 'env/lib/python3.12/site-packages/googleapiclient/__pycache__/discovery.cpython-312.pyc'
__builtins__ = {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), '__build_class__': <built-in function __build_class__>, '__import__': <built-in function __import__>, 'abs': <built-in function abs>, 'all': <built-in function all>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'breakpoint': <built-in function breakpoint>, 'callable': <built-in f...
absolute_import = _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0), 262144)
six = <module 'six' from 'env/lib/python3.12/site-packages/six.py'>
zip = <class 'zip'>
__author__ = 'jcgregorio@google.com (Joe Gregorio)'
__all__ = ['build', 'build_from_document', 'fix_method_name', 'key2param']
BytesIO = <class '_io.BytesIO'>
http_client = <module 'http.client' from '/usr/lib/python3.12/http/client.py'>
urlencode = <function urlencode at 0x75536bcfbb00>
urlparse = <function urlparse at 0x75536bcfa3e0>
urljoin = <function urljoin at 0x75536bcfb060>
urlunparse = <function urlunparse at 0x75536bcfade0>
parse_qsl = <function parse_qsl at 0x75536bcfb4c0>
copy = <module 'copy' from '/usr/lib/python3.12/copy.py'>
OrderedDict = <class 'collections.OrderedDict'>
BytesGenerator = <class 'email.generator.BytesGenerator'>
MIMEMultipart = <class 'email.mime.multipart.MIMEMultipart'>
MIMENonMultipart = <class 'email.mime.nonmultipart.MIMENonMultipart'>
json = <module 'json' from '/usr/lib/python3.12/json/__init__.py'>
keyword = ********
logging = <module 'logging' from '/usr/lib/python3.12/logging/__init__.py'>
mimetypes = <module 'mimetypes' from '/usr/lib/python3.12/mimetypes.py'>
os = <module 'os' (frozen)>
re = <module 're' from '/usr/lib/python3.12/re/__init__.py'>
httplib2 = <module 'httplib2' from 'env/lib/python3.12/site-packages/httplib2/__init__.py'>
uritemplate = <module 'uritemplate' from 'env/lib/python3.12/site-packages/uritemplate/__init__.py'>
google = <module 'google' (namespace) from ['env/lib/python3.12/site-packages/google']>
mtls = <module 'google.auth.transport.mtls' from 'env/lib/python3.12/site-packages/google/auth/transport/mtls.py'>
MutualTLSChannelError = <class 'google.auth.exceptions.MutualTLSChannelError'>
google_auth_httplib2 = <module 'google_auth_httplib2' from 'env/lib/python3.12/site-packages/google_auth_httplib2.py'>
_auth = <module 'googleapiclient._auth' from 'env/lib/python3.12/site-packages/googleapiclient/_auth.py'>
mimeparse = <module 'googleapiclient.mimeparse' from 'env/lib/python3.12/site-packages/googleapiclient/mimeparse.py'>
HttpError = <class 'googleapiclient.errors.HttpError'>
InvalidJsonError = <class 'googleapiclient.errors.InvalidJsonError'>
MediaUploadSizeError = <class 'googleapiclient.errors.MediaUploadSizeError'>
UnacceptableMimeTypeError = <class 'googleapiclient.errors.UnacceptableMimeTypeError'>
UnknownApiNameOrVersion = <class 'googleapiclient.errors.UnknownApiNameOrVersion'>
UnknownFileType = <class 'googleapiclient.errors.UnknownFileType'>
File "env/lib/python3.12/site-packages/googleapiclient/http.py", line 64, in <module>
from googleapiclient.model import JsonModel
__name__ = 'googleapiclient.http'
__doc__ = 'Classes to encapsulate a single HTTP request.\n\nThe classes implement a command pattern, with every\nobject supporting an execute() method that does the\nactual HTTP request.\n'
__package__ = 'googleapiclient'
__loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x755366993a40>
__spec__ = ModuleSpec(name='googleapiclient.http', loader=<_frozen_importlib_external.SourceFileLoader object at 0x755366993a40>, origin='env/lib/python3.12/site-packages/googleapiclient/http.py')
__file__ = 'env/lib/python3.12/site-packages/googleapiclient/http.py'
__cached__ = 'env/lib/python3.12/site-packages/googleapiclient/__pycache__/http.cpython-312.pyc'
__builtins__ = {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), '__build_class__': <built-in function __build_class__>, '__import__': <built-in function __import__>, 'abs': <built-in function abs>, 'all': <built-in function all>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'breakpoint': <built-in function breakpoint>, 'callable': <built-in f...
absolute_import = _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0), 262144)
six = <module 'six' from 'env/lib/python3.12/site-packages/six.py'>
http_client = <module 'http.client' from '/usr/lib/python3.12/http/client.py'>
range = <class 'range'>
__author__ = 'jcgregorio@google.com (Joe Gregorio)'
BytesIO = <class '_io.BytesIO'>
StringIO = <class '_io.StringIO'>
urlparse = <function urlparse at 0x75536bcfa3e0>
urlunparse = <function urlunparse at 0x75536bcfade0>
quote = <function quote at 0x75536c35c540>
unquote = <function unquote at 0x75536bcfb380>
copy = <module 'copy' from '/usr/lib/python3.12/copy.py'>
httplib2 = <module 'httplib2' from 'env/lib/python3.12/site-packages/httplib2/__init__.py'>
json = <module 'json' from '/usr/lib/python3.12/json/__init__.py'>
logging = <module 'logging' from '/usr/lib/python3.12/logging/__init__.py'>
mimetypes = <module 'mimetypes' from '/usr/lib/python3.12/mimetypes.py'>
os = <module 'os' (frozen)>
random = <module 'random' from '/usr/lib/python3.12/random.py'>
socket = <module 'socket' from '/usr/lib/python3.12/socket.py'>
time = <module 'time' (built-in)>
uuid = <module 'uuid' from '/usr/lib/python3.12/uuid.py'>
ssl = <module 'ssl' from '/usr/lib/python3.12/ssl.py'>
_ssl_SSLError = <class 'ssl.SSLError'>
Generator = <class 'email.generator.Generator'>
MIMEMultipart = <class 'email.mime.multipart.MIMEMultipart'>
MIMENonMultipart = <class 'email.mime.nonmultipart.MIMENonMultipart'>
FeedParser = <class 'email.feedparser.FeedParser'>
util = <module 'googleapiclient._helpers' from 'env/lib/python3.12/site-packages/googleapiclient/_helpers.py'>
_auth = <module 'googleapiclient._auth' from 'env/lib/python3.12/site-packages/googleapiclient/_auth.py'>
BatchError = <class 'googleapiclient.errors.BatchError'>
HttpError = <class 'googleapiclient.errors.HttpError'>
InvalidChunkSizeError = <class 'googleapiclient.errors.InvalidChunkSizeError'>
ResumableUploadError = <class 'googleapiclient.errors.ResumableUploadError'>
UnexpectedBodyError = <class 'googleapiclient.errors.UnexpectedBodyError'>
UnexpectedMethodError = <class 'googleapiclient.errors.UnexpectedMethodError'>
File "env/lib/python3.12/site-packages/googleapiclient/model.py", line 30, in <module>
import pkg_resources
__name__ = 'googleapiclient.model'
__doc__ = 'Model objects for requests and responses.\n\nEach API may support one or more serializations, such\nas JSON, Atom, etc. The model classes are responsible\nfor converting between the wire format and the Python\nobject representation.\n'
__package__ = 'googleapiclient'
__loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7553669de120>
__spec__ = ModuleSpec(name='googleapiclient.model', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7553669de120>, origin='env/lib/python3.12/site-packages/googleapiclient/model.py')
__file__ = 'env/lib/python3.12/site-packages/googleapiclient/model.py'
__cached__ = 'env/lib/python3.12/site-packages/googleapiclient/__pycache__/model.cpython-312.pyc'
__builtins__ = {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), '__build_class__': <built-in function __build_class__>, '__import__': <built-in function __import__>, 'abs': <built-in function abs>, 'all': <built-in function all>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'breakpoint': <built-in function breakpoint>, 'callable': <built-in f...
absolute_import = _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0), 262144)
six = <module 'six' from 'env/lib/python3.12/site-packages/six.py'>
__author__ = 'jcgregorio@google.com (Joe Gregorio)'
json = <module 'json' from '/usr/lib/python3.12/json/__init__.py'>
logging = <module 'logging' from '/usr/lib/python3.12/logging/__init__.py'>
platform = <module 'platform' from '/usr/lib/python3.12/platform.py'>
File "env/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2191, in <module>
register_finder(pkgutil.ImpImporter, find_on_path)
__name__ = 'pkg_resources'
__doc__ = '\nPackage resource API\n--------------------\n\nA resource is a logical file contained within a package, or a logical\nsubdirectory thereof. The package resource API expects resource names\nto have their path parts separated with ``/``, *not* whatever the local\npath separator is. Do not use os.path operations to manipulate resource\nnames being passed into the API.\n\nThe package resource API is designed to work with normal filesystem packages,\n.egg files, and unpacked .egg files. It can also work in a limited way with\n.zip files and with custom PEP 302 loaders that support the ``get_data()``\nmethod.\n'
__package__ = 'pkg_resources'
__loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7553669deb10>
__spec__ = ModuleSpec(name='pkg_resources', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7553669deb10>, origin='env/lib/python3.12/site-packages/pkg_resources/__init__.py', submodule_search_locations=['env/lib/python3.12/site-packages/pkg_resources'])
__path__ = ['env/lib/python3.12/site-packages/pkg_resources']
__file__ = 'env/lib/python3.12/site-packages/pkg_resources/__init__.py'
__cached__ = 'env/lib/python3.12/site-packages/pkg_resources/__pycache__/__init__.cpython-312.pyc'
__builtins__ = {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), '__build_class__': <built-in function __build_class__>, '__import__': <built-in function __import__>, 'abs': <built-in function abs>, 'all': <built-in function all>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'breakpoint': <built-in function breakpoint>, 'callable': <built-in f...
sys = <module 'sys' (built-in)>
os = <module 'os' (frozen)>
io = <module 'io' (frozen)>
time = <module 'time' (built-in)>
re = <module 're' from '/usr/lib/python3.12/re/__init__.py'>
types = <module 'types' from '/usr/lib/python3.12/types.py'>
zipfile = <module 'zipfile' from '/usr/lib/python3.12/zipfile/__init__.py'>
zipimport = <module 'zipimport' (frozen)>
warnings = <module 'warnings' from '/usr/lib/python3.12/warnings.py'>
stat = <module 'stat' (frozen)>
functools = <module 'functools' from '/usr/lib/python3.12/functools.py'>
pkgutil = <module 'pkgutil' from '/usr/lib/python3.12/pkgutil.py'>
operator = <module 'operator' from '/usr/lib/python3.12/operator.py'>
platform = <module 'platform' from '/usr/lib/python3.12/platform.py'>
collections = <module 'collections' from '/usr/lib/python3.12/collections/__init__.py'>
plistlib = <module 'plistlib' from '/usr/lib/python3.12/plistlib.py'>
email = <module 'email' from '/usr/lib/python3.12/email/__init__.py'>
errno = <module 'errno' (built-in)>
tempfile = <module 'tempfile' from '/usr/lib/python3.12/tempfile.py'>
textwrap = <module 'textwrap' from '/usr/lib/python3.12/textwrap.py'>
itertools = <module 'itertools' (built-in)>
inspect = <module 'inspect' from '/usr/lib/python3.12/inspect.py'>
ntpath = <module 'ntpath' (frozen)>
posixpath = <module 'posixpath' (frozen)>
importlib = <module 'importlib' from '/usr/lib/python3.12/importlib/__init__.py'>
get_importer = <function get_importer at 0x75536aec45e0>
_imp = <module '_imp' (built-in)>
utime = <built-in function utime>
mkdir = <built-in function mkdir>
rename = <built-in function rename>
unlink = <built-in function unlink>
WRITE_SUPPORT = True
os_open = <built-in function open>
isdir = <function isdir at 0x75536bed42c0>
split = <function split at 0x75536bed4b80>
importlib_machinery = <module 'importlib.machinery' (frozen)>
extern = <module 'pkg_resources.extern' from 'env/lib/python3.12/site-packages/pkg_resources/extern/__init__.py'>
_vendor = <module 'pkg_resources._vendor' from 'env/lib/python3.12/site-packages/pkg_resources/_vendor/__init__.py'>
yield_lines = <function yield_lines at 0x75536689ba60>
drop_comment = <function drop_comment at 0x75536689bba0>
join_continuation = <function join_continuation at 0x75536689bce0>
appdirs = <module 'pkg_resources.extern.appdirs' (<pkg_resources.extern.VendorImporter object at 0x7553668429f0>)>
packaging = <module 'pkg_resources.extern.packaging' (<pkg_resources.extern.VendorImporter object at 0x7553668429f0>)>
require = None
working_set = None
add_activation_listener = None
resources_stream = None
cleanup_resources = None
resource_dir = None
resource_stream = None
set_extraction_path = None
resource_isdir = None
resource_string = None
iter_entry_points = None
resource_listdir = None
resource_filename = None
resource_exists = None
_distribution_finders = {<class 'zipimport.zipimporter'>: <function find_eggs_in_zip at 0x755366700540>, <class 'object'>: <function find_nothing at 0x755366700680>}
_namespace_handlers = None
_namespace_packages = None
PEP440Warning = <class 'pkg_resources.PEP440Warning'>
parse_version = <function parse_version at 0x75536680e340>
_state_vars = {'_distribution_finders': 'dict'}
_declare_state = <function _declare_state at 0x7553666ad580>
__getstate__ = <function __getstate__ at 0x7553666adbc0>
__setstate__ = <function __setstate__ at 0x7553666adc60>
_sget_dict = <function _sget_dict at 0x7553666add00>
_sset_dict = <function _sset_dict at 0x7553666adda0>
_sget_object = <function _sget_object at 0x7553666ade40>
_sset_object = <function _sset_object at 0x7553666adee0>
_sget_none = <function <lambda> at 0x7553666adf80>
_sset_none = <function <lambda> at 0x7553666adf80>
get_supported_platform = <function get_supported_platform at 0x7553666ae020>
__all__ = ['require', 'run_script', 'get_provider', 'get_distribution', 'load_entry_point', 'get_entry_map', 'get_entry_info', 'iter_entry_points', 'resource_string', 'resource_stream', 'resource_filename', 'resource_listdir', 'resource_exists', 'resource_isdir', 'declare_namespace', 'working_set', 'add_activation_listener', 'find_distributions', 'set_extraction_path', 'cleanup_resources', 'get_default_cache', 'Environment', 'WorkingSet', 'ResourceManager', 'Distribution', 'Requirement', 'EntryPoint', 'ResolutionError', 'VersionConflict', 'DistributionNotFound', 'UnknownExtra', 'ExtractionError', 'PEP440Warning', 'parse_requirements', 'parse_version', 'safe_name', 'safe_version', 'get_platform', 'compatible_platforms', 'yield_lines', 'split_sections', 'safe_extra', 'to_filename', 'invalid_marker', 'evaluate_marker', 'ensure_directory', 'normalize_path', 'EGG_DIST', 'BINARY_DIST', 'SOURCE_DIST', 'CHECKOUT_DIST', 'DEVELOP_DIST', 'IMetadataProvider', 'IResourceProvider', 'FileMetadata', 'PathMetada...
ResolutionError = <class 'pkg_resources.ResolutionError'>
VersionConflict = <class 'pkg_resources.VersionConflict'>
ContextualVersionConflict = <class 'pkg_resources.ContextualVersionConflict'>
DistributionNotFound = <class 'pkg_resources.DistributionNotFound'>
UnknownExtra = <class 'pkg_resources.UnknownExtra'>
_provider_factories = {<class 'object'>: <class 'pkg_resources.NullProvider'>, <class '_frozen_importlib_external.SourceFileLoader'>: <class 'pkg_resources.DefaultProvider'>, <class '_frozen_importlib_external.SourcelessFileLoader'>: <class 'pkg_resources.DefaultProvider'>, <class 'zipimport.zipimporter'>: <class 'pkg_resources.ZipProvider'>}
PY_MAJOR = '3.12'
EGG_DIST = 3
BINARY_DIST = 2
SOURCE_DIST = 1
CHECKOUT_DIST = 0
DEVELOP_DIST = -1
register_loader_type = <function register_loader_type at 0x7553666ae0c0>
get_provider = <function get_provider at 0x7553666ae980>
_macos_vers = <function _macos_vers at 0x7553666aea20>
_macos_arch = <function _macos_arch at 0x7553666aeac0>
get_build_platform = <function get_build_platform at 0x7553666aeb60>
macosVersionString = re.compile('macosx-(\\d+)\\.(\\d+)-(.*)')
darwinVersionString = re.compile('darwin-(\\d+)\\.(\\d+)\\.(\\d+)-(.*)')
get_platform = <function get_build_platform at 0x7553666aeb60>
compatible_platforms = <function compatible_platforms at 0x7553666aec00>
run_script = <function run_script at 0x7553666aeca0>
run_main = <function run_script at 0x7553666aeca0>
get_distribution = <function get_distribution at 0x7553666aed40>
load_entry_point = <function load_entry_point at 0x7553666aede0>
get_entry_map = <function get_entry_map at 0x7553666aee80>
get_entry_info = <function get_entry_info at 0x7553666aef20>
IMetadataProvider = <class 'pkg_resources.IMetadataProvider'>
IResourceProvider = <class 'pkg_resources.IResourceProvider'>
WorkingSet = <class 'pkg_resources.WorkingSet'>
_ReqExtras = <class 'pkg_resources._ReqExtras'>
Environment = <class 'pkg_resources.Environment'>
AvailableDistributions = <class 'pkg_resources.Environment'>
ExtractionError = <class 'pkg_resources.ExtractionError'>
ResourceManager = <class 'pkg_resources.ResourceManager'>
get_default_cache = <function get_default_cache at 0x7553666aefc0>
safe_name = <function safe_name at 0x7553666f9300>
safe_version = <function safe_version at 0x7553666f93a0>
safe_extra = <function safe_extra at 0x7553666f9440>
to_filename = <function to_filename at 0x7553666f94e0>
invalid_marker = <function invalid_marker at 0x7553666f9580>
evaluate_marker = <function evaluate_marker at 0x7553666f9620>
NullProvider = <class 'pkg_resources.NullProvider'>
_parents = <function _parents at 0x7553666fa3e0>
EggProvider = <class 'pkg_resources.EggProvider'>
DefaultProvider = <class 'pkg_resources.DefaultProvider'>
EmptyProvider = <class 'pkg_resources.EmptyProvider'>
empty_provider = <pkg_resources.EmptyProvider object at 0x7553666a6d50>
ZipManifests = <class 'pkg_resources.ZipManifests'>
MemoizedZipManifests = <class 'pkg_resources.MemoizedZipManifests'>
ZipProvider = <class 'pkg_resources.ZipProvider'>
FileMetadata = <class 'pkg_resources.FileMetadata'>
PathMetadata = <class 'pkg_resources.PathMetadata'>
EggMetadata = <class 'pkg_resources.EggMetadata'>
register_finder = <function register_finder at 0x7553666fa480>
find_distributions = <function find_distributions at 0x7553667004a0>
find_eggs_in_zip = <function find_eggs_in_zip at 0x755366700540>
find_nothing = <function find_nothing at 0x755366700680>
_by_version_descending = <function _by_version_descending at 0x755366700720>
find_on_path = <function find_on_path at 0x7553667007c0>
dist_factory = <function dist_factory at 0x755366700860>
NoDists = <class 'pkg_resources.NoDists'>
safe_listdir = <function safe_listdir at 0x755366700900>
distributions_from_metadata = <function distributions_from_metadata at 0x755366700ae0>
non_empty_lines = <function non_empty_lines at 0x755366700b80>
resolve_egg_link = <function resolve_egg_link at 0x755366700c20>
builtins.AttributeError: module 'pkgutil' has no attribute 'ImpImporter'
ok update on this, on a fresh install it works if i only add a single server, if i add a second server that has the same sku it gives errors
Please send the errors you are referring to, as well as a screenshot of the WooCommerce tab on the relevant Item. If you don't want to publish it here, you can send it to dirk [at] finfoot.tech
Is your feature request related to a problem? Please describe.
product from woocommerce stores should be added to erpnext item list, woocommerce connector did this
Describe the solution you'd like
an option to enable product to be listed in item list as well WooCommerce product list
Describe alternatives you've considered
erp next WooCommerce connector already does this
Additional context
No response