Index: README.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uc_salesforce/README.txt,v
retrieving revision 1.2.2.1
diff -u -p -r1.2.2.1 README.txt
--- README.txt	10 Nov 2010 22:27:16 -0000	1.2.2.1
+++ README.txt	8 Dec 2010 19:48:14 -0000
@@ -1,34 +1,122 @@
 $Id: README.txt,v 1.2.2.1 2010/11/10 22:27:16 evandonovan Exp $
 
-This code allows for the export of Ubercart customer and order data to the Salesforce.com Customer Relationship Management system (using the Salesforce API module).
+This module allows for the export of Ubercart customer and order data to the Salesforce.com
+Customer Relationship Management system (using the Salesforce API module).
 
-It includes support for:
+It currently includes support for:
 
   * Exporting Ubercart Orders to Salesforce
-  * Exporting Ubercart Order Products to Salesforce
-  * Creating OpportunityContactRole objects and exporting them to Salesforce (they map orders to Contacts)
+  * Exporting Ubercart Order Products to Salesforce (if a Salesforce custom object exists)
+  * Creating Salesforce OpportunityContactRole objects, which map orders to Contacts
 
 Import functionality is not currently available, but may be added later.
 
-See http://drupal.org/node/760226#comment-3628008 for a description of how to configure this module.
+See "Setup", below, for a description of how to configure this module.
 
-OpportunityContactRole objects connect Opportunities ("Donations") to Contacts. If a proper OpportunityContactRole synchronization is enabled, then when viewing the Contact record, the "Opportunities" (or "Donations") tab on the top will include Orders in the list.
+Notes on Features:
+------------------
 
-If you have multiple Order Products in a single order, these can be mapped independently, and will be associated with the Order (if you set that up in the fieldmap).
+If you have multiple Order Products in a single order, these can be mapped independently, 
+and will be associated with the Order (if you set that up in the fieldmap).
 
-As of alpha2 the module creates a custom node type for OpportunityContactRole mapping, with a field to track the order's Salesforce ID.
+The module creates a custom node type when it is installed for OpportunityContactRole
+mapping. This node type contains a field to track the order's Salesforce ID.
+
+In Salesforce, OpportunityContactRole objects connect Opportunities ("Donations") to Contacts. 
+If a proper OpportunityContactRole synchronization is enabled, then when viewing 
+the Contact record, the "Opportunities" (or "Donations") tab on the top will include 
+Orders in the list.
+
+
+Setup:
+------
+
+1) As a prerequisite, install the Salesforce API module, and configure it
+according to the instructions provided with it. Also, ensure that Ubercart
+is configured correctly.
+2) Install and enable the Ubercart Salesforce Integration module.
+3) Enable the Contact, Opportunity, and OpportunityContactRole objects
+on the SF API "Object Setup" tab.
+4) Create field mappings similar to those suggested in the "Recommended Field Mappings" section.
+Do *not* set them to "sync on create". Synchronization is handled through the Ubercart
+Conditional Actions module.
+5) Go to the Salesforce API Settings tab (at admin/settings/salesforce), and make the field
+mappings from step 4 the Default Export Settings, under Ubercart Integration.
+6) Check the "attempt to sync" checkbox for each type of object you wish to sync. Do not check
+the "Always create a NEW user contact/object" checkbox.
+7) Click "Save configuration" at the bottom of the Settings tab. Now your integration should
+be set to work. Test it with both anonymous and authenticated users.
 
-Make sure to go to the Salesforce settings page, and choose the appropriate "Ubercart Integration" fieldmaps for use, after they have been defined, and to mark the appropriate checkboxes for synchronization.
+Recommended Field Mappings:
+-------------------------
+
+a) User account -> Contact (or Lead)
+    i) This is how users will be added to Salesforce. This is required.
+    ii) Fields (SF name on left):
+        1) Last Name -> Username OR
+           Last Name -> [profile category]: Last Name (recommended)
+        2) Email -> E-mail address
+        3) (optional) First Name -> [profile category]: First Name
+    iii) Note: To use profile categories, you will need to enable the core Profile module, 
+         then use the uc_profile.module to add them to the checkout form (at least if you have
+         anonymous checkout enabled).
+         I have created a patched version of that module, available at 
+         http://drupal.org/node/606366#comment-3803144, which allows you to use user profile fields 
+         from multiple categories.
+         This module does not yet support Content Profile, but that may be added in a later release.
+b) Ubercart order -> Opportunity (or Donation, if using Nonprofit Starter Pack)
+   i) This is where the purchase data from Ubercart is added. This is also required.
+   ii) Fields:
+       1) Donation Name -> Order ID
+       2) Stage -> Order Status (Title)
+       3) Close Date -> Created date (as XSD:Date)
+       4) Amount -> Order Total
+    iii) You can also map most of the other order information, except for Attributes.
+         Those will be added in a later release.
+c) Opportunity Contact Role node -> OpportunityContactRole
+   i) This makes the link between an individual Contact and an Opportunity.
+      The OCR node only stores a field containing the Contact's Salesforce ID.
+      It is necessary since currently you can't do one-to-many mapping using the
+      Salesforce API module. Normally, in Salesforce, Opportunities/Donations are linked 
+      with Accounts/Organizations, but the Ubercart Salesforce Integration module, in its current
+      state, links only to individual Contacts.
+      Linkage with Accounts will be added in a later version as an optional add-on module.
+   ii) Fields:
+       1) Contact ID -> Order User's Salesforce UserID [for OCR]
+       2) Donation -> Order Salesforce ID [for OCR]
+d) (optional) Ubercart order product -> Product (custom object type in Salesforce)
+   i) Optionally, if you want to store the data for the individual product items in
+      Salesforce, you will need to create a custom object that will show on the
+      related list for the Opportunity object.
+      This can be very simple - just a price numeric field, and a master-detail
+      field for linking to the Opportunity.
+      If you add this after you have already installed the Salesforce API module, make
+      sure to download and re-upload the Enterprise WSDL so that this object and its
+      fields will be recognized.
+     Note: Currently this module does not integrate with the Pricebook. That will be
+     added in a later version.
+   ii) Fields:
+       1) Product Name -> Title
+       2) Purchase Name -> Order Salesforce ID
+       3) Cost -> Price
 
-Release acknowledgements:
+Release Acknowledgements:
 -------------------------
 
+alpha3 Release:
+~~~~~~~~~~~~~~~
+Documentation, testing, and bug fixes were done by EvanDonovan for TechMission, the module's
+new maintainer.
+
+If you have particular integration needs and wish to sponsor further development, you may contact him
+at evan@evandonovan.org.
+
 alpha2 Release:
 ~~~~~~~~~~~~~~~
 
 Most of the development of the alpha2 release was done by aaronbauman, the creator of the Salesforce API module.
 
-Documentation, testing, and bug fixes were done by EvanDonovan (evan@evandonovan.org) for TechMission.
+Some documentation, testing, and bug fixes were done by EvanDonovan for TechMission.
 
 alpha1 Release:
 ~~~~~~~~~~~~~~~
