Hi Tim
Just saw this now, Forgot to mention the subscriber ... sorry!
Tim Knapp wrote:
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=""
- 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=""
handler=".subscribers.makeBuyable"
/>
<adapter
for=""
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.
--
Fame is a vapor; popularity an accident; the only earthly certainty is
oblivion.
-- Mark Twain
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
|