integrating plone with e-commerce and relationship management: a case study in plone, getpaid and...
DESCRIPTION
David Glick's Plone Conference 2009 talk showing tools for accepting payments via PloneGetPaid and recording the transactions in Salesforce.comTRANSCRIPT
![Page 1: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/1.jpg)
Integrating Plonewith E-Commerce
and Relationship Management
A Case Study in Integrating PloneGetPaid and Salesforce.com
David Glick
![Page 2: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/2.jpg)
Groundwire uses the power of technology to connect people, organizations, and communities working to build a sustainable society.
![Page 3: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/3.jpg)
Idaho Conservation League
http://www.fickr.com/photos/sebastian_bergmann/2946960668/
![Page 4: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/4.jpg)
Idaho Conservation League
![Page 5: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/5.jpg)
Theoryof Change
![Page 6: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/6.jpg)
Goal: Tools to help engage
• E-mail newsletter• Online donations• Membership signup• Paid event registration
![Page 7: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/7.jpg)
Tools
http://www.fickr.com/photos/lachlanhardy/227715761/
![Page 8: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/8.jpg)
![Page 9: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/9.jpg)
![Page 10: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/10.jpg)
Why salesforce.com?
• Not open source, but open-ended, customizable platform
• Active development community• Salesforce Foundation donates 10 user
licenses to charitable organizations (worth $15k/year)
• Managed service == reduced maintenance complexity
![Page 11: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/11.jpg)
But most of our goals require integrating multiple tools...
![Page 12: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/12.jpg)
General strategies
• separation of concerns – small pieces loosely joined
• customization via configuration, not programming
• reusability
![Page 13: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/13.jpg)
E-mail newsletter signup
![Page 14: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/14.jpg)
Salesforce-PloneFormGen Adapter
Fie lds Ac tion Ada pte rs
SubmitSaved data
Mailer
Salesforce.com
![Page 15: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/15.jpg)
Salesforce-PloneFormGen Adapter
![Page 16: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/16.jpg)
Salesforce-PloneFormGen Adapter
![Page 17: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/17.jpg)
Passing preset values via hidden fields
![Page 18: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/18.jpg)
Lead Conversion
![Page 19: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/19.jpg)
E-commerce options
http://www.fickr.com/photos/danielbroche/2258988806/sizes/m/
![Page 20: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/20.jpg)
Standalone 3rd-party tool
(GiftTool, Network for Good, etc.)
![Page 21: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/21.jpg)
Direct integration with Salesforce.com
(Payment Connect)
![Page 22: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/22.jpg)
Direct integration with Salesforce.com
(Payment Connect)
![Page 23: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/23.jpg)
Handcode it in Python
![Page 24: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/24.jpg)
GetPaid for Plone
![Page 25: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/25.jpg)
Considerations
• Costs both upfront and ongoing(typically 2-5% of transaction depending on the payment gateway)
• Method of funds transfer• Access to and privacy of donation data• Integration with your website
![Page 26: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/26.jpg)
Payment Processor Choice?
• Authorize.net• Paymentech• Ogone• DPS PXPay• ClickandBuy
• PayPal• Google Checkout• Payflo Pro• others?
![Page 27: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/27.jpg)
Sync vs. Async
• Synchronous processors take in all info via Plone and then process via a separate backend request to the processor. (e.g. authorize.net)
• Asynchronous processors redirect the user to the processor's site to collect billing info, then forward back to the store site. (e.g. PayPal Website Payments Standard)
![Page 28: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/28.jpg)
PCI compliance
• The credit card industry has some strict standards for sites that deal with credit card information.https://www.pcisecuritystandards.org/
• Sites that store, process, or transmit credit card info should complete a questionnaire and be prepared for a server scan.
• Ask a consultant for advice.
![Page 29: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/29.jpg)
Hosting considerations
• Most VPS providers are not going to certify themselves as PCI compliant.
• If you're accepting credit card info directly rather than sending the user to an offsite processor, you need an SSL certificate … and a unique IP address per domain.
![Page 30: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/30.jpg)
Installing GetPaid
[buildout]parts = … getpaid
…[getpaid]recipe = getpaid.recipe.release==1.9
addpackages = getpaid.authorizedotnet getpaid.formgen getpaid.SalesforcePloneFormGenAdapter getpaid.SalesforceOrderRecorder
![Page 31: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/31.jpg)
Installing GetPaid
![Page 32: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/32.jpg)
Configuring GetPaid
![Page 33: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/33.jpg)
Donatable Types
![Page 34: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/34.jpg)
Payment Options
![Page 35: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/35.jpg)
Payment Processor Settings
![Page 36: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/36.jpg)
One-pagemember signup
![Page 37: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/37.jpg)
One-page member signup, recorded in Salesforce
Form
GetPaid Checkout
Payment Processor
Salesforce.com
1. Order placed(getpaid.formgen)
2. Payment authorization(getpaid.authorizedotnet, etc.)
3. Finance charge event → Info recorded(getpaid.SalesforcePloneFormGenAdapter)
![Page 38: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/38.jpg)
GetPaid adapter
• getpaid.formgen» Adds billing fields to form» Adds item(s) to cart» Initiates checkout
![Page 39: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/39.jpg)
getpaid.formgen ConfigurationMarking an item as a“variable amount donation”
![Page 40: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/40.jpg)
getpaid.formgen ConfigurationMarking an item as a“variable amount donation”
![Page 41: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/41.jpg)
getpaid.formgen ConfigurationAdding the action adapter
![Page 42: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/42.jpg)
getpaid.formgen ConfigurationSelecting the payable object
![Page 43: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/43.jpg)
getpaid.formgenAutomatically addsbilling fields
![Page 44: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/44.jpg)
collective.pfg.creditcardfields
• Provides a date widget with just year and month.
• getpaid.formgen creates a standard date field, but you can replace it with this.
![Page 45: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/45.jpg)
GetPaid-PloneFormGen-Salesforce adapter
• (getpaid.SalesforcePloneFormGenAdapter)» Configures field mapping
» Stores form values in session before checkout
» Creates objects in Salesforce when order is financed
![Page 46: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/46.jpg)
getpaid.SalesforcePloneFormGenAdapter
Data sources
Salesforce.com
Plone FormGe n Form:Custom felds
Ge tPa id-Sa le s forc e Ada pte r:Confgures feld mapping for both sources
Ge tPa id:Transaction ID, Billing Address, etc.
![Page 47: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/47.jpg)
getpaid.SalesforcePloneFormGenAdapter
Adding the adapter
![Page 48: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/48.jpg)
getpaid.SalesforcePloneFormGenAdapter
Configuring the object type
![Page 49: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/49.jpg)
getpaid.SalesforcePloneFormGenAdapter
Configuring the field mapping
![Page 50: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/50.jpg)
Remember:
• The GetPaid-PloneFormGen-Salesforce adapter must go before GetPaid adapter.
(It needs to store things in the session before the GetPaid adapter starts checkout.)
![Page 51: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/51.jpg)
Making events payable
![Page 52: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/52.jpg)
Payable events
![Page 53: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/53.jpg)
Events in shopping cart
![Page 54: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/54.jpg)
Events checkout
![Page 55: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/55.jpg)
getpaid.SalesforceOrderRecorder
• Map fields to Salesforce for standard GetPaid checkout (no PloneFormGen involved)
![Page 56: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/56.jpg)
Lessons/Observations
![Page 57: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/57.jpg)
Don't underestimate the effort needed to learn new processes and tools
![Page 58: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/58.jpg)
Don't assume an existing product does everything like you want
![Page 59: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/59.jpg)
Integrating systems
• Usually you don't need much code, but the challenge is figuring out what it is and where to put it.
![Page 60: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/60.jpg)
Testing integrations withthird-party tools is hard
![Page 61: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/61.jpg)
Testing integrations withthird-party tools is hard
![Page 62: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/62.jpg)
Making integrations configurable enough to be reusable increases complexity significantly
![Page 63: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/63.jpg)
Warning
• May not be suitable for use under high load.(API calls to Salesforce.com are not transaction-aware, so ConflictErrors could lead to inconsistencies.)
![Page 64: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/64.jpg)
The future
http://www.fickr.com/photos/locationscout/3595249806/
![Page 65: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/65.jpg)
More automated form creationfor the simple donation use case
![Page 66: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/66.jpg)
Integration with RSVP for Salesforce
![Page 67: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/67.jpg)
Profile management
![Page 68: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/68.jpg)
Get involved
• Plone-Salesforcehttp://groups.google.com/group/plonesf
• GetPaidhttp://code.google.com/p/getpaid/
![Page 69: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com](https://reader033.vdocuments.net/reader033/viewer/2022051818/54c133f04a795950048b456d/html5/thumbnails/69.jpg)
Thanks to...• Groundwire• Andrew Burkhalter• Jesse Snyder• Brian Gershon• Rob Larubbio• Meyer Memorial Trust• Everyone who has worked on GetPaid• Many others :)