Bda.plone.shop development focus/direction?

I saw some comments that indicate bda.plone.shop might be the best current pick for a Plone5 ecommerce add-on. I managed to install it on Plone 5.2.1 on Python 3.8 and things mostly work as expected. (I don't get what "update cart" is supposed to do though since cart is updated automatically when items are added...)

But I'd like to understand what's the bda.plone.shop development targeting or focusing on currently? I see that there's a bootstrap-plone6 branch that's got most active development it seems. Does that target some new bootstrap4-based UI or what? The bootstrap-related changes don't seem that big there though, might be just fixes & tweaks for all that I know... but there's some other improvements there too. One thing I'd be happy to see is pure frontend implementation for cart state, a'la http://miohtama.github.io/Eric-Cartman/ (I know, it's open source, ... so I digress).

Any other pertinent suggestions on using bda.plone.shop on Plone 5.2.x / Python3.8+ ?

afaik bda.plone.shop is the most active Plone based shop solution :wink:

We started updating the whole stack to work with Plone 5.2+ (Python 3.7) and to work with the upcoming bootstrap based theme for Plone 6 (https://github.com/plone/buildout.coredev/blob/5.2/plips/plip-2967-barceloneta-lts.cfg). This also included updating yafowil to make it work with bootstrap 4.

https://www.kartenstapel.ch/karten (still some polishing to do) is using those updated branches, together with collective.collectionfilter and plone.app.mosaic.

Regarding changes to the shop packages, there are probably more changes in the actual project implementation which I have to bring to back to the original packages as soon as the project is finished.

Also we did quite some restructuring in https://github.com/bluedynamics/bda.plone.productshop/tree/restructure-types which is an implementation of all those shop components including product and productgroup content types.

What we'd like to see for the future of bda.plone.shop is a shop solution for Plone that works with classic Plone and Volto. Therefore we already implemented some endpoints and also looked at some react cart solutions, https://github.com/olegnn/react-shopping-cart looks quite good but no implementation yet.

Let me know if you need some pointers on which branches to use or else...
As always, help is more than welcome!

One more thing ... we're sprinting on modernizing the Plone default theme https://github.com/plone/Products.CMFPlone/issues/3061 and https://github.com/plone/Products.CMFPlone/issues/2967 every Wednesday from 9:00 (CEST) to the standup at 17:00. Everybody is welcome to join on https://meet.jit.si/plone-6-sprint-barceloneta

2 Likes

I didn't know there was a sprint announced or running at the moment. Was it published on www.plone.org already?

It hasn't been :frowning:

We just continue with the work from https://plone.org/events/sprints/plone-6-sprint-remote-only - still everybody is welcome to join. But you're right we should plan/announce something more official soon :slight_smile:

Hi Petri

Glad to know you made plone add on : bda.plone.shop works.
I want to build my web site with this add on.
But try many time all failed.
It's based on Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-88-generic x86_64)

(base) kyholdings@vultr:~/zinstance$ python
Python 3.8.3 (default, May 19 2020, 18:47:26)

Plone-5.2.2-UnifiedInstaller
extensions =
    buildout.sanitycheck
extends =
    base.cfg
    release-5.2.2-versions.cfg
eggs =
    Plone
    Pillow
    Products.PloneHotfix20200121
    bluedynamics/bda.plone.shop


requirements.txt
setuptools==42.0.2
zc.buildout==2.13.3


(base) kyholdings@vultr:~/zinstance$ bin/buildout
Uninstalling unifiedinstaller.
Uninstalling zopepy.
Uninstalling backup.
Uninstalling repozo.
Uninstalling instance.
Unused options for buildout: 'deprecation-warnings'.
Installing instance.
While:
  Installing instance.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 90, in __init__
    req = REQUIREMENT.parseString(requirement_string)
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1654, in parseString
    raise exc
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1644, in parseString
    loc, tokens = self._parse( instring, 0 )
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1402, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 3417, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1406, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 3205, in parseImpl
    raise ParseException(instring, loc, self.errmsg, self)
pkg_resources._vendor.pyparsing.ParseException: Expected stringEnd (at char 12), (line:1, col:13)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3101, in __init__
    super(Requirement, self).__init__(requirement_string)
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 92, in __init__
    raise InvalidRequirement(
pkg_resources.extern.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at "'/bda.plo'"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 2174, in main
    getattr(buildout, command)(args)
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 817, in install
    installed_files = self[part]._call(recipe.install)
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 1603, in _call
    return f()
  File "/home/kyholdings/buildout-cache/eggs/plone.recipe.zope2instance-6.7.5-py3.8.egg/plone/recipe/zope2instance/recipe.py", line 146, in install
    installed.extend(self.install_scripts())
  File "/home/kyholdings/buildout-cache/eggs/plone.recipe.zope2instance-6.7.5-py3.8.egg/plone/recipe/zope2instance/recipe.py", line 858, in install_scripts
    requirements, ws = self.egg.working_set(['plone.recipe.zope2instance'])
  File "/home/kyholdings/buildout-cache/eggs/zc.recipe.egg-2.0.7-py3.8.egg/zc/recipe/egg/egg.py", line 78, in working_set
    ws = self._working_set(
  File "/home/kyholdings/buildout-cache/eggs/zc.recipe.egg-2.0.7-py3.8.egg/zc/recipe/egg/egg.py", line 161, in _working_set
    ws = zc.buildout.easy_install.install(
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/zc/buildout/easy_install.py", line 957, in install
    return installer.install(specs, working_set)
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/zc/buildout/easy_install.py", line 673, in install
    requirements = [self._constrain(pkg_resources.Requirement.parse(spec))
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/zc/buildout/easy_install.py", line 673, in <listcomp>
    requirements = [self._constrain(pkg_resources.Requirement.parse(spec))
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3148, in parse
    req, = parse_requirements(s)
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3094, in parse_requirements
    yield Requirement(line)
  File "/home/kyholdings/zinstance/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3103, in __init__
    raise RequirementParseError(str(e))
pkg_resources.RequirementParseError: Invalid requirement, parse error at "'/bda.plo'"

What's wrong.
Could you please help me to find right install program?

Yours Sincerely
Alex Zhang

@kyholdings bda.plone.shop doesn't have releases on pypi (yet)
You'll have to add the sources to checkout from GitHub to your buildout as well.
Have a look at https://github.com/bluedynamics/bda.plone.productshop this is a more complete example setup with content types.
Clone the repository with git and run https://github.com/bluedynamics/bda.plone.productshop/blob/master/bootstrap-5.2.x.sh

Hi Agitator

Thanks for your so kind reply.
I'm a newbie.
I have installed plone instance in /home/kyholdings/zinstance
Which folder should I Clone the repository with git?
I have tried to clone the bda.plone.shop with git in zinstance folder.
in bda.plone.shop folder run ./bootstrap-5.2.x.sh
bin/instance start
but I can't find the add-on of bda.plone.shop in plone site.
Could you please help me anymore to finish the installation?

Thanks
Alex

you should put bda.plone.shop in zinstance/src folder

in you zinstance/buildout.cfg you should have

eggs = Plone
    etc. etc.
    bda.plone.shop

develop = 
    src/bda.plone.shop

In zinstance folder, run:

bin/buildout

bin/instance start

PS: Make sure the folder is named 'bra.plone.shop' (in case it gets renamed during download)

and you have to add dependencies to the checkout https://github.com/bluedynamics/bda.plone.productshop/blob/master/sources.cfg

Hi Espen
What's you mean: PS: Make sure the folder is named 'bra.plone.shop' (in case it gets renamed during download)

Are you sure?
I think the folder name should be bda.plone.shop

in zinstance/src folder, I run:
git clone https://github.com/bluedynamics/bda.plone.shop.git
so the folder bda.plone.shop downloaded
next, back to zinstance folder add bda.plone.shop to eggs list
and add src/bda.plone.shop in develop list
run bin/buildout

(kyholdings) kyholdings@vultr:~/zinstance$ bin/buildout
Develop: '/home/kyholdings/zinstance/src/bda.plone.shop'
warning: no previously-included files matching '*.pyc' found under directory 'src'
warning: no previously-included files matching '*.pyo' found under directory 'src'
Uninstalling unifiedinstaller.
Uninstalling zopepy.
Uninstalling backup.
Uninstalling repozo.
Uninstalling instance.
Unused options for buildout: 'deprecation-warnings'.
Installing instance.
Getting distribution for 'collective.z3cform.datagridfield==1.5.3'.
Got collective.z3cform.datagridfield 1.5.3.
Couldn't find index page for 'bda.plone.orders' (maybe misspelled?)
Getting distribution for 'bda.plone.orders'.
Couldn't find index page for 'bda.plone.orders' (maybe misspelled?)
While:
Installing instance.
Getting distribution for 'bda.plone.orders'.
Error: Couldn't find a distribution for 'bda.plone.orders'.

(kyholdings) kyholdings@vultr:~/zinstance$ cd src/bda.plone.shop

(kyholdings) kyholdings@vultr:~/zinstance/src/bda.plone.shop$ ./[bootstrap-5.2.x.sh](http://bootstrap-5.2.x.sh)

....................
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/addchangelogentry'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/bumpversion'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/fullrelease'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/lasttagdiff'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/lasttaglog'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/longtest'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/postrelease'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/prerelease'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/release'.
Installing code-analysis.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/flake8'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/check-manifest'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-chameleon-lint'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-csslint'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-check-manifest'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-clean-lines'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-dependencychecker'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-importchecker'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-flake8'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-find-untranslated'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-jscs'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-jshint'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-scsslint'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-xmllint'.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/code-analysis-zptlint'.
Installed Git pre-commit hook.
Uninstalled Git pre-push hook.
Installing i18ndude.
Getting distribution for 'i18ndude==5.3.4'.
Got i18ndude 5.3.4.
Generated script '/home/kyholdings/zinstance/src/bda.plone.shop/bin/i18ndude'.
Unused options for i18ndude: 'unzip'.
(kyholdings) kyholdings@vultr:~/zinstance/src/bda.plone.shop$ cd ../..
(kyholdings) kyholdings@vultr:~/zinstance$ bin/buildout
Develop: '/home/kyholdings/zinstance/src/bda.plone.shop'
warning: no previously-included files matching '*.pyc' found under directory 'src'
warning: no previously-included files matching '*.pyo' found under directory 'src'
Unused options for buildout: 'deprecation-warnings'.
Installing instance.
Couldn't find index page for 'bda.plone.orders' (maybe misspelled?)
Getting distribution for 'bda.plone.orders'.
Couldn't find index page for 'bda.plone.orders' (maybe misspelled?)
While:
Installing instance.
Getting distribution for 'bda.plone.orders'.

Error: Couldn't find a distribution for 'bda.plone.orders'.

That what I get.
What's wrong?

Sorry, the is my device trying to auto-fix words to Norwegian.

That said: 'bra' means good in Norwegian (!)

If you use your own buildout.cfg you need to add these:

You might have to add all om them to develop part (same as you did with bda.plone.shop)

either

src/bda.plone.someaddon

or

devsrc/bda.plone.someaddon

Hi Peter

do you mean add following content into buildout.cfg file?

extensions += mr.developer
always-checkout = true
sources-dir = devsrc

auto-checkout +=
    bda.plone.shop
    bda.plone.discount
    bda.plone.checkout
    bda.plone.cart
    bda.plone.payment
    bda.plone.orders

[remotes]
github = git://github.com
github_push = git@github.com

[sources]
bda.plone.shop              = git ${remotes:github}/bluedynamics/bda.plone.shop.git branch=master              pushurl=${remotes:github_push}:bluedynamics/bda.plone.shop.git
bda.plone.discount          = git ${remotes:github}/bluedynamics/bda.plone.discount.git branch=master          pushurl=${remotes:github_push}:bluedynamics/bda.plone.discount.git
bda.plone.checkout          = git ${remotes:github}/bluedynamics/bda.plone.checkout.git branch=master          pushurl=${remotes:github_push}:bluedynamics/bda.plone.checkout.git
bda.plone.cart              = git ${remotes:github}/bluedynamics/bda.plone.cart.git branch=master              pushurl=${remotes:github_push}:bluedynamics/bda.plone.cart.git
bda.plone.payment           = git ${remotes:github}/bluedynamics/bda.plone.payment.git branch=master           pushurl=${remotes:github_push}:bluedynamics/bda.plone.payment.git
bda.plone.orders            = git ${remotes:github}/bluedynamics/bda.plone.orders.git branch=master            pushurl=${remotes:github_push}:bluedynamics/bda.plone.orders.git

Alex

Hi Espen

I only add eggs as follow:

eggs = Plone Pillow Products.PloneHotfix20200121 bda.plone.shop bda.plone.discount bda.plone.checkout bda.plone.cart bda.plone.payment bda.plone.orders bda.plone.stripe
and develop as:

develop =
#    src/my.package
    src/bda.plone.shop
    src/bda.plone.shop/devsrc/bda.plone.discount
    src/bda.plone.shop/devsrc/bda.plone.checkout
    src/bda.plone.shop/devsrc/bda.plone.cart
    src/bda.plone.shop/devsrc/bda.plone.payment
    src/bda.plone.shop/devsrc/bda.plone.orders
    src/bda.plone.shop/devsrc/bda.plone.stripe

run bin/buildout successfully:

...........
Generated script '/home/kyholdings/zinstance/bin/instance'.
Generated interpreter '/home/kyholdings/zinstance/parts/instance/bin/interpreter'.
Installing repozo.
Generated script '/home/kyholdings/zinstance/bin/repozo'.
Installing backup.
Generated script '/home/kyholdings/zinstance/bin/backup'.
Generated script '/home/kyholdings/zinstance/bin/snapshotbackup'.
Generated script '/home/kyholdings/zinstance/bin/restore'.
Generated script '/home/kyholdings/zinstance/bin/snapshotrestore'.
Installing zopepy.
Generated interpreter '/home/kyholdings/zinstance/bin/zopepy'.
Installing unifiedinstaller.
Versions had to be automatically picked.
The following part definition lists the versions picked:
[versions]
bda.intellidatetime = 1.3
bdajax = 1.13
node = 0.9.25
odict = 1.7.0
plumber = 1.6
repoze.catalog = 0.9.0
yafowil = 2.3.3
yafowil.plone = 3.0.0
yafowil.yaml = 1.3.1
zope.index = 5.0.0

# Required by:
# yafowil.yaml==1.3.1
PyYAML = 5.3.1

# Required by:
# bda.plone.cart==2.0.dev0
# bda.plone.orders==2.0.dev0
bda.plone.ajax = 2.0

# Required by:
# bda.plone.orders==2.0.dev0
collective.js.datatables = 4.1.2

# Required by:
# bda.plone.orders==2.0.dev0
csv23 = 0.3.2

# Required by:
# souper==1.1.1
node.ext.zodb = 1.3

# Required by:
# bda.plone.checkout==2.0.dev0
pycountry = 20.7.3

# Required by:
# souper.plone==1.3.0
souper = 1.1.1

# Required by:
# bda.plone.discount==2.0.dev0
souper.plone = 1.3.0

# Required by:
# bda.plone.stripe==0.1.dev0
stripe = 2.55.0

# Required by:
# bda.plone.orders==2.0.dev0
yafowil.widget.array = 1.6.1

# Required by:
# bda.plone.discount==2.0.dev0
yafowil.widget.autocomplete = 1.7

# Required by:
# bda.plone.orders==2.0.dev0
yafowil.widget.datetime = 1.12

But when I run bin/instance fg

(kyholdings) kyholdings@vultr:~/zinstance$ bin/instance fg
/home/kyholdings/buildout-cache/eggs/Products.CMFDiffTool-3.3.1-py3.7.egg/Products/CMFDiffTool/libs/htmldiff.py:32: DeprecationWarning: invalid escape sequence \s
  headRE = re.compile('<\s*head\s*>', re.S | re.I)
/home/kyholdings/buildout-cache/eggs/Products.CMFFormController-4.1.2-py3.7.egg/Products/CMFFormController/ControllerPythonScript.py:61: DeprecationWarning: invalid escape sequence \S
  _nonempty_line = re.compile('(?m)^(.*\S.*)$')
/home/kyholdings/buildout-cache/eggs/Products.CMFFormController-4.1.2-py3.7.egg/Products/CMFFormController/ControllerPythonScript.py:41: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
2020-10-19 23:23:19,938 WARNING [Init:89][MainThread] Class Products.CMFFormController.ControllerPythonScript.ControllerPythonScript has a security declaration for nonexistent method 'ZPythonScriptHTML_changePrefs'
2020-10-19 23:23:19,944 WARNING [Init:89][MainThread] Class Products.CMFFormController.ControllerValidator.ControllerValidator has a security declaration for nonexistent method 'ZPythonScriptHTML_changePrefs'
/home/kyholdings/buildout-cache/eggs/Products.CMFPlacefulWorkflow-2.0.2-py3.7.egg/Products/CMFPlacefulWorkflow/permissions.py:5: DeprecationWarning: setDefaultRoles is deprecated. Please use addPermission from AccessControl.Permission.
  from Products.CMFCore.permissions import setDefaultRoles
/home/kyholdings/buildout-cache/eggs/Products.MimetypesRegistry-2.1.7-py3.7.egg/Products/MimetypesRegistry/encoding.py:9: DeprecationWarning: invalid escape sequence \?
  XML_ENCODING_RGX = re.compile('<\?xml version=[^\s]*\s*encoding=([^\s]*)\s*\?>')  # noqa
/home/kyholdings/buildout-cache/eggs/Products.MimetypesRegistry-2.1.7-py3.7.egg/Products/MimetypesRegistry/mime_types/magic.py:98: DeprecationWarning: invalid escape sequence \
  b'8BPS\ \ \000\000\000\000 &0xffffffff0000ffffffff',
/home/kyholdings/buildout-cache/eggs/Products.MimetypesRegistry-2.1.7-py3.7.egg/Products/MimetypesRegistry/mime_types/magic.py:125: DeprecationWarning: invalid escape sequence \>
  b'<!DOCTYPE NETSCAPE-Bookmark-file-1\>',
/home/kyholdings/buildout-cache/eggs/Products.MimetypesRegistry-2.1.7-py3.7.egg/Products/MimetypesRegistry/mime_types/magic.py:155: DeprecationWarning: invalid escape sequence \!
  [0, 'string', '=', b'<\!DOCTYPE abiword', 'application/x-abiword'],
/home/kyholdings/buildout-cache/eggs/Products.MimetypesRegistry-2.1.7-py3.7.egg/Products/MimetypesRegistry/mime_types/magic.py:191: DeprecationWarning: invalid escape sequence \/
  [0, 'string', '=', b'pnm:\/\/', 'audio/vnd.rn-realaudio'],
/home/kyholdings/buildout-cache/eggs/Products.MimetypesRegistry-2.1.7-py3.7.egg/Products/MimetypesRegistry/mime_types/magic.py:242: DeprecationWarning: invalid escape sequence \<
  [0, 'string', '=', b'\<MakerScreenFont', 'application/x-font-framemaker'],
2020-10-19 23:23:20,474 INFO    [Products.PloneHotfix20200121:49][MainThread] Applied sql_quote patch
2020-10-19 23:23:20,520 INFO    [Products.PloneHotfix20200121:49][MainThread] Applied in_portal patch
2020-10-19 23:23:20,521 INFO    [Products.PloneHotfix20200121:49][MainThread] Applied password_validation patch
2020-10-19 23:23:20,530 INFO    [Products.PloneHotfix20200121:49][MainThread] Applied pac patch
/home/kyholdings/buildout-cache/eggs/Products.PloneHotfix20200121-1.1-py3.7.egg/Products/PloneHotfix20200121/utils.py:4: DeprecationWarning: getSiteEncoding: `getSiteEncoding` is deprecated. Plone only supports UTF-8 currently. This method always returns "utf-8"
  from Products.CMFPlone.utils import *
2020-10-19 23:23:20,549 INFO    [Products.PloneHotfix20200121:49][MainThread] Applied content patch
2020-10-19 23:23:20,561 INFO    [Products.PloneHotfix20200121:49][MainThread] Applied layout patch
2020-10-19 23:23:20,634 INFO    [Products.PloneHotfix20200121:49][MainThread] Applied restapi_local_roles patch
2020-10-19 23:23:20,635 INFO    [Products.PloneHotfix20200121:57][MainThread] Hotfix installed
/home/kyholdings/buildout-cache/eggs/Products.PortalTransforms-3.1.8-py3.7.egg/Products/PortalTransforms/libtransforms/commandtransform.py:46: DeprecationWarning: invalid escape sequence \.
  result = re.match("^.+\.(?P<ext>.+)$", f)
/home/kyholdings/buildout-cache/eggs/Products.PortalTransforms-3.1.8-py3.7.egg/Products/PortalTransforms/transforms/text_to_html.py:2: DeprecationWarning: html_quote is deprecated. Please import from DocumentTemplate.html_quote. These shims will go away in DocumentTemplate 4.0.
  from DocumentTemplate.DT_Util import html_quote
2020-10-19 23:23:20,949 INFO    [ZODB.blob:355][MainThread] (31048) Blob directory `/home/kyholdings/zinstance/var/blobstorage` is unused and has no layout marker set. Selected `bushy` layout.
2020-10-19 23:23:20,949 INFO    [ZODB.blob:355][MainThread] (31048) Blob temporary directory '/home/kyholdings/zinstance/var/blobstorage/tmp' does not exist. Created new directory.
2020-10-19 23:23:20,952 WARNING [TemporaryStorage:93][MainThread] DEPRECATED: Usage of the package tempstorage is deprecated, as it is known to randomly lose data.
Especially on Zope 4. For details see https://github.com/zopefoundation/tempstorage/issues/8
and https://github.com/zopefoundation/tempstorage

/home/kyholdings/buildout-cache/eggs/tempstorage-5.1-py3.7.egg/tempstorage/TemporaryStorage.py:94: DeprecationWarning: DEPRECATED: Usage of the package tempstorage is deprecated, as it is known to randomly lose data.
Especially on Zope 4. For details see https://github.com/zopefoundation/tempstorage/issues/8
and https://github.com/zopefoundation/tempstorage

  warnings.warn(deprecation_warning, DeprecationWarning)
/home/kyholdings/buildout-cache/eggs/plone.app.textfield-1.3.4-py3.7.egg/plone/app/textfield/utils.py:10: DeprecationWarning: ComponentLookupError is deprecated. Import from zope.interface.interfaces
  from zope.component.interfaces import ComponentLookupError
/home/kyholdings/buildout-cache/eggs/yafowil.plone-3.0.0-py3.7.egg/yafowil/plone/connectors.py:4: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
  from collections import MutableMapping as DictMixin
/home/kyholdings/buildout-cache/eggs/plone.app.upgrade-2.0.34-py3.7.egg/plone/app/upgrade/__init__.py:167: DeprecationWarning: LockItem is deprecated. Please import from OFS.LockItem.
  from webdav.LockItem import LockItem
/home/kyholdings/buildout-cache/eggs/plone.subrequest-1.9.2-py3.7.egg/plone/subrequest/__init__.py:18: DeprecationWarning: zope.site.hooks has moved to zope.component.hooks. Import of zope.site.hooks will become unsupported in Version 5.0
  from zope.site.hooks import getSite
/home/kyholdings/buildout-cache/eggs/zope.configuration-4.4.0-py3.7.egg/zope/configuration/config.py:241: DeprecationWarning: IObjectEvent is deprecated. Import from zope.interface.interfaces
  obj = getattr(mod, oname)
/home/kyholdings/buildout-cache/eggs/plone.app.content-3.8.6-py3.7.egg/plone/app/content/browser/vocabulary.py:10: DeprecationWarning: IFieldPermissionChecker is deprecated. Import IFieldPermissionChecker from plone.app.z3cform.interfaces instead
  from plone.app.widgets.interfaces import IFieldPermissionChecker
2020-10-19 23:23:22,611 INFO    [chameleon.config:38][MainThread] directory cache: /home/kyholdings/zinstance/var/cache.
/home/kyholdings/buildout-cache/eggs/zope.configuration-4.4.0-py3.7.egg/zope/configuration/config.py:241: DeprecationWarning: IComponentRegistry is deprecated. Import from zope.interface.interfaces
  obj = getattr(mod, oname)
/home/kyholdings/buildout-cache/eggs/zope.configuration-4.4.0-py3.7.egg/zope/configuration/config.py:241: DeprecationWarning: LockableItem is deprecated. Please import from OFS.Lockable.
  obj = getattr(mod, oname)
/home/kyholdings/buildout-cache/eggs/plone.schemaeditor-3.0.1-py3.7.egg/plone/schemaeditor/utils.py:6: DeprecationWarning: ObjectEvent is deprecated. Import from zope.interface.interfaces
  from zope.component.interfaces import ObjectEvent
/home/kyholdings/buildout-cache/eggs/zope.configuration-4.4.0-py3.7.egg/zope/configuration/config.py:241: DeprecationWarning: LazyMap is deprecated. Please import from ZTUtils.Lazy.
  obj = getattr(mod, oname)
/home/kyholdings/buildout-cache/eggs/zope.configuration-4.4.0-py3.7.egg/zope/configuration/config.py:241: DeprecationWarning: LazyCat is deprecated. Please import from ZTUtils.Lazy.
  obj = getattr(mod, oname)
/home/kyholdings/buildout-cache/eggs/plone.resourceeditor-3.0.2-py3.7.egg/plone/resourceeditor/browser.py:42: DeprecationWarning: invalid escape sequence \/
  invalidFilenameChars = frozenset('\/:*?"<>|')
/home/kyholdings/buildout-cache/eggs/plone.resourceeditor-3.0.2-py3.7.egg/plone/resourceeditor/browser.py:235: DeprecationWarning: invalid escape sequence \(
  reg = re.compile('url\(([^)]+)\)')
/home/kyholdings/buildout-cache/eggs/plone.portlet.static-3.1.4-py3.7.egg/plone/portlet/static/static.py:67: DeprecationWarning: invalid escape sequence \s
  constraint=re.compile("[^\s]").match,
/home/kyholdings/buildout-cache/eggs/Products.CMFPlone-5.2.2-py3.7.egg/Products/CMFPlone/CatalogTool.py:186: DeprecationWarning: invalid escape sequence \d
  num_sort_regex = re.compile('\d+')
/home/kyholdings/buildout-cache/eggs/plone.app.upgrade-2.0.34-py3.7.egg/plone/app/upgrade/v50/betas.py:8: DeprecationWarning: ILanguageSchema is deprecated. It has been moved to plone.i18n.interfaces, import from there instead.
  from Products.CMFPlone.interfaces import ILanguageSchema
/home/kyholdings/buildout-cache/eggs/Products.CMFPlone-5.2.2-py3.7.egg/Products/CMFPlone/controlpanel/browser/resourceregistry.py:25: DeprecationWarning: invalid escape sequence \(
  CSS_URL_REGEX = re.compile('url\(([^)]+)\)')
/home/kyholdings/buildout-cache/eggs/calmjs.parse-1.2.4-py3.7.egg/calmjs/parse/io.py:7: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
  from collections import Iterable
/home/kyholdings/buildout-cache/eggs/pyScss-1.3.7-py3.7-linux-x86_64.egg/scss/namespace.py:172: DeprecationWarning: inspect.getargspec() is deprecated since Python 3.0, use inspect.signature() or inspect.getfullargspec()
  argspec = inspect.getargspec(function)
/home/kyholdings/buildout-cache/eggs/pyScss-1.3.7-py3.7-linux-x86_64.egg/scss/selector.py:54: FutureWarning: Possible nested set at position 329
  ''', re.VERBOSE | re.MULTILINE)
/home/kyholdings/buildout-cache/eggs/plone.app.caching-2.0.6-py3.7.egg/plone/app/caching/operations/utils.py:39: DeprecationWarning: invalid escape sequence \s
  etagQuote = re.compile('(\s*(W\/)?\"([^\"]*)\"\s*,?)')
/home/kyholdings/buildout-cache/eggs/plone.restapi-6.13.7-py3.7.egg/plone/restapi/serializer/catalog.py:5: DeprecationWarning: Lazy is deprecated. Please import from ZTUtils.Lazy.
  from Products.ZCatalog.Lazy import Lazy
/home/kyholdings/buildout-cache/eggs/zope.configuration-4.4.0-py3.7.egg/zope/configuration/config.py:241: DeprecationWarning: CartViewlet is deprecated. Import from bda.plone.cart.browser.portlet instead
  obj = getattr(mod, oname)
Traceback (most recent call last):
  File "/home/kyholdings/zinstance/parts/instance/bin/interpreter", line 307, in <module>
    exec(compile(__file__f.read(), __file__, "exec"))
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/Startup/serve.py", line 255, in <module>
    sys.exit(main() or 0)
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/Startup/serve.py", line 251, in main
    return command.run()
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/Startup/serve.py", line 190, in run
    global_conf=vars)
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/Startup/serve.py", line 220, in loadapp
    return loadapp(app_spec, name=name, relative_to=relative_to, **kw)
  File "/home/kyholdings/buildout-cache/eggs/PasteDeploy-2.1.0-py3.7.egg/paste/deploy/loadwsgi.py", line 253, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File "/home/kyholdings/buildout-cache/eggs/PasteDeploy-2.1.0-py3.7.egg/paste/deploy/loadwsgi.py", line 278, in loadobj
    return context.create()
  File "/home/kyholdings/buildout-cache/eggs/PasteDeploy-2.1.0-py3.7.egg/paste/deploy/loadwsgi.py", line 715, in create
    return self.object_type.invoke(self)
  File "/home/kyholdings/buildout-cache/eggs/PasteDeploy-2.1.0-py3.7.egg/paste/deploy/loadwsgi.py", line 209, in invoke
    app = context.app_context.create()
  File "/home/kyholdings/buildout-cache/eggs/PasteDeploy-2.1.0-py3.7.egg/paste/deploy/loadwsgi.py", line 715, in create
    return self.object_type.invoke(self)
  File "/home/kyholdings/buildout-cache/eggs/PasteDeploy-2.1.0-py3.7.egg/paste/deploy/loadwsgi.py", line 152, in invoke
    return fix_call(context.object, context.global_conf, **context.local_conf)
  File "/home/kyholdings/buildout-cache/eggs/PasteDeploy-2.1.0-py3.7.egg/paste/deploy/util.py", line 55, in fix_call
    val = callable(*args, **kw)
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/Startup/run.py", line 71, in make_wsgi_app
    starter.prepare()
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/Startup/starter.py", line 41, in prepare
    self.startZope()
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/Startup/starter.py", line 99, in startZope
    Zope2.startup_wsgi()
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/__init__.py", line 50, in startup_wsgi
    _startup()
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/App/startup.py", line 143, in startup
    load_zcml()
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/App/startup.py", line 58, in load_zcml
    load_site()
  File "/home/kyholdings/buildout-cache/eggs/Zope-4.5.1-py3.7.egg/Zope2/App/zcml.py", line 45, in load_site
    _context = xmlconfig.file(site_zcml)
  File "/home/kyholdings/buildout-cache/eggs/zope.configuration-4.4.0-py3.7.egg/zope/configuration/xmlconfig.py", line 659, in file
    context.execute_actions()
  File "/home/kyholdings/buildout-cache/eggs/zope.configuration-4.4.0-py3.7.egg/zope/configuration/config.py", line 784, in execute_actions
    for action in resolveConflicts(self.actions):
  File "/home/kyholdings/buildout-cache/eggs/zope.configuration-4.4.0-py3.7.egg/zope/configuration/config.py", line 1811, in resolveConflicts
    raise ConfigurationConflictError(conflicts)
zope.configuration.config.ConfigurationConflictError: Conflicting configuration actions
  For: ('adapter', (<class 'decimal.Decimal'>,), <InterfaceClass plone.restapi.interfaces.IJsonCompatible>, '')
    File "/home/kyholdings/buildout-cache/eggs/plone.restapi-6.13.7-py3.7.egg/plone/restapi/serializer/configure.zcml", line 45.4-45.55
          <adapter factory=".converters.decimal_converter" />
    File "/home/kyholdings/zinstance/src/bda.plone.shop/devsrc/bda.plone.cart/src/bda/plone/cart/restapi/configure.zcml", line 7.2-7.52
        <adapter factory=".converter.decimal_converter" />

Also failed

Alex

[moderation] @kyholdings please use Markdown to format your postings, esp. the code/output blocks as code-block. I edit one, but not every. [/moderation]

Thank you Jens

try pinning plone.restapi to 6.13.6 in your versions section of the buildout

Hi Peter

Great!
It works after pinning plone.restapi to 6.13.6 .

Thank you!

Peter Holzer via Plone Community <community@plone.org> 于2020年10月20日周二 上午12:40写道:

Hi Peter
All the other bda.plone.* installed successfully only When I install

Upgrade policy GS profile to 3

– (bda.plone.shop.upgrades )

We’re sorry, but there seems to be an error…

Here is the full error message:

Traceback (innermost last):
  Module ZPublisher.WSGIPublisher, line 162, in transaction_pubevents
  Module ZPublisher.WSGIPublisher, line 359, in publish_module
  Module ZPublisher.WSGIPublisher, line 262, in publish
  Module ZPublisher.mapply, line 85, in mapply
  Module ZPublisher.WSGIPublisher, line 63, in call_object
  Module Products.CMFPlone.controlpanel.browser.quickinstaller, line 689, in __call__
  Module Products.CMFPlone.controlpanel.browser.quickinstaller, line 454, in install_product
  Module Products.GenericSetup.tool, line 396, in runAllImportStepsFromProfile
   - __traceback_info__: profile-bda.plone.shop.upgrades:2_to_3
  Module Products.GenericSetup.tool, line 1468, in _runImportStepsFromContext
  Module Products.GenericSetup.tool, line 1280, in _doRunImportStep
   - __traceback_info__: plone.app.registry
  Module plone.app.registry.exportimport.handler, line 79, in importRegistry
   - __traceback_info__: registry.xml
  Module plone.app.registry.exportimport.handler, line 127, in importDocument
  Module plone.app.registry.exportimport.handler, line 414, in importRecords
   - __traceback_info__: records name: bda.plone.shop.interfaces.IShopShippingSettings
  Module plone.app.registry.exportimport.handler, line 273, in importRecord
   - __traceback_info__: record name: bda.plone.shop.interfaces.IShopShippingSettings.include_shipping_costs
ValueError: Cannot find a field for the record bda.plone.shop.interfaces.IShopShippingSettings.include_shipping_costs. Add a <field /> element or reference an interface and field name.

Alex Zhang <buyerclub.cn@gmail.com> 于2020年10月20日周二 上午8:19写道: