getpaid extensions
2009-01-06
New Recipe Version for GetPaid Released
Not your average Plone cookies or pizzas recipe, this is a recipe for getting paid!
Thanks to Lucie for updating the GetPaid recipe.You can get the new version on pypi:
http://pypi.python.org/pypi/getpaid.recipe.release/1.2 (see this link for readme on using the recipe to make it easy to add ecommerce to your Plone site).
The changes are:
* update the version for: getpaid.core, Products.PloneGetPaid, five.intid, getpaid.googlecheckout, getpaid.paypal and getpaid.discount
* added getpaid.report and getpaid.warehouse to the recipe
2008-10-08
GetPaid talk at Plone Conf - slides available
Fresh off the projector, here are the slides from my GetPaid talk at the Plone Conference 2008 in Washington, DC.
Well, just in time production (thanks to perrito and dunny), I had the various "howto's" I needed to explain how to use GetPaid for the talk.
In the talk, I introduce GetPaid and its core features, and then show how it can be used to satisfy various use cases, both with the out-of-the-box components as well as with some customization.
The audience was a decent size (especially considering I was up against Joel Burton at same time slot!),
http://plonegetpaid.com/updates/files/getpaid-presentation-ploneconf-2008.pdf
2008-09-26
GetPaid Remote sprint, PloneConf, and PloneFormGen news
It has been quiet on GetPaid blog lately, though we have some good news to share. Read on for more on PloneFormGen integration, PloneConference presentation news, and sprint updates.
GetPaid Presentation at Plone Conf 2008
GetPaid will be present at the upcoming Plone Conference session "Ecommerce in Plone: Surveying the state of the art". If you are interested in learning what you can do with GetPaid, how the Sites Using GetPaid were made, and what you can do with GetPaid, please join us on Wednesday, October 8, 2008 (Day 1) at 2:30pm in the Polaris room for this presentation!
Also, don't forget that GetPaid will be present at the Plone Conference Sprint! Sign up to participate here. A schedule of tasks is coming in a week.
PloneFormGen Integration Gets Refactoring
You may have read about the integration between GetPaid and PloneFormGen that happened a couple months ago. Recently, it got some refactoring to make it clearer, thanks to perrito666 (aka Horacio Duran). He also implemented the ability for it to accept multiple "adapters" (in the PFG sense, not the Zope 3 sense). What does that mean? Now you can seamlessly use PloneFormGen with GetPaid and add in your Salesforce.com integration adapters (or whatever other PFG adapters you may have)!
The latest updates are available at the mercurial repo available here: http://code.except.com.ar/hg/hgwebdir.cgi/getpaid.formgen
Remote Sprints Continue to Further GetPaid
Lucie Lejard of Six Feet Up is the Goddess of Remote Sprints in GetPaid throughout the summer. After a vacation in France, she returned to wrap up work on improving ease of integrating GetPaid. She has been on a quest for the holy grail of GetPaid deployments - the recipe.
And behold! With the guidance of Clayton (claytron) she is unleashing the power of the recipe! The recipe grabs the eggs, grabs the vendor products, and makes GetPaid a part of your buildout! It is so close to finished.
2008-09-11
More on GetPaid "credits" products
I lost a bunch of GetPaid blog posts this week :(, so updating this post and republishing the original...sorry for repeat.
Recap
Last week we learned:(12:04:11 AM) dixond: effectively what I've built is a way to turn a Plone site with GetPaid into an advertising channel, where people can pay to publish their content for a fixed time. The basic framework and concept can be extended then to other things also.
Stepping down from dixond's elloquent marketing-speak, the use case is something like this: A user needs some credit to make their content public in some way (ie "for a week" or by virtue of a group membership).
OK, the nuts and bolts:
1) ICreditRegistry for storing the credits (can obviously be in RDBMS but my trivial implementation uses ZODB and BTrees)
2) TickingMachine subscriber that knows about ICreditPublishedContent and applies some rules around send reminder emails, depublish, etc
3) Archetypes schema extender profile for ICreditPublishedContent to track stuff like 'weeks remaining published'
4) Various portlets to allow purchasing credit and using that credit to publish ICreditPublishedContent
5) A few basic content types to represent the credit being purchased
Basically, what I've been building is a way to buy 'non-things' much like the notion of the 'donatable' type and to keep track of them and then use them for controlling access to arbitrary actions later. At present it works great, I'm spending most of my time 'generic-ifying' it so that it can be re-used elsewhere and isn't tied too closely to my specific use-case. Also on the list are other credit types like 'group membership' etc. Once I've generic-ified it enough this should be 'easy'.
Currently, three packages: getpaid.creditpublish, getpaid.creditregistry, getpaid.purchasablecredit
Future extensions could also allow content to be accessed by using credits, if a payment processor is implemented which consumes credits.
What are others saying: "that's a really needed usecase of getpaid - lots of people will be hopping happy :)" -duffyd on #getpaid
New stuff
So, it did land in the repo - in sandbox: https://getpaid.googlecode.com/svn/sandbox/dixond/
Here is the full post dixond made (can be found in mailing list archive also):
I have been busy implementing a slightly different sort of use-case on
top of GetPaid for the last couple of weeks. The scenario is based
around a site where the site owner would like to charge the general
public to run, eg, user-submitted advertisements for a fixed period of
time. Think 'classified ads' or similar. The user is put in complete
control of publishing their content according to a policy (eg, the
first one implemented is for week-by-week publishing). The user pays
for a 'week' of credit, and can then consume those in publishing their
own content for that period of time. Also on the cards is
month-by-month group membership, which could then give them access to
special roles etc for 'all you can eat publishing'.
The overall framework is a relatively big, semi-independent
component/app in its own right, but the payment portion of it is tied
quite closely to GetPaid, and the rest seems to me to tie in nicely to
GetPaid as a whole, so I've attached it in name and spirit to GetPaid
for the moment ;)
There are three pieces that I have uploaded code for currently, all
of them relatively divorced from the nitty-gritty implementation
details and specifics of the use-case that birthed them:
- getpaid.purchasablecredits -- This is just a very simple content type with Title, Description, and Price that acts as a sort of 'meta-product'. Its only purpose is to be a buyable type that you can put any details in that you want.
- getpaid.creditregistry -- This is a very basic registry tool to
store 'credits'. The interface could very easily be implemented with
collective.lead in an RDBMS, but the package contains a simple
implementation of getpaid.creditregistry.interfaces.ICreditRegistry
which uses a Persistent utility in the ZODB and BTrees to store the
purchased credits and allow them to be added/removed.
- getpaid.creditpublish -- This is where all the action is. A number of different pieces all collaborate inside here to make everything hang together:
- Event handler that watches for purchases of content items providing IOneWeekPublishedCredit and increments the counters in the ICreditRegistry utility appropriately
- Portlet providing the mechanism for purchasing 'One Week Publishing' credits. It gets the price and description of this from any content item that implements IBuyableContent - when the portlet is created it asks for the UID of an item to use for Title/Description/Price - the 'representative object'
- Adapter from the IOrder, ILineItem, and 'representative object' to
be able to add credit records into the ICreditRegistry utility
- Portlet to allow users to publish/depublish IOneWeekCreditPublishedContent content items (marked with ZCML).
- schema extender for items marked with IOneWeekCreditPublishedContent to provide some utility fields (weeksLeftPublished, republishedReminderSent)
- Event handler subscribed to Products.TickingMachine.ITickEvent.ITickEvent: this handler provides the de-publish/re-publish logic that drives the time-based publishing. It runs however often you have your ticking machine set, and runs a catalog search for IOneWeekCreditPublishedContent items that have expired or are about to expire and performs various policy logics on them (eg, re-publish for another week if the user has requested that, de-publish if they are out of credit, etc)
The various portlets and subscribers are geared currently to the IOneWeekCreditPublishedContent policy, but there is no reason other policies can not be added and patterned off the existing one. In fact I intend to do this for group membership.
Several dependencies are introduced by getpaid.creditpublish:
- archetypes.schemaextender (self explanatory I hope)
- cornerstone.browser (this is a great utility package for BrowserViews and portlet Renderers to make form/session/cookie handling much nicer and more standard)
- TickingMachine (this one could be made redundant with a persistent utility in the site root and then cron or ClockServer configured to just call the method on the utility, but frankly, that is really just duplicating what TickingMachine already does, and z3 style events are nice)
Known Issues:
- There's no tests yet (that's why it's in the sandbox currently ;)
- Probably there's cruft in various places in the packages as I have spent the last week refactoring it all out to make it more generally usable
- It's complicated and I haven't documented it yet, except in this email :)
- It works. A user can sign up to your site, purchase some credit, create an IOneWeekCreditPublishedContent item, and get a portlet offering to let them publish it for however many weeks they want. The only thing you need to do is add a <five:implements ... /> statement to your ZCML marking your content with getpaid.creditpublish.interfaces.IOneWeekCreditPublishedContent, and tell the Credit Publishing portlet which content item contains the price that should be charged for 'one week of publishing'
- It's egg-ified already (no pypi yet)
- I intend to keep working on it as it is for a live and motivated client
https://getpaid.googlecode.com/svn/sandbox/dixond/
I'd love any feedback, constructive criticism, svn commits ;), and most importantly some sort of consensus as to whether this is something that would be nice to have in the main GetPaid repository as a plugin.
2008-05-29
GetPaid integration discussions: PFG and SF.com
There have been some discussions about integrating GetPaid and other useful tools...like Salesforce.com and PloneFormGen, so I wanted to point out some discussions on those going on currently.
Ain't integration fun!? We hope so... Lots of talk recently about integration GetPaid with PloneFormGen (for flexible forms leading into transactions) and Salesforce.com (to write transaction data into the CRM). These have long been areas of interest in the community, and I wanted to point out a couple threads of conversation going on around these (yes, I have been instigating some discussion again...).
PloneFormGen + GetPaid = single page checkout
At least, we hope! Ever since the first release of getpaid, we realized that a flexible donation/payment form making option was desired for GetPaid. We know that everyone wants their donation form slightly different, so an option like
PloneFormGen, which also has wide adoption in the community, seemed like an obvious choice.
One/Northwest and others have worked on an adapter for mapping PFG data into salesfoce.com, which seems like a great model for this use case. This leverages the flexible form making and integrates it into another system for storing/manipulating what was collected in the form - brilliant! For more on
this, see this blog post.
The concept would be similar for Getpaid integration with PFG: map fields from a form into GetPaid cart and/or checkout process. Some potential use cases:
- Make a single page checkout (so you enter all on one page and that generates the order directly)
- Ordering multiple items from a single page
See an example of both of these at: http://tinyurl.com/53yr8o
the wiki: http://code.google.com/p/getpaid/wiki/PloneFormGenAdapter (same
page referenced by the checkout refactoring discussion...).
See and contribute to thread here.
Salesforce + GetPaid = tracking those customers
Another case with a lot of interest. I started some discussion on the Plone Salesforce Integration list (and then didn't realize I was not getting emails from the list...). In this case, a nonprofit would want to record orders into the CRM Salesforce.comSee and contribute to thread here
And one day...maybe there will be a GetPaid + PloneFormGen + Salesforce.com integration! Oh the bliss!!
We would appreciate your ideas, feedback, questions, and offers to contribute :)
2007-11-21
What Next for GetPaid?
If often seems that "the future is upon us" with GetPaid. People get excited about its features and innovate it to the next level, even when we are still working on the core!
People have really been grabbing GetPaid and running with it lately...which is awesome, inspiring on the one hand,
and yet frustrating since we have issues left for the release on the other :)
Part of what this has motivated, though, is organization for upcoming community collaboration around GetPaid. A few things are already officially moving like:
- PloneFormGen adpater! We all love PFG and SteveM :) Now GetPaid wants to play with that too...really this is what we have chosen for the flexible, donation handling route. See more here. Already several folks have expressed interest in this, including One/Northwest, who made the outstanding Salesforce.com connector / PFG adapter.
- Advanced store features: building on the GetPaid core feature set, many folks are looking to extend its features as an online store. Liam has stepped up and drafted a proposal for that (check it out and get involved).
- Salesforce.com integration (mentioned by sixfeetup, onenw, ifpeople, kapil)
- event/conference registration (also mentioned by many)
- membership management (mentioned by a few)
I am still trying to get a handle on what others are doing with this crazyawesome system (/me tips hat to Kapil again), and try to continue supporting people connecting around collaborating to see new potential realized. If you are a dreamer in this realm, please share your ideas with us on #getpaid or our mailing list! This is really a brewing time for all the ideas and possibilities for the future of GetPaid!
And if that is just all too chaotic and fluffy for you, feel free to tackle an issue :)
2007-11-20
GetPaid Additions: Discounts! Translation, bug fixes, documentation
GetPaid is excited that the community is leveraging some new contributions in terms of functionality (discounts!), translations (French!), and documentation. Read on for more info...
<cheerleader>Whadda we need? Deployments! Whendaweneed 'em? Now! </cheerleader>
The great thing about GetPaid reaching a stable state is that it is getting used! And that is creating lots of great effects:
- Bugs are getting found and fixed (thanks to Javimansilla, Lucielejard!)
- Extensions of the product are being created to give GetPaid new functionality
- Improvements are being integrated that make the core better.
This week we had great news about some of this additions, including:
- News of a French translation in the works by Lucie Lejard!
- The creation of a discounts extension by Lucie at Six Feet Up. Six Feet Up announced the project this week and the code is already in the public repository, though still in the works. Eventually it will be packaged as an extension for GetPaid.
- The email notifications system got improved once folks started finding out about using (and overriding it). Now it is easier to use your own templates for email notifications.
- New payment processor: in the works is integration with Paymentech, the Chase bank processor. Look out for getpaid.paymentech soon too...
- Additions of new documentation to the GetPaid documentation on plone.org
