pcommerce.core
eCommerce for Plone
Project Description
Introduction
PCommerce (Plone commerce) provides a simple shop system which supports:
- product variations
- multiple prices per product to support special prices per user or group (over the sharing tab) and prices only available for a specific time (by using the expiration date)
- multiple pluggable payment methods
- multiple pluggable shipment methods
- multiple taxes by zone
- pre and post tax charges per payment and shipment method
- component based checkout to easily customize the checkout process
- multiple currencies by using Products.CurrencyUtility
Pluggable Payment Methods
A payment plugin consists of a named adapter implementing pcommerce.core.interfaces.IPaymentMethod and named by the id (usually the package name) of the method and one or more views injecting data into the checkout process. The views are registered for the payment method and have to implement pcommerce.core.interfaces.IPaymentView. The name of the view corresponds to the name of the component where the data has to be injected (e.g. payment, confirmation, overview etc.).
As an example of a simple payment plugin pcommerce.payment.invoice is available, which simply collects a billing address and injects it into the confirmation and order email.
Pluggable Shipment Methods
A shipment plugin works much like a payment plugin, the only differences are the interfaces to be implemented by the adapter and the corresponding views, which there are pcommerce.core.interfaces.IShipmentMethod respectively pcommerce.core.interfaces.IShipmentView.
As an example pcommerce.shipment.parcel is available, which collects a delivery address and injects it into the confirmation and order email.
Optional dependencies
Products.CurrencyUtility - to add support for multiple currencies
ImageTag_CorePatch - to add support for dynamic image scaling [http://www.zope.org/Members/bowerymarc/ImageTag_CorePatch/0.3/ImageTag_CorePatch.tgz]
Usage
Getting started
- Install pcommerce.shipment.X and pcommerce.payment.Y
- Via the control panel, go to PCommerce settings and modify:
- Set taxes
- Set "Terms and conditions"-page (required)
- Set "Thank you"-page (optional, see below)
- Add a folder, name it "My Webshop" (or something like that)
- Add a product, give it a price
- Set the folder's containing view to "ShopFolder"
Detailed setup
Thank you-page
The thank you-page may be left empty, in that case customers will be redirected to the root of the site after checkout.
Folder view: "Shop"
The "Shop" folder view shows "hot" and / or "new" products, if present.
Folder view: "ShopFolder"
The "ShopFolder" view lists all products in the folder. Probably, this is what you want for a simple shop.
Additional price
An additional price can be added to a product. you can specify a period where it is valid (Plone's dates). If the additional price X is lower than the default price Y, it will display as "$ X (instead of $ Y)".
Order management
There's a management screen where you can see all orders and their statuses. The link to the Order Management is available under the user actions, or you can type @@manage-orders directly.
The view is protected by the "PCommerce: Manage Orders" permissions.
To do
Customers
Membership integration
Integrate order form with site membership, or don't require membership?
The payment process should be easier for customers, now lots of duplicate data have to be filled in.
Product filtering
Filter on product properties to narrow down products (ajax?)
Vendor
Order management
- batching
- filtering (on status, for example)
- Integrate processing here? The current way is rather flimsy: vendor clicks a
link from an email which takes him to the processOrder page, which redirects
to a blank page displaying only "order processed".
- First step: processing should redirect to @@manage-orders, with a status message.
General
- Layout: currently has own CSS looking like Plone 3. Try styling by adding only classes, so we use Plone's own styling (should work in both 3 and 4).
- Translations: replace bare strings with labels and defaults
Changelog
1.0b11 (2012-02-06)
- Fixed sorting in manage orders view [simu]
- Added possibility to specify a custom email address for pcommerce related emails [simu]
- View action is used in the url for custom products that use AT file and image as a base [kcleong]
- Fixed bug in payment processor, removed undeclared variable
1.0b10 (2012-01-23)
- fixed norwegian translations
- plone 4.1 compatibility by importing cmfcore permissions
- added norwegian translations (thanks to Espen Moe-Nilssen)
1.0b9 (2011-12-13)
- updated translations
- added french translations
- fixed bug in payment failed and canceled view where a ValueError was raised if order.processed_steps was empty
- adjusted CSS for the checkout button of the cart view
- rounding values (by default to 5 cents) is now configurable in the pcommerce_properties (not in the configlet) [huub_bouma]
- plone4.1 compatability fix (small) [huub_bouma]
- translations now use locales folder, and is now plone4 compatible
- removed a pdb statement. [huub_bouma]
- some PEP8 fixes [huub_bouma]
1.0b8 (2011-09-26)
- Improved order overview (adjusted total price to include all taxes and charges)
- Added default_view property to Product and Variation type to prevent breaking of plone's new folder_full_view
- Added spanish translations (Thanks to Manuel Gualda Caballero)
1.0b7 (2011-09-01)
- Added dutch translations (thanks to Kees Hink and Albert Peschar)
- Added order overview (@@manage-orders) [khink]
1.0b6 (2011-01-5)
- re-add PTS utility for plone 3 compatibility
1.0b5 (2010-12-22)
- cleaned up templates (unified xml namespaces)
- fixed css classes of step navigation in checkout
1.0b4 (2010-12-20)
- bugfix in BaseComponent (only show available shipment methods by using the ShipmentRegistry)
- added process method to the order registry
- added new adapter which defines the components which have to be processed in order to make an order definite
- added new zope3 events
- cleaned up translations
1.0b3 (2010-11-29)
- remove assignment in portlets.xml
1.0b2 (2010-11-29)
- fix javascript getprice.js.
1.0b1 (2010-10-20)
plone 4 compatibility
- remove PTS utility
- fix javascripts under query 1.4.2
- browser view need a index attribute instead the call method
- remove actionsicons because is no more supported in plone 4
- fix access of user-order
0.5a3
- CSS and HTML Bugfix in buy viewlet
0.5a2
- Fixed payment and shipmentdata class and added migration method to fix existing orders
- Fixed cartInfo macro
0.5a1
- Added pluggable shipment methods
- Added pre and post tax charges
- Added selection of available shipment methods per product
- Rewrote the whole architecture (Not backward compatible)
- First alpha release containing internal developments
0.3 - Alpha release
- Removed setupHandler which rebuilded the catalog and slowed down (re)install
- Fixed version in metadata.xml
0.2 - Alpha release
- Removed profile dependency to Products.CurrencyUtility
0.1 - Alpha release
- Initial release
Current Release
No stable release available yet.
All Releases
| Version | Released | Description | Compatibility | Status |
|---|---|---|---|---|
| 1.0b9 | several bugfixes (thanks to huub_bouma) plone 4 compatibility (thanks to huub_bouma) addef rench translations More about this release… |
Plone 4.1
Plone 4
Plone 3
|
beta | |
| 1.0b8 | Improved order overview (adjusted total prive to include all taxes and charges), added default_view property to Product and Variation type to prevent breaking of plone's new folder_full_view and added spanish translations (Thanks to Manuel Gualda Caballero) More about this release… |
Plone 4
Plone 3
|
beta | |
| 1.0b7 | Added order overview (thanks to Kees Hink of Goldmund, Wyldebeast & Wunderliebe) Added dutch translations (thanks to Kees Hink of Goldmund, Wyldebeast & Wunderliebe and Albert Peschar of Lapis IT BV) More about this release… |
Plone 4
Plone 3
|
beta | |
| 1.0b5 | cleaned up templates (unified xml namespaces), fixed css classes of step navigation in checkout More about this release… |
Plone 4
Plone 3
|
beta | |
| 1.0b4 | bugfix in BaseComponent (only show available shipment methods by using the ShipmentRegistry), added process method to the order registry, added new adapter which defines the components which have to be processed in order to make an order definite, added new zope3 events and cleaned up translations More about this release… |
Plone 4
Plone 3
|
beta | |
| 1.0b11 | Added possibility to specify a custom email address for pcommerce related emails and fixed some bugs in manage orders view. More about this release… |
Plone 4.1
Plone 4
Plone 3
|
beta | |
| 1.0b10 | plone 4.1 compatibility by importing cmfcore permissions and added norwegian translations (thanks to Espen Moe-Nilssen) More about this release… |
Plone 4.1
Plone 4
Plone 3
|
beta | |
| 1.0b1 | plone 4 compatibility More about this release… |
Plone 4
Plone 3
|
beta | |
| 0.5a3 | CSS and HTML Bugfix in buy viewlet More about this release… |
Plone 3
|
alpha | |
| 0.5a2 | Fixed payment and shipmentdata class and added migration method to fix existing orders and cartInfo macro More about this release… |
Plone 3
|
alpha | |
| 0.5a1 | Major rewrite More about this release… |
Plone 3
|
alpha | |
| 0.4 | — More about this release… |
Plone 3
|
alpha | |
| 0.3 | Removed setupHandler which rebuilded the catalog and slowed down (re)install and fixed version in metadata.xml More about this release… |
Plone 3
|
alpha | |
| 0.2 | Removed profile dependency to Products.CurrencyUtility More about this release… |
Plone 3
|
alpha | |
| 0.1 | Initial release More about this release… |
Plone 3
|
alpha |

