Skip to main content

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 the ``ftw.shop:default`` profile in ``portal_setup``.

Configuration
============

- Create your shop structure by adding Shop Categories
- Add Shop Items to your Shop Categories
- Add a Shopping Cart Portlet (to your Plone site root or Shop Categories)

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
=========

2.0.1 (2014-08-12)
------------------

- Fix payment processor lookup in checkout wizard.
[mathias.leimgruber]

- Fix adapter lookups in vocabularies.
[mathias.leimgruber]

- Fix get suppliers on shopitems with variations.
[mathias.leimgruber]

- Implement getting supplier recursively.
[mathias.leimgruber]


2.0 (2014-07-04)
----------------

- Updated README / Installation instructions.
[lgraf]

- BugFix: It's possible to have users wihtout a fullname: For example
SystemUsers / ldap users.
[mathias.leimgruber]

- BugFix: If the fullname of a logged in user had umlauts the form was broken.
:-)
[mathias.leimgruber]

- Eliminate all uses of the IShopRoot interface.
Instead we use the navigation root to register views that are supposed to be shop-global.
This will make ftw.shop work with subsites that are supposed to have "their own shop".
[lgraf]

- Rebuild logic behind manage_categories view:
Don't search for categories to list downwards from shop root, but instead upwards
from current context. This will only return contiguous shop category structures,
and should therefore work nicely for setups with decentralized shop structures.
[lgraf]


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.

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-2.0.1.zip (200.5 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page