Package: niteoweb.click2sell
A Plone add-on that integratesClick2Selldigital
products retailer system withPloneto enable paid
memberships on your site.Source code @ GitHubReleases @ PyPIDocumentation @ ReadTheDocsContinuous Integration @ Travis-CIHow it worksVisitor comes toyoursite.com/order(or similar) and clicksOrderlink.Visitor is sent to Click2Sell’s order form (onhttp://click2sell.eu),
where he enters his personal information and performs payment.Click2sell calls-back a special view on your plone site (/@@click2sell),
which reads POST data from Click2Sell, verifies it against yourSecret Keyand creates a new member.The following information is stored in member data for later use:product_idClick2Sell’sProduct IDof the purchased item.product_nameClick2Sell’sProduct Nameof the purchased item.affiliateAffiliate who referred the buyer.last_purchase_idClick2Sell’sReceipt IDof the last purchase. This field gets updated
on every recurring payment.last_purchase_timestampExact timestamp of the last purchase. This field gets updated on every
recurring payment.Upon creating a new member, Plone sends an email with login password.AnIMemberCreateEventis emitted upon creating a new member.The new member can now login and use the site.It is possible to create aproduct_idtogroup_namemapping in
Plone Control Panel. This means that if a member purchased a product which
is listed in this mapping, the member will also be added to a group mapped
to this product.NoteIf a member already exists in Plone, then the@@click2sellview simply
updateslast_purchase_idandlast_purchase_timestampmember fields.
The member will also be added to the new product group, but also kept in
the old.DemoYou can see this product in action atBigContentSearch.InstallationTo installniteoweb.click2sellyou simply addniteoweb.click2sellto the list of eggs in your buildout, run
buildout and restart Plone. Then, installniteoweb.click2sellusing the
Add-ons control panel.ConfigurationClick2SellGo toClick2Sell.euand useFor Merchant->Add Productto add a newProduct.Then click on your new Product and selectAPI Settings. ForURL to notifysethttp://yoursite.com/@@click2selland also choose aSecret Key.
CheckEnable/Disable remote server's notificationto enable server
notifications and consequently member auto-registering.PloneGo toSite Setup->click2sellcontrol panel form and configure
theSecret Keyfield by pasting in theSecret Keyyou defined above.You can also configure theproduct_idtogroup_namemapping. This comes
in effect when member purchases a product which is listed in this mapping, the
member will also be added to a group mapped to this product.For example, imagine you have the following in your mapping:1|basic-members
2|premium-membersMembers purchasing the product with id1will be added to thebasic-membersgroup, whose purchasing2will be added to thepremium-membersgroup. For others, nothing will be done.When switching products, an updated member will be added to new product
group, but also kept in the old group. No information is removed/deleted.Test itYou are now ready to do a test buy! Go back toMy Productsand clickTest BUY. Before you finish the transaction, you need to set up your Plone
site to receive Click2Sell server notifications.Confirm by logging-in toClick2Selland checking to
see if there were any purchases. Also check if your receive an email with
username and password for accessing your site and try to login with them.Known issuesThe following known issues exist:If members stop paying for monthly or yearly subscriptions, you have to
manually delete them from your Plone site.The same as above goes for any chargebacks or refunds. You have to manage
them manually.Changelog0.4.5 (2012-10-02)Added support for UTF-8 characters innameandsurname.
[matejc]Added automatically generated source code documentation.
[zupo]0.4.4 (2012-06-03)Previous release was swallowing errors. Re-thinked how handling and displaying
errors should be done and rewrote most of it. Also added more tests to assert
error messages in response bodies and in the Zope log.
[zupo]0.4.3 (2012-06-01)More verbose POST error handling.
[zupo]Revert making click2sell key non-required so we can edit the mapping without
always supplying the key.
[zupo]0.4.2 (2012-04-29)Madeclick2sell keynon-required so we can modify the product_id to
group_name mapping without always supplying theclick2sell key.
[zupo]Even more work on groups edge-cases.
[zupo]0.4.1 (2012-04-22)More tests for groups edge-cases.
[zupo]Updating package with latest best practices.
[zupo]0.4 (2012-04-21)Site admins can now map C2Sproduct_idto groups. This causes new members
to be added to the group theirproduct_idmaps to.
[zupo]Store configuration inplone.app.registryrather than in a local utility.
[zupo]0.3 (2012-01-28)Updated the package with latest best practices, added support forplone.app.testing, moved to GitHub.
[zupo]0.2.2 (2011-08-16)Support for Plone 4.1.
[zupo]0.2.1 (2010-10-06)Fixed updating an already existing member.
[zupo]Added Uninstall profile.
[zupo]0.2 (2010-10-06)Polishing, adding tests.
[zupo]0.1 (2010-09-30)Initial release.
[zupo]License (3-clause BSD)Copyright (c) 2012, NiteoWeb Ltd.
All rights reserved.Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.Neither the name of NiteoWeb Ltd. nor the names of its contributors may
be used to endorse or promote products derived from this software
without specific prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL NITEOWEB LTD. BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.