bluedynamics / bda.plone.shop

Generic Shop Solution for Plone
Other
20 stars 15 forks source link

base urls on the inavigationroot instead of context #14

Open frisi opened 10 years ago

frisi commented 10 years ago

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?

rnixx commented 10 years ago

the idea of having all these links relative is in view of multi client ability. I agree that anchoring this to an interface like INavigationRoot might be a better choice, but then it would be nice if we had our own marker for this, i.e. IShoppingRoot (which might then be applied to an IClient or such)

frisi commented 10 years ago

multi client support would also mean to have settings on client level, shop administration (soups, order-management) on client level etc. i don't see this getting reality soon, do you?

i'd suggest use the infrastructure already available as long as there are no additional efforts towards multi-client support. so stick to INavigationRoot and use @@plone/navigationRootUrl instead of defining yet another interface and utiitly method (getShoppingRootUrl)

rnixx commented 10 years ago

yes, multi client support will partly be implemented soon. the soups do not need to be per client, but @@orders, @@ordersexport and some settings do. if you want to fix the url's right now you can override ICartDataProvider.

rnixx commented 10 years ago

The shop now supports different vendors, which can be used in different manners. Either some might define vendor areas and the instance acts as one shop, or each vendor is a lineage subsite and acts as separate shop. Orders view is right now bound to plone root, remaining views are not. I think now that we should bind cart and checkout to INavigationRoot and orders and export orders to IVendor and IPloneSiteRoot. @frisi @agitator @thet @jensens - opinions?