+ All Categories
Home > Technology > Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and...

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

Date post: 23-Jan-2015
Category:
Upload: david-glick
View: 2,162 times
Download: 0 times
Share this document with a friend
Description:
David Glick's Plone Conference 2009 talk showing tools for accepting payments via PloneGetPaid and recording the transactions in Salesforce.com
Popular Tags:
69
Integrating Plone with E-Commerce and Relationship Management A Case Study in Integrating PloneGetPaid and Salesforce.com David Glick
Transcript
Page 1: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com

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

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

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

Idaho Conservation League

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

Theoryof Change

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

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

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
Page 9: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com
Page 10: Integrating Plone with E-Commerce and Relationship Management: A Case Study in Plone, GetPaid and Salesforce.com

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

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

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

E-mail newsletter signup

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

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

Salesforce-PloneFormGen Adapter

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

Salesforce-PloneFormGen Adapter

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

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

Lead Conversion

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

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

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

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

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

Handcode it in Python

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

GetPaid for Plone

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

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

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

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

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

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

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

Installing GetPaid

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

Configuring GetPaid

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

Donatable Types

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

Payment Options

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

Payment Processor Settings

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

One-pagemember signup

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

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

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

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

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

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

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

getpaid.formgenAutomatically addsbilling fields

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

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

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

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

getpaid.SalesforcePloneFormGenAdapter

Adding the adapter

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

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

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

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

Making events payable

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

Payable events

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

Events in shopping cart

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

Events checkout

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

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

Lessons/Observations

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

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

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

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

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

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

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

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

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

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

Integration with RSVP for Salesforce

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

Profile management

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

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

Thanks to...• Groundwire• Andrew Burkhalter• Jesse Snyder• Brian Gershon• Rob Larubbio• Meyer Memorial Trust• Everyone who has worked on GetPaid• Many others :)


Recommended