bluedynamics / bda.plone.shop Goto Github PK
View Code? Open in Web Editor NEWGeneric Shop Solution for Plone
License: Other
Generic Shop Solution for Plone
License: Other
is there any reason the portlets (admin and cart) can only be added to the right portlet manager IRightColumn
?
<portlet
addview="portlets.ShopAdmin"
title="Shop Admin Portlet"
description="A portlet which renders shop admin links.">
<for interface="plone.app.portlets.interfaces.IRightColumn" />
</portlet>
i'd suggest to drop this restriction and simply register the portlets for all available portlet managers.
I tried to install the shop into my Plone 4.3.2 Installation, and got this traceback:
2014-11-21 16:00:18 ERROR Zope.SiteErrorLog 1416582018.150.901113599991 http://localhost:8080/Plone/portal_quickinstaller/installProducts
Traceback (innermost last):
Module ZPublisher.Publish, line 138, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 48, in call_object
Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 580, in installProducts
Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 512, in installProduct
- __traceback_info__: ('bda.plone.shop',)
Module Products.GenericSetup.tool, line 350, in runAllImportStepsFromProfile
- __traceback_info__: profile-bda.plone.shop:default
Module Products.GenericSetup.tool, line 1100, in _runImportStepsFromContext
Module Products.GenericSetup.tool, line 1015, in _doRunImportStep
- __traceback_info__: plone.app.registry
Module plone.app.registry.exportimport.handler, line 49, in importRegistry
Module plone.app.registry.exportimport.handler, line 94, in importDocument
Module plone.app.registry.exportimport.handler, line 281, in importRecords
Module zope.dottedname.resolve, line 38, in resolve
ImportError: No module named controlpanel
All bda.plone.* packages are checked out on master:
bda.plone.shop = git https://github.com/bluedynamics/bda.plone.shop.git
bda.plone.productshop = git https://github.com/bluedynamics/bda.plone.productshop.git
bda.plone.discount = git https://github.com/bluedynamics/bda.plone.discount.git
bda.plone.cart = git https://github.com/bluedynamics/bda.plone.cart.git
bda.plone.shipping = git https://github.com/bluedynamics/bda.plone.shipping.git
bda.plone.orders = git https://github.com/bluedynamics/bda.plone.orders.git
bda.plone.checkout = git https://github.com/bluedynamics/bda.plone.checkout.git
bda.plone.payment = git https://github.com/bluedynamics/bda.plone.payment.git
Does i need more?
Someone idea?
Example user story:
As a customer I want to be able to place a new order the same as (or similar to) a previous order I have made.
Hi,
I'm just wondering if userdata.py should still support plone.app.users 1.2 along with 2.0.1. Code has been changed to:
from plone.app.users.browser.userdatapanel import UserDataPanel
from
from plone.app.users.browser.personalpreferences import UserDataPanel
I wanted to check if there was a deliberate reasoning behind this and if it should support both versions? (plone app.users is still current with Plone4.3)
Cheers
As commented in bluedynamics/bda.plone.discount#4 it would be nice t be able to enable this behavior in with dexterity settings.
does anyone know of any best practices for optimized markup of the addtocart-viewlet?
especially the item infos as price, availability, ...
empy orders listing and no exportable orders
Optimizations for the bookings view:
Now that Plone 5 is (almost) out of the door, it would be great to have support for it.
What exactly needs to be done, are there any serious issues expected with the upgrade?
it should be possible to switch of tax calculation at all
no tax != 0%
allow to inform a potential customer about cart/cartitems that weren't bought.
for example send a reminder email and offer some discout
The filters on @@orders
and @@bookings
should be optimized:
Changes in Plone/@@shop_controlpanel can't be saved because the widget for shipping and payment methods seems to be broken.
The vocabularies (AvailableShippingMethodsVocabulary
and ShippingMethodsVocabulary
) both work fine, but the widget for IShopShippingSettings.available_shipping_methods
seems to be broken.
It does not display any selectable items.
Running Plone 4.3.6
Introduce bda.plone.shop.AddToCart
permission.
Usecase: Unauthenticated shop visitor collects items in cart to get a price, but is not allowed to checkout prior to login or register.
We have a custom project with the usecase that a customer can order n
items for free per order. Item price takes place as of count n + 1
in cart.
I was thinking about the following implementation:
IFreeItemAmountPerOrder
interface in bda.plone.shop
and implement it as dedicated DX behavior respective AT schema extender.CartDataProvider.cart_items
Any objections or ideas before I start?
Clicking on an order in the order page , in particular on the leftmost icon in a row after the checkbox, has no effect. Should it open the order detail page?
clicking the cart link in the portlet on /plone/buyable-item should take users to
/plone/@@cart instead of /plone/buyable-item/@@cart
the checkout link when viewing the cart should take users to /plone/@@checkout instead of
/plone/buyable-item/@@checkout
(bda.plone.cart)
this is especially important for the link to the terms before finishing the checkout.
currently we're relying on acquisition here.
(bda.plone.checkout)
the same should be done for the links in the admin portlet
/plone/some-content-in/some-folder/@@orders and @@exportorders
(bda.plone.shop)
is there any reason for invoking these views on the current context instead of an inavigationroot?
The total price of items in cart is incorrect while using 21% of VAT.
The image bellow shows an example of the issue (77.99€ instead of 78€) in a fresh Plone installation.
The net price used for the above items was:
Any ideas what is causing this problem?
After adding some products to the cart, if you log out and log in again with a different user you will see the cart still containing the previous items. Looks like the cart cookie is not removed at logout.
A shop admin should be able to cancel a booking on request of the customer and reorder it in their name. The process is like following:
This was part of #69 but now in it's own ticket.
Not sure, if a whole order should be canceled instead of an individual booking.
Any comments?
agb is german, we should at least make it english
TODO:
This is a user story for a feature/enhancement request from one of the b.p.shop merchants we work with.
As a merchant I would like to be able to select different email addresses and templates for automated emails to be sent to, based on payment method.
Example:
Credit card payment method:
Invoice payment method:
I had also wondered if this could be extended to automated email triggers being available when payment and order states are changed. This may be an over complication however.
It would also be good for uses to be able to add 'CC' and 'BCC' recipents to admin email address(es).
The example above is based on the current method that we have hacked together to work for the immediate demand, however I think it would be a nice feature to implement properly! It would be good to collect other needs/use cases for this beforehand however...
client doesn't want a country dropdown
shall we just add try/except?
def country(self, country_id):
try:
return get_pycountry_name(country_id)
except:
return country_id
bda.plone.shop should provide advanced discounting funcionality in order to be competitive. Here's a collection of requirements along with proposals how this could be implemented
Following cascading rules seem useful to me:
The UI implementation should be as follows:
Any suggestions?
Regards
-R
The shop admin portlet entries should be allowed to provided in a header bar as dropdown.
I see following options:
Hi,
I have installed bda.plone.shop / bda.plone.productshop as per the virtualenv method outlined in the development & testing instructions provided. All tests pass when running bin/tests -s bda
When attempting to create a product (or a variant within a product group) I get a recursion error with "Module plone.behavior.factory, line 19, in call" as per traceback below.
After adding some instrumentation, it seems to be a problem with the adapted_context for these fields with the behaviours:
field item_net bda.plone.shop.dx.IBuyableBehavior
field item_vat bda.plone.shop.dx.IBuyableBehavior
field item_display_gross bda.plone.shop.dx.IBuyableBehavior
field item_comment_enabled bda.plone.shop.dx.IBuyableBehavior
field item_comment_required bda.plone.shop.dx.IBuyableBehavior
field item_quantity_unit bda.plone.shop.dx.IBuyableBehavior
field item_quantity_unit_float bda.plone.shop.dx.IBuyableBehavior
field item_available bda.plone.shop.dx.IBuyableBehavior
field item_available bda.plone.shop.dx.IStockBehavior
field item_overbook bda.plone.shop.dx.IStockBehavior
field shipping_item_weight bda.plone.shop.dx.IShippingBehavior
I would really appreciate it if anyone could point me in the right direction to resolve this. It looks like a well constructed and comprehensive product!
Cheers.
Traceback: http://pastie.org/8747249
Installed Products: http://pastie.org/8747287
discount or specific prices based on the amount of ordered items
1-5 items: - 5% or price
10-20 items: - 10% or price
add information about the missing field entries to the portalMessage or/and extend to visual field requiered info https://www.goodui.org/#33
Want click and see :)
regarding bda.plone.ticketshop - if you have two tickets with the setting "comment required", where a comment must be filled in (e.g. to name the participants), only the first one can be added. the second ticket cannot be added to the cart, even with a comment given (but no comment in the first ticket viewlet). the status notification appears "Zusatzangabe ist erforderlich"
See:
http://altach.web12.zoplo.com/kultur-freizeit-sport/events/testbuchung-01
You have to be logged-in in order to see the problem.
@jensens can you confirm, this isse also appears on altach.at old?
Does bda.plone.shop
have a customizeable mailing adapter without storing the orders into soups? Just allow to send an email.
When I try to export some orders, if the user default language is different from the chosen site language, the date in the the "to date" inputbox is not recognized and an error is issued. In particular, I've selected english but the user default language is italian: the date picker writes "12/31/2014" in the inputbox, but it is expected 31/12/2014. More, the language for the datepicker is german.
Hello,
I can't install bda.plone.shop in Plone 4.1.6.
After add bda.plone.shop to eggs section of the instance:
$ bin/buildout -Nv
...
We have no distributions for bda.plone.shop that satisfies 'bda.plone.shop'.
Couldn't find index page for 'bda.plone.shop' (maybe misspelled?)
Getting distribution for 'bda.plone.shop'.
While:
Installing instance.
Getting distribution for 'bda.plone.shop'.
Error: Couldn't find a distribution for 'bda.plone.shop'.
Is this normal? Can I install bda.plone.shop in Plone 4.1.6?
Thanks!
Manuel
If a diazo theme is selected, it always wraps the json response with html tags, and it causes a js error when rendering the order overlay. Googling around I have found this possible solution here
http://stackoverflow.com/questions/7512183/diazo-add-unwanted-html-header-into-json-response
and someone with the same (fixed) issue here
https://github.com/zestsoftware/jquery.pyproxy/blob/master/jquery/pyproxy/plone.py (row 78)
If I set IShopCartSettings.summary_total_only
I'd expect the cart-portlet and the @@cart
view to only show the total.
Currently, if you set free_shipping_limit
and flat_shipping_cost
to 0, the shipping costs are still listed.
If we set summary_total_only
to False
net and included vat is listed, as well as shipping costs
portlet:
cart:
If we set summary_total_only
to True
the net and included vat is not listed, but the shipping costs are still listed:
portlet:
cart:
Make fields from https://github.com/bluedynamics/bda.plone.shop/blob/master/src/bda/plone/shop/user/configure.zcml#L22 optional or display only when needed.
Shop admins should be able to define custom fields for the ordering/checkout process of a article.
When ordering an article, customers should/have to fill out the optional/required fields.
Currently we have one custom extra field (cart_item_comment
in bda.plone.cart.init.py). We might need an extra attribute (list of dicts) and a datagridfield with a spec like this: [field_name][label][datatype][required].
in our shop we need to show gross prices. (in case items are sold do companies, vat depends on the companies country)
for a price of EUR 30, i need to calculate the net price first
30/1,1 = 27,27
giving the price with just 27,27 seems sufficient, but results showing the same price for the discounted price (see attachment)
workaround: provide more decimal points: 27,27272727272727272727
possible solution:
add a method to buyable and use it in the page template to decide whether to show the discounted price:
def showDiscount(self):
#compare item_net_original and item_net rounded to 2 decimal points
...
maybe it also makes sense to allow to provide prices as gross prices?
Hi all from bda,
i need to build a custom shop solution which is highly customized. The only thing for us to be reused would be shopping cart behavior (IBuyableBehavior
), and don't want to include all those dependencies from bda.plone.orders
.
Can we exclude them from dependencies and add them as an optional addon including required adapters/views/... using zcml:condition
? That would make bda.plone.shop
the best base to start from.
Currently it's necessary to implement most shop related functionality providing interfaces in order to make things work. In future, things should be more flexible, like so:
Mandatory for buyables:
bda.plone.cart.interfaces.ICartItemDataProvider
Optional for buyables:
bda.plone.cart.interfaces.ICartItemStock
bda.plone.shipping.interfaces.IShippingItem
bda.plone.orders.interfaces.ITrading
bda.plone.shop.interfaces.IBuyablePeriod
Optional on any content:
bda.plone.orders.interfaces.IItemNotificationText
bda.plone.orders.interfaces.IGlobalNotificationText
This is a user story for a feature/enhancement request from one of the b.p.shop merchants we work with.
As a merchant I want to allow for different tax rates within the one shop/site for existing/repeat customers.
They indicated that their preferred solution would be the separate tax rates to be group based and work in a similar way to discounting.
Example use case:
Their customers consist of an established network of dealers and they want to be able to base the differential tax treatment on the geographical location of these dealers:
Does anyone else have a use case for this feature? Any input/thoughts are appreciated.
We have also had some talk regarding adding support for muli-currency support within the one site, however I suspect that is deserving of a separate issue/discussion.
The buyable viewlet produces an error if IBuyablePeriod is not provided by the item that's buyable.
LocationError: (<bda.plone.shop.browser.availability.CartItemAvailability object at 0x113b06f90>, 'purchasable_until')
When you start a online transaction in order to complete the buying process the cart is emptied even if the transaction is aborted and there is no payment issue.
Suppose a user accepts terms and conditions and then starts a transaction.
He then puts a wrong number in the credit card online system and the transaction fails. When he comes back to the cart, it is empty. How can he retrieve his items?
I tried to export some orders and just filled up the "to date" inputbox and pressed "export". It showed up the error:
Traceback (innermost last):
Module ZPublisher.Publish, line 138, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 48, in call_object
Module bda.plone.orders.browser.views, line 1035, in call
Module yafowil.controller, line 18, in init
Module yafowil.base, line 380, in extract
yafowil widget processing info:
- path : exportorders
- blueprints: ['form']
- task : extract
- descr : failed at 'form'
Module yafowil.compound, line 26, in compound_extractor
Module yafowil.compound, line 31, in compound_extractor
Module yafowil.base, line 380, in extract
yafowil widget processing info:
- path : exportorders.to
- blueprints: ['td', 'field', 'plonelabel', 'error', '*from_before_to', 'datetime']
- task : extract
- descr : failed at 'from_before_to'
Module bda.plone.orders.browser.views, line 1056, in from_before_to
TypeError: can't compare datetime.datetime to str
The buyable viewlet produces an error if ICartItemStock is not provided by the item that's buyable.
TypeError: ('Could not adapt', <File at /Plone/buyable_document_d.pdf>, <InterfaceClass bda.plone.cart.interfaces.ICartItemStock>)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.