Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com - Presentation Transcript

    1. Integrating Plone with E-Commerce and Relationship Management A Case Study in Integrating PloneGetPaid and Salesforce.com David Glick
    2. Groundwire uses the power of technology to connect people, organizations, and communities working to build a sustainable society.
    3. Idaho Conservation League http://www.fickr.com/photos/sebastian_bergmann/2946960668/
    4. Idaho Conservation League
    5. Theory of Change
    6. Goal: Tools to help engage • E-mail newsletter • Online donations • Membership signup • Paid event registration
    7. Tools http://www.fickr.com/photos/lachlanhardy/227715761/
    8. 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
    9. But most of our goals require integrating multiple tools...
    10. General strategies • separation of concerns – small pieces loosely joined • customization via configuration, not programming • reusability
    11. E-mail newsletter signup
    12. Salesforce-PloneFormGen Adapter Fie lds Ac tio n Ada pte rs Mailer Submit Saved data Salesforce.com
    13. Salesforce-PloneFormGen Adapter
    14. Salesforce-PloneFormGen Adapter
    15. Passing preset values via hidden fields
    16. Lead Conversion
    17. E-commerce options http://www.fickr.com/photos/danielbroche/2258988806/sizes/m/
    18. Standalone 3rd-party tool (GiftTool, Network for Good, etc.)
    19. Direct integration with Salesforce.com (Payment Connect)
    20. Direct integration with Salesforce.com (Payment Connect)
    21. Handcode it in Python
    22. GetPaid for Plone
    23. 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
    24. Payment Processor Choice? • Authorize.net • PayPal • Paymentech • Google Checkout • Ogone • Payflo Pro • DPS PXPay • others? • ClickandBuy
    25. 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)
    26. 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.
    27. 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.
    28. Installing GetPaid [buildout] parts = … getpaid … [getpaid] recipe = getpaid.recipe.release==1.9 addpackages = getpaid.authorizedotnet getpaid.formgen getpaid.SalesforcePloneFormGenAdapter getpaid.SalesforceOrderRecorder
    29. Installing GetPaid
    30. Configuring GetPaid
    31. Donatable Types
    32. Payment Options
    33. Payment Processor Settings
    34. One-page member signup
    35. One-page member signup, recorded in Salesforce Form Payment Processor 1. Order placed (getpaid.formgen) 2. Payment authorization (getpaid.authorizedotnet, etc.) GetPaid Checkout 3. Finance charge event → Info recorded (getpaid.SalesforcePloneFormGenAdapter) Salesforce.com
    36. GetPaid adapter • getpaid.formgen » Adds billing fields to form » Adds item(s) to cart » Initiates checkout
    37. getpaid.formgen Configuration Marking an item as a “variable amount donation”
    38. getpaid.formgen Configuration Marking an item as a “variable amount donation”
    39. getpaid.formgen Configuration Adding the action adapter
    40. getpaid.formgen Configuration Selecting the payable object
    41. getpaid.formgen Automatically adds billing fields
    42. 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.
    43. GetPaid-PloneFormGen- Salesforce adapter • (getpaid.SalesforcePloneFormGenAdapter) » Configures field mapping » Stores form values in session before checkout » Creates objects in Salesforce when order is financed
    44. getpaid.SalesforcePloneFormGenAdapter Data sources Plo ne Fo rm Ge n Fo rm : Ge tPa id: Custom felds Transaction ID, Billing Address, etc. Ge tPa id-Sa le s fo rc e Ada pte r: Confgures feld mapping for both sources Salesforce.com
    45. getpaid.SalesforcePloneFormGenAdapter Adding the adapter
    46. getpaid.SalesforcePloneFormGenAdapter Configuring the object type
    47. getpaid.SalesforcePloneFormGenAdapter Configuring the field mapping
    48. 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.)
    49. Making events payable
    50. Payable events
    51. Events in shopping cart
    52. Events checkout
    53. getpaid.SalesforceOrderRecorder • Map fields to Salesforce for standard GetPaid checkout (no PloneFormGen involved)
    54. Lessons/Observations
    55. Don't underestimate the effort needed to learn new processes and tools
    56. Don't assume an existing product does everything like you want
    57. Integrating systems • Usually you don't need much code, but the challenge is figuring out what it is and where to put it.
    58. Testing integrations with third-party tools is hard
    59. Testing integrations with third-party tools is hard
    60. Making integrations configurable enough to be reusable increases complexity significantly
    61. 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.)
    62. The future http://www.fickr.com/photos/locationscout/3595249806/
    63. More automated form creation for the simple donation use case
    64. Integration with RSVP for Salesforce
    65. Profile management
    66. Get involved • Plone-Salesforce http://groups.google.com/group/plonesf • GetPaid http://code.google.com/p/getpaid/
    67. Thanks to... • Groundwire • Andrew Burkhalter • Jesse Snyder • Brian Gershon • Rob Larubbio • Meyer Memorial Trust • Everyone who has worked on GetPaid • Many others :)
    SlideShare Zeitgeist 2009

    + David GlickDavid Glick Nominate

    custom

    144 views, 0 favs, 0 embeds more stats

    David Glick's Plone Conference 2009 talk showing to more

    More info about this document

    CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

    Go to text version

    • Total Views 144
      • 144 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 5
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories