Hi,
Fixed the issue I was having with the IBuyableContent adapter not
working. The solve is as follows (for posterity):
--- configure.zcml (revision 484)
+++ configure.zcml (working copy)
-
- <subscriber
- for=".interfaces.ISubscribemember
- zope.app.container.interfaces.IObjectMovedEvent"
- handler=".events.makeBuyable"
- />
+
+ <five:implements
+ class=".content.subscribemember.Subscribemember"
+ interface="Products.PloneGetPaid.interfaces.IBuyableMarker" />
Thanks dunny!
-Tim
On Thu, 2009-05-07 at 08:48 +1200, Tim Knapp wrote:
> Hello again,
>
> Thanks everyone for your tips.
>
> I've tried Rob's suggestion with no success and also my existing method
> which *did* work under Plone 2.5. I'll post the relevant code up here in
> hopes that someone can see something I've obviously done wrong (as
> previously mentioned Subscribemember is a remember-based content type).
> <code>
> configure.zcml
> <subscriber
> for=".interfaces.ISubscribemember
> Products.Archetypes.interfaces.IObjectInitializedEvent"
> handler=".subscribers.makeBuyable"
> />
> <adapter
> for=".interfaces.ISubscribemember"
> provides="getpaid.core.interfaces.IBuyableContent"
> factory=".adapters.BuyableContentAdapter"
> />
>
>
> adapters.py
> class BuyableContentAdapter(object):
>
> def __init__(self, context):
> self.context = context
> self.price = 1.0
> self.product_code = 'code'
> self.made_payable_by = 'test'
>
> subscribers.py
> from zope.interface import alsoProvides
> from emerge.isiaqmember.interfaces import ISubscribemember
> from Products.PloneGetPaid.interfaces import IBuyableMarker
>
> def makeBuyable(object, event):
> """Adapt the remember objects to the PGP Buyable interface
> """
>
> if not object.isTemporary():
> # Slap on the interfaces
> alsoProvides(object, IBuyableMarker)
> # Update the catalog to ensure it's consistent with
> # the new interface we've just assigned
> object.reindexObject(idxs=['object_provides'])
> </code>
>
> Thanks in advance,
> Tim
>
> On Wed, 2009-05-06 at 15:40 +0200, Rob M wrote:
> > Hello.
> >
> > This is actually a fairly simple problem to solve. I'm doing something
> > similar for a client.
> >
> > In my case, I've taken signable event and am making it payable on
> > creation thus:
> >
> > #
> >
> > security.declarePrivate(permissions.EDIT_SIGNUP_PERMISSION,"makePayableOnCreation")
> > def makePayableOnCreation(self,obj,tot):
> > #self.total = tot
> > mark(obj, interfaces.IBuyableMarker)
> > coreInterfaces.IBuyableContent(obj).setProperty('price', tot)
> > coreInterfaces.IBuyableContent(obj).setProperty('product_code',
> > obj.ID)
> > #
> >
> > I seem to remember getting the bare bones idea from the link pasted
> > below by darryl as well.
> >
> > Usable for member creation?
> > I had to do this as the event module has multiple payment
> > selections and so we needed to be able to
> > add the signable event signup object to the cart immediately after
> > creation in an anonymous context.
> >
> > One problem I do have with this approach though is that that the
> > 'Payable' tab is visible to
> > anonymous users because of the use of run_as_manager from within
> > signable event.
> >
> > Sadly, the project I was working on seems to be stalled at the moment
> > so I'm not sure if I'll be going
> > any further with this, but the eventual plan was to adopt a similar
> > approach to member signups.
> >
> > Hope that helps some..
> >
> > Rob M
> >
> > Darryl Dixon wrote:
> > > +1 - this is very close to the method I use in
> > > getpaid.purchaseablecredits to move content items into the
> > > 'published' state on purchase.
> > >
> > >
> > > regards,
> > > Darryl Dixon
> > > Winterhouse Consulting Ltd
> > > http://www.winterhouseconsulting.com
> > >
> > > On Wed, May 6, 2009 at 3:23 PM, Christopher Johnson
> > > <[email protected]> wrote:
> > > Hey Tim,
> > >
> > > Here's an idea...
> > >
> > > Since remember is makes members workflow-able, perhaps you
> > > can leverage the payment-to-trigger-workflow-change process
> > > outlined here:
> > >
> > > http://plone.org/products/getpaid/documentation/how-to/how-to-tie-actions-to-payments
> > > (thought this used to be in Products.PloneGetPaid but can't seem to find
> > > it now...)
> > >
> > > Basic idea would be:
> > > - let user create member object, in a pending state (and
> > > make it automatically buyable)
> > > - give user a link in the pending member object to submit
> > > the object for payment
> > > - upon successful payment, change workflow state on member
> > > object to make it "real" member
> > >
> > > Hope that is helpful. Please keep us posted on how it goes!!
> > >
> > > -c
> > >
> > >
> > > On Tue, May 5, 2009 at 3:45 PM, Tim Knapp
> > > <[email protected]> wrote:
> > >
> > > Hi guys,
> > >
> > > I'm currently (again) working on implementing a
> > > Remember-based solution
> > > for subscribing members to a Plone site. I have got
> > > this working as a
> > > proof-of-concept in a Plone 2.5 site but the
> > > subscription process is a
> > > little clumsy. IOW the user registers then goes to
> > > their user object in
> > > 'portal_memberdata' and then clicks on the 'Add to
> > > cart' button, then
> > > the 'Checkout' button and is then redirected offsite
> > > to the payment
> > > processors website (in this case PayPal) where they
> > > pay and are
> > > redirected back as a 'paid up' user.
> > >
> > > What I'd like to implement instead is the following:
> > > 1. Visitor to website clicks on the 'register'
> > > link.
> > > 2. Visitor is presented with a registration form
> > > where they fill in
> > > their details and select what 'membership
> > > level' they require
> > > (i.e. Individual, Student, Corporate, etc)
> > > and whether they
> > > wanna subscribe for multiple years.
> > > 3. Visitor is then redirected to PayPal site
> > > where they pay.
> > > 4. They're then redirected back to the Plone
> > > site as a 'paid up'
> > > user with access to the various sections of
> > > the site that their
> > > membership level allows.
> > >
> > > How could I do this in PloneGetPaid? I'm assuming
> > > I'd need to use some
> > > kind of event subscriber, which grabs the user data
> > > and redirects them
> > > offsite (I want to use PayPal)? Any tips
> > > appreciated.
> > >
> > > Thanks in advance,
> > > Tim
> > >
> > >
> > >
> > >
> > >
> > >
> > > --
> > >
> > > Cofounder and CEO
> > > ifPeople - Innovation for People
> > > www.ifpeople.net
> > > t: 678-608-3408
> > > 130 Boulevard NE, #6
> > > Atlanta, GA 30312
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> > --
> > People are beginning to notice you. Try dressing before you leave the
> > house.
> >
> > >
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"getpaid-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/getpaid-dev?hl=en
-~----------~----~----~----~------~----~------~--~---