A web shop solution for Plone
Project description
Introduction
============
`ftw.shop` is a general purpose web shop product for Plone.
It features item variations, an extensible checkout wizard, pluggable
payment processors and optional SQLAlchemy storage.
`ftw.shop` supports Plone 4.x.
Features
========
- Basic shop functionality: Create a shop with categories and items, provide
a shopping cart and checkout process guided by a wizard.
- Manage Item variations (flavors).
- Order Management
- Suppliers: Associate particular items or categories with a supplier that will
be notified by email when those items are purchased.
- Pluggable payment processors
- Extensible checkout wizard: Add fields or whole steps to the checkout process.
- Flexible mail templates for order confirmations, owner and supplier
notifications.
Installation
============
- Add ``ftw.shop`` to your buildout (or as dependency to a custom egg):
::
[buildout]
parts =
instance
...
[instance]
...
eggs +=
Plone
ftw.shop
- Install default profile in portal_setup.
Configuration
============
When installing ``ftw.shop``, the Plone site is automatically configured as
shop root (``IShopRoot`` interface).
If you'd like another container to be the shop root you can change this by
removing the ``IShopRoot`` from the Plone site and let another container
provide it.
You might also want to add a shop cart portlet.
After that, most configuration can be done through the "Shop configuration"
control panel.
Links
=====
- Github project repository: https://github.com/4teamwork/ftw.shop
- Issue tracker: https://github.com/4teamwork/ftw.shop/issues
- Continuous integration: https://jenkins.4teamwork.ch/search?q=ftw.shop
Licensing
=========
This package is released under GPL Version 2.
Copyright
=========
This package is copyright by `4teamwork <http://www.4teamwork.ch/>`_.
``ftw.shop`` is licensed under GNU General Public License, version 2.
.. image:: https://cruel-carlota.pagodabox.com/47108caebd3b96f110cd90b5044b34d6
:alt: githalytics.com
:target: http://githalytics.com/4teamwork/ftw.shop
Changelog
=========
1.3.1 (2014-02-19)
------------------
- JS: Use POST method and explicitely disable caching for addtocart_ajax requests.
[lgraf]
- Javascript: replace jq with jQuery / $ for Plone 4.3 compatibility.
[jone]
- Make phone number in customer confirmation mail configurable and optional.
[jone]
- Automatically set the shop root on the portal upon new installation. #15
[jone]
- Update German translations.
[jone]
- Make ShopCategory LinguaPlone aware.
[buchi]
- Make sure currency is included everywhere where a price is displayed.
[lgraf]
1.3 (2013-09-05)
----------------
- Added image field to default ShopItem content type.
[lgraf]
- Fixed content-type header of ajax response when adding an item to the cart.
[buchi]
1.2.1 (2013-05-30)
------------------
- Remove unused permission "ftw.shop: Add Order".
[jone]
1.2 (2013-05-28)
----------------
- Fixed evaluation of shopping cart portlet available() condition.
[lgraf]
- Fixed attribute selector syntax in shop.js.
[lgraf]
- Check enabled payment processors for availability before offering them.
[lgraf]
- Moved shopping cart functionality into its own adapter (IShoppingCart).
[lgraf]
- Dropped 'newsletter' field from checkout form.
[lgraf]
- Lawgiver support: map permissions.
[jone]
- Suppliers: fix address content types / formatting.
[jone]
- Shop item: use text/x-html-safe output format and only allow text/html input.
[jone]
- Plone 4.3 compatibility: fix imports.
[jone]
- Use DEFAULT_VAT_RATES in IShopConfiguration's vat_rates.
[mathias.leimgruber]
- Display the shopitems image if the item has a image field.
[Julian Infanger]
- Fix category view so that it filters "None" references.
[jone]
- Allow multiple email addresses for supplier seperated by comma.
[Julian Infanger]
- Made sure supplier_mail template gets needed options
[lgraf]
- Improved styling for PaymentProcessor widget a bit
[lgraf]
- Made sure Order and CartItems classes inherit from Persistent
[lgraf]
- Properly setting default values when prefilling forms.
This fixes a bug where people see other users data in checkout forms.
[lgraf]
- CSS fix for title field in checkout wizard
[lgraf]
- Added some Plone 3 compatibility fixes
[lgraf]
- Added test dependency on pyquery
[lgraf]
- Fixed invalid HTML in payment processor widget
[lgraf]
- Assigned Add Order permission to Manager role in rolemap.xml
[lgraf]
- Fixed bug where supplier and status filters weren't initialized in OrderManager view
[lgraf]
- Added column title for vat_amount when exporting CSV
[lgraf]
- Fixed bug in calculation of VAT amount
[lgraf]
- Improved display of VAT (MwSt)
[lgraf]
- Changed default for IShippingAddress.used to False
[lgraf]
- Made order_review template not require the ``newsletter`` field
[lgraf]
- Using interfaces instead of portal_type to determine if context has shop items
[lgraf]
- Fixed type of default values for IShopConfiguration.var_rates
[lgraf]
- Listing items in ShopCategory based on IShopItem interface, not portal_type
[lgraf]
- Implemented calculation and display (in order_review) of VAT (MwSt)
[lgraf]
- Added fields and settings for VAT (MwSt) support
[lgraf]
- Implemented filtering by status in order_manager
[lgraf]
- Implemented UI for changing status or deleting several orders at once
[lgraf]
- Improved UI for cancelling orders in order_manager
[lgraf]
- Implemented pluggable status sets and option to manually change status of orders
[lgraf]
- Added option to display cart portlet only if there are items in the current folder / context
[lgraf]
1.1.2 (2012-09-27)
------------------
- Allow multiple email addresses for supplier seperated by comma.
[Julian Infanger]
1.1.1 (2012-09-24)
------------------
- Do not raise an AssertionError if the objects type is not ShopItem.
[Julian Infanger]
1.1 (2011-12-27)
----------------
- Made ShopItem inherit from ATCTContent instead of ATDocument.
- Avoid creating a session if there doesn't exist one yet.
Accessing REQUEST.SESSION causes a _ZopeID cookie to be created, therefore
we use the browser_id_manager to check first if a session already exists.
- Removed language specific subjects for order mails from settings and handle
translation with i18n.
1.0.1 (2011-03-28)
------------------
- Cleaned up translations (fuzzy entries)
[lgraf]
- Avoid creating a session if there doesn't exist one yet.
Accessing REQUEST.SESSION causes a _ZopeID cookie to be created, therefore
we use the browser_id_manager to check first if a session already exists.
[lgraf]
- Moved translations in plone domain from locales to i18n folder for Plone3 bbb
[lgraf]
- Made date parsing in order_manager more robust
[lgraf]
- Included jquery-ui-i18n.js and i18ned datepicker widget
[lgraf]
- Fixed manage_categories view for ShopRoot == portal
[lgraf]
- Eliminated unnecessary order ID column in order_manager view
[lgraf]
- Displaying item title as tooltip in order_manager
[lgraf]
- Minor styling fix
[lgraf]
- Fixed typo - sku_code -> skucode
[lgraf]
- Store sku_code in cart item instead of the key.
[lgraf]
- Removed Image and File from allowed_content_types for ShopCategory and ShopItems
[lgraf]
- Added show_price attribute to CartItems model
[lgraf]
- Plone 3 compatibility fixes
(the builtin `any` and datetime.strptime don't exist yet in Python 2.4)
[lgraf]
- Removed assertion that doesn't hold true any more
item.portal_type == 'ShopItem' - if SimpleLayout support is enabled, there's also
a type called 'ShopItemBlock'
[lgraf]
- Minor JS fix: Compatibility with jQuery 1.3
jq.delay() doesn't exist yet in 1.3, so implement the same behavior using .animate()
[lgraf]
- Merged branch 'plone3bbb'
(Register eventhandlers based on a zcml:condition="have plone-4")
[lgraf]
1.0 (2011-02-25)
----------------
- Initial release.
============
`ftw.shop` is a general purpose web shop product for Plone.
It features item variations, an extensible checkout wizard, pluggable
payment processors and optional SQLAlchemy storage.
`ftw.shop` supports Plone 4.x.
Features
========
- Basic shop functionality: Create a shop with categories and items, provide
a shopping cart and checkout process guided by a wizard.
- Manage Item variations (flavors).
- Order Management
- Suppliers: Associate particular items or categories with a supplier that will
be notified by email when those items are purchased.
- Pluggable payment processors
- Extensible checkout wizard: Add fields or whole steps to the checkout process.
- Flexible mail templates for order confirmations, owner and supplier
notifications.
Installation
============
- Add ``ftw.shop`` to your buildout (or as dependency to a custom egg):
::
[buildout]
parts =
instance
...
[instance]
...
eggs +=
Plone
ftw.shop
- Install default profile in portal_setup.
Configuration
============
When installing ``ftw.shop``, the Plone site is automatically configured as
shop root (``IShopRoot`` interface).
If you'd like another container to be the shop root you can change this by
removing the ``IShopRoot`` from the Plone site and let another container
provide it.
You might also want to add a shop cart portlet.
After that, most configuration can be done through the "Shop configuration"
control panel.
Links
=====
- Github project repository: https://github.com/4teamwork/ftw.shop
- Issue tracker: https://github.com/4teamwork/ftw.shop/issues
- Continuous integration: https://jenkins.4teamwork.ch/search?q=ftw.shop
Licensing
=========
This package is released under GPL Version 2.
Copyright
=========
This package is copyright by `4teamwork <http://www.4teamwork.ch/>`_.
``ftw.shop`` is licensed under GNU General Public License, version 2.
.. image:: https://cruel-carlota.pagodabox.com/47108caebd3b96f110cd90b5044b34d6
:alt: githalytics.com
:target: http://githalytics.com/4teamwork/ftw.shop
Changelog
=========
1.3.1 (2014-02-19)
------------------
- JS: Use POST method and explicitely disable caching for addtocart_ajax requests.
[lgraf]
- Javascript: replace jq with jQuery / $ for Plone 4.3 compatibility.
[jone]
- Make phone number in customer confirmation mail configurable and optional.
[jone]
- Automatically set the shop root on the portal upon new installation. #15
[jone]
- Update German translations.
[jone]
- Make ShopCategory LinguaPlone aware.
[buchi]
- Make sure currency is included everywhere where a price is displayed.
[lgraf]
1.3 (2013-09-05)
----------------
- Added image field to default ShopItem content type.
[lgraf]
- Fixed content-type header of ajax response when adding an item to the cart.
[buchi]
1.2.1 (2013-05-30)
------------------
- Remove unused permission "ftw.shop: Add Order".
[jone]
1.2 (2013-05-28)
----------------
- Fixed evaluation of shopping cart portlet available() condition.
[lgraf]
- Fixed attribute selector syntax in shop.js.
[lgraf]
- Check enabled payment processors for availability before offering them.
[lgraf]
- Moved shopping cart functionality into its own adapter (IShoppingCart).
[lgraf]
- Dropped 'newsletter' field from checkout form.
[lgraf]
- Lawgiver support: map permissions.
[jone]
- Suppliers: fix address content types / formatting.
[jone]
- Shop item: use text/x-html-safe output format and only allow text/html input.
[jone]
- Plone 4.3 compatibility: fix imports.
[jone]
- Use DEFAULT_VAT_RATES in IShopConfiguration's vat_rates.
[mathias.leimgruber]
- Display the shopitems image if the item has a image field.
[Julian Infanger]
- Fix category view so that it filters "None" references.
[jone]
- Allow multiple email addresses for supplier seperated by comma.
[Julian Infanger]
- Made sure supplier_mail template gets needed options
[lgraf]
- Improved styling for PaymentProcessor widget a bit
[lgraf]
- Made sure Order and CartItems classes inherit from Persistent
[lgraf]
- Properly setting default values when prefilling forms.
This fixes a bug where people see other users data in checkout forms.
[lgraf]
- CSS fix for title field in checkout wizard
[lgraf]
- Added some Plone 3 compatibility fixes
[lgraf]
- Added test dependency on pyquery
[lgraf]
- Fixed invalid HTML in payment processor widget
[lgraf]
- Assigned Add Order permission to Manager role in rolemap.xml
[lgraf]
- Fixed bug where supplier and status filters weren't initialized in OrderManager view
[lgraf]
- Added column title for vat_amount when exporting CSV
[lgraf]
- Fixed bug in calculation of VAT amount
[lgraf]
- Improved display of VAT (MwSt)
[lgraf]
- Changed default for IShippingAddress.used to False
[lgraf]
- Made order_review template not require the ``newsletter`` field
[lgraf]
- Using interfaces instead of portal_type to determine if context has shop items
[lgraf]
- Fixed type of default values for IShopConfiguration.var_rates
[lgraf]
- Listing items in ShopCategory based on IShopItem interface, not portal_type
[lgraf]
- Implemented calculation and display (in order_review) of VAT (MwSt)
[lgraf]
- Added fields and settings for VAT (MwSt) support
[lgraf]
- Implemented filtering by status in order_manager
[lgraf]
- Implemented UI for changing status or deleting several orders at once
[lgraf]
- Improved UI for cancelling orders in order_manager
[lgraf]
- Implemented pluggable status sets and option to manually change status of orders
[lgraf]
- Added option to display cart portlet only if there are items in the current folder / context
[lgraf]
1.1.2 (2012-09-27)
------------------
- Allow multiple email addresses for supplier seperated by comma.
[Julian Infanger]
1.1.1 (2012-09-24)
------------------
- Do not raise an AssertionError if the objects type is not ShopItem.
[Julian Infanger]
1.1 (2011-12-27)
----------------
- Made ShopItem inherit from ATCTContent instead of ATDocument.
- Avoid creating a session if there doesn't exist one yet.
Accessing REQUEST.SESSION causes a _ZopeID cookie to be created, therefore
we use the browser_id_manager to check first if a session already exists.
- Removed language specific subjects for order mails from settings and handle
translation with i18n.
1.0.1 (2011-03-28)
------------------
- Cleaned up translations (fuzzy entries)
[lgraf]
- Avoid creating a session if there doesn't exist one yet.
Accessing REQUEST.SESSION causes a _ZopeID cookie to be created, therefore
we use the browser_id_manager to check first if a session already exists.
[lgraf]
- Moved translations in plone domain from locales to i18n folder for Plone3 bbb
[lgraf]
- Made date parsing in order_manager more robust
[lgraf]
- Included jquery-ui-i18n.js and i18ned datepicker widget
[lgraf]
- Fixed manage_categories view for ShopRoot == portal
[lgraf]
- Eliminated unnecessary order ID column in order_manager view
[lgraf]
- Displaying item title as tooltip in order_manager
[lgraf]
- Minor styling fix
[lgraf]
- Fixed typo - sku_code -> skucode
[lgraf]
- Store sku_code in cart item instead of the key.
[lgraf]
- Removed Image and File from allowed_content_types for ShopCategory and ShopItems
[lgraf]
- Added show_price attribute to CartItems model
[lgraf]
- Plone 3 compatibility fixes
(the builtin `any` and datetime.strptime don't exist yet in Python 2.4)
[lgraf]
- Removed assertion that doesn't hold true any more
item.portal_type == 'ShopItem' - if SimpleLayout support is enabled, there's also
a type called 'ShopItemBlock'
[lgraf]
- Minor JS fix: Compatibility with jQuery 1.3
jq.delay() doesn't exist yet in 1.3, so implement the same behavior using .animate()
[lgraf]
- Merged branch 'plone3bbb'
(Register eventhandlers based on a zcml:condition="have plone-4")
[lgraf]
1.0 (2011-02-25)
----------------
- Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ftw.shop-1.3.1.tar.gz
(140.2 kB
view hashes)