11/15/12
Page1of22
11/15/12
Salesforce/NexternalCommerceConnectorConfigurationGuide InitialSetup
AfterinstallingtheNexternalCommerceConnectorfromtheSalesforceAppExchangeyouwillneedtomaketwoadjustmentstoyourSalesforceaccountsettings:
1.AddtheNexternaltabtoyourSalesforceaccountpage.2.AddaRemoteSiteSettingtoenabletheCommerceConnectortodownloadinformationfrom
yourNexternalstorefront.PriortoperformingtheinitialimportfromyouNexternalstorefrontpleasereviewtheImportingYourOrderssectiontomakesuretheimportdateshavebeenset(orreset,ifyouhavebeentestingtheaddinbeforeinstallingitinyourproductionSalesforceenvironment),alongwiththeWhatHappensDuringAnImportsectionandtheAdvancedConfigurationsectionbelowtoensuretheimportprocesswon'tconflictwithanyexistinginformationyouhaveenteredintoSalesforce.
AddtheNexternalTabClickonthe tabatthefarrightofyourSalesforceaccountpagetodisplaytheAllTabsconfigurationsettings.
Clickonthe buttontodisplaytheCustomizeMyTabsconfigurationsettings.SelecttheNexternaltabfromthelistofavailabletabs,thenclickthe buttontoaddtheNexternalCommerceConnectortoyourlistofSelectedTabsand tosaveyourconfiguration.
11/15/12
Page2of22
11/15/12
AddaRemoteSiteSetting
ClickontheSetuplinkatthetopofyourSalesforceaccountpage,thenopenAdministrationSetup>SecurityControlsandclicktheRemoteSiteSettingslink.
Clickthe button,andenterthefollowinginformationontheRemoteSiteEditpage,and tosaveyourconfiguration.
11/15/12
Page3of22
11/15/12
ImportingYourOrders
BeforeyoucanimportyourstorefrontordersintoSalesforceyouwillneedtovisittheNexternalOrderManagementSystemandenabletheSalesforceCommerceConnectorunderSettings>CompatibleSoftware.PleasenotethattheexportstartingdatemighthavetoberesetbyeditingthedatedisplayedintheSyncStartDatecontrolifyouhavebeentestingtheSalesforceCommerceConnectorpriortoinstallingitinyourproductionSalesforceenvironment.Informationaboutwhichorders,customers,andproductshavealreadybeenretrievedfromyourstorefrontbytheNexternalCommerceConnectorisstoredontheNexternalservers.YoucanresetthisinformationbyloggingintoyourNexternalOrderManagementSystemandchangingtheSyncStartDateunderSettings>CompatibleSoftware>Salesforce.OncetheSyncStartDatehasbeenchangedyoucanlogbackintoSalesforceandclickthe buttontorestarttheimportfromtheSyncStartDateyouhaveselected.BydefaulttheNexternalCommerceConnectorwillinitiallysettheimportsynchronizationstartdatetocovertheprevioussixmonths'worthofordersinyourstorefront.Ifyouwouldliketochangethestartdatetoretrievemore(orless)ordersyoucandosofromtheNexternalOrderManagementSystem,underSettings>CompatibleSoftware>Salesforce.
NotethatthepercentageofestimatedstorageuseisaveryroughapproximationoftheactualamountofstoragethatwillbeusedbyyourinitialimportintoyourSalesforceaccount.Thecalculationisbasedonanestimated20MBofstorageperSalesforceaccount;theactualamountofstoragespaceyouhavewilldependontheSalesforceEditionyouareusing.YoucancheckthestoragelimitfromyourSalesforceaccountSetuppageandadjustthepercentagesaccordingly.
11/15/12
Page4of22
11/15/12
RememberthatmostSalesforceeditionscomewithafixedamountofstoragespace,andanyordersyouimportwillhavetosharethatspacewithalloftheotherCRM-relatedtasksthatyouareperforming.Pleaseexerciseprudence(andcaution!)whenyouchoseasynchronizationstartdate.Bydefaultonlytheordersthatareflaggedas"Shipped"or"Sent"areexportedfromyourstorefront.Ifyouprefertoexportnew("Unshipped")ordersastheycomeintoyourstorefrontyoucanchangethe"Exportordersbasedon:"valueto"PurchaseDate".
OnceyouhaveconfiguredtheSalesforceCommerceConnectorsettingsintheNexternalOrderManagementSystemyou'rereadytobeingyourinitialimportfromyourSalesforceaccount.SignontoyourSalesforceaccount,selecttheNexternaltab,andenteryourNexternalAccountNameandyourNexternalloginandpasswordintheConnectionCredentialsfields.SelecttheSalesforceUseryouwouldliketoAssignasOwnerduringtheimportprocess,thenclick
tostartimportingtheorder,customer,andproductinformationfromyourstorefront.
11/15/12
Page5of22
11/15/12
Onceyouhavecompletedtheinitialsynchronizationyoucanautomateallfutureimportsbyselectingthe checkbox.NotethattheEnableAutomaticUpdatescheckboxwillnotbedisplayeduntilafteryouhavecompletedyourfirstsuccessfulsynchronization!
WhatHappensDuringAnImport
TheNexternalCommerceConnectorisdesignedtousethestandardfieldsinyourSalesforceenvironmentforstoringtheinformationimportedfromyourNexternalstorefront.Theimportprocessitselfissequential(asectionofimporteddataisread,aSalesforcerecordiscreatedorupdatedandwrittenbacktotheSalesforcedatabase),anddoesnotuseany"event-driven"codingtocompleteanyoperations.WhendatafromyourNexternalstorefrontisimportedintoSalesforcethefollowingrelationshipswillbecreated.
• Ingeneral,anewNexternalcustomerrecordwillcreateanewSalesforceAccountrecordandanewSalesforceContactrecordthatisassociatedwiththeAccount.Theonlyexceptionstothisone-to-onemappingare:
o IfanexistingSalesforceAccount"AccountName"fieldmatchestheNexternalcustomerCompanynametheexistingSalesforceAccountrecordwillbeused,andtheNexternalcustomerwillbeaddedtotheAccountrecordasaSalesforceContact.
o IfanexistingSalesforceAccountcontainsaContactrecordthathasanemailaddressthatmatchestheNexternalcustomeremailaddresstheexistingSalesforceContactrecordwillbeused.
• ANexternalorderrecordwillcreateanewSalesforceOpportunityrecord.
• TheorderlineitemsintheNexternalorderrecordwillcreatenewSalesforce
OpportunityLineItemrecords,PricebookEntryrecords,andProduct2recordsthatareassociatedwiththeOpportunityrecord.
• AnyNexternalcustomeractivitieswillcreatenewSalesforceTaskrecords.Note:IfyouareusingtheNexternalFields.propertiesconfigurationfileasdescribedintheNexternalCustomFieldPropertiessectionthenodevalue(s)willbewrittentothefield(s)youhaveassignedinthepropertiesfile.TheNexternalCommerceConnectorisdesignedtoalwaystreatorders,customers,andproductsthatare
11/15/12
Page6of22
11/15/12
importedfromtheNexternalstorefrontinthismannersothataone-to-onerelationshipbetweenthedataintheNexternalOrderManagementSystemandtheSalesforceenvironmentismaintained.PleaseseetheIssuesEncounteredDuringAnImportsectionbelowformoreinformation.TheNexternalCommerceConnectorwillalwaystrytopreserveanyexistingSalesforceAccountand/orContactinformation,evenifitmeansatechnicallyincorrectassignmentorassociationiscreatedduringtheimport.Forexample,assumethereisapre-existingSalesforceContactrecordforJohnDoewiththeemailaddress"[email protected]".AnorderfromJaneSmithisimportedfromyourNexternalstorefrontthathastheemailaddress"[email protected]".Aftertheimporttheorder(SalesforceOpportunity)willbeassociatedwithJohnDoe.ASalesforceContactrecordforJaneSmithwillnotbecreated,andthecustomerinformationforJaneSmithwillnotoverwritetheSalesforceContactinformationforJohnDoe.Note:IfyouaregoingtomergecustomersinyourNexternalstorefront,alwaystrytomergetherecordsintoanexistingSalesforceContactrecordthathasalreadybeenimportedbytheNexternalCommerceConnectorandassigneda"Nexternal"LeadSourcevalue.
IfyouhavedifferentrequirementsfordataimportedintoyourSalesforceenvironmentpleasecontactyourNexternalAccountManager.Wecanprovidethesourcecodefortheaddintoyourdeveloperor
11/15/12
Page7of22
11/15/12
consultantsothattheycantailortheimportprocesstomeetyourneeds.
TheImportedDataTheimportcomesintotheNexternalCommerceConnectorasanXMLdocument,andcertainfieldsinthedocumentareusedbytheaddintopreventduplicaterecordsfrombeingcreatedinyourSalesforceaccount.AnexampleoftheNexternalSalesForceReplyislocatedinyourStaticResourcesarea(SalesforceSetup>AppSetupSection>Develop>StaticResources)underthenameSalesforceReply,andcanbeusedasareferenceforthefieldsdescribedbelow.<AccountID>NexternalstorefrontnumbercombinedwiththeNexternalcustomernumber(e.g.1362-1084).ThevalueintheAccountIDnodeiswrittentotheSalesforceAccount.AccountIdfield,andisusedtofindexistingNexternalcustomersthathavebeencreatedduringapreviousimport.IfthisfieldischangedorremovedanewSalesforceAccountrecordwillbecreatedthenexttimethecustomernumberispartofanimport.Therearetwoexceptionstothiscondition:
(1) Ifthevalueinthe<Account><Company>nodematchesanexistingSalesforceAccount.NamefieldandtheAccount.AccountIdfieldcontainsaNexternalcompanyidentifier(a"C"followedbyanintegernumber)thematchingAccountrecordwillbeused,andanewContactrecordwillbecreated(oranexistingrecord,asperexception(2)below,willbeused).
(2) IfamatchingAccountrecordisn'tfoundasecondarysearchwillbeperformedforanySalesforceContactrecordsthathaveaContact.Emailfieldthatmatchesthevaluecontainedintheimported<Account><EMail>node.IfamatchisfoundtheSalesforceAccountrecordassociatedwiththematchingContactrecordwillbeusedinstead.
AmodifiedversionoftheAccountIDnodeisalsousedintheSalesforceContact.LeadSourcefieldtoidentifyContactrecordsthathavebeencreatedduringanimportand/orassociatedwithanexistingSalesforceContactrecordduringanimport.IftheContact.LeadSourcefieldischangedorremovedanewSalesforceContactrecordwillbecreatedthenexttimethecustomernumberispartofanimport(oranexistingrecord,asperexception(2)above,willbeused).
<OpportunityID>NexternalstorefrontnumbercombinedwiththeNexternalordernumber(e.g.1362-4148).ThevalueintheOpportunityIDnodeiswrittentotheSalesforceOpportunity.Namefield,andisusedtofindexistingNexternalordersthathavebeencreatedduringapreviousimport.IfthisfieldischangedorremovedanewSalesforceOpportunityrecordwillbecreatedthenexttimetheordercustomernumberispartofanimport.TheOpportunityIDnodevalueisalsousedtoassociatetheSalesforceOpportunitywithoneormoreSalesforceOpportunityLineItemrecords(OpportunityLineItem.OpportunityId),oneormoreSalesforce
11/15/12
Page8of22
11/15/12
Taskrecords(Task.WhatId),andwiththeSalesforceContactthatplacedtheoriginalorderintheNexternalstorefront(OpportunityContactRole.OpportunityId).
<LineItemID>NexternalstorefrontnumbercombinedwiththeNexternallineitemnumber(e.g.1362-2174).ThevalueintheLineItemIDnodeiswrittentotheSalesforceOpportunityLineItem.Descriptionfield,andisusedtofindexistingNexternalorderlineitemsthathavebeencreatedduringapreviousimport.TheLineItemIDnodevalueisalsousedtoassociatetheSalesforceOpportunitywithoneormoreSalesforceOpportunityLineItemrecords.
<ProductCode>NexternalstorefrontnumbercombinedwiththeNexternalproductnumber(e.g.1362-32218).Iftheproducthasaproduct-levelSKUvaluedefinedtheSKUvaluewillbeusedinsteadoftheproductnumber(e.g.1362-ff062).Iftheproductisagiftcertificatethegiftcertificatecodewillbeused(e.g.1362-fisher2320).Note:Ifthe"UseSKULevelCode"keyissetto"true"intheNexternalFields.propertiesconfigurationfiletheindividualSKU-levelitemsfromyourstorefrontorderswillbeusedtocreateProductrecordsonSalesforce.PleasecontactyourNexternalAccountManagerforadditionalinformationaboutthissetting,asitmightnotbesuitableforusewithyourstorefront.ThevalueintheProductCodenodeiswrittentotheSalesforceProduct2.ProductCodefield,andisusedtofindexistingNexternalproductsthathavebeencreatedduringapreviousimport.IfthisfieldischangedorremovedanewSalesforceProduct2recordwillbecreatedthenexttimetheproductnumberispartofanimport.TheProductCodenodevalueisalsousedtoassociatetheSalesforceOpportunityLineItemwithaSalesforceProduct2recordviatheSalesforcePricebookEntryrecord.Note:DonotchangeoralterthePricebookinformationforproductsimportedintoSalesforcefromyourNexternalstorefront.NexternalproductsneedtobeassociatedwiththeSalesforceStandardPricebook.NotethatchangingtheProductCodevalueafteranimportmightresultinreassignmentofanyexistingSalesforcelinkagesbetweennewandexistingOpportunityLineItemsandlossofthePricebookEntryrecordlinkages.
TheImportProcess
AftereachbatchofdataisimportedtheinformationwithintheXMLdocumentisparsedandprocessedasfollows.NotethateachstepbelowwillusetheinformationdescribedinTheImportedDatasectiontoretrievepre-existingrecordsifpossible,andtheSalesforcerecordsthatarecreatedorupdatedduring
11/15/12
Page9of22
11/15/12
eachsteparecommittedtotheSalesforcedatabasebeforeproceedingtothenextstep.
(1) The<Account>nodeisselected,andaSalesforceAccountrecordisretrievedorcreated.(2) All<Product>nodeswithinthe<Account>nodeareselected,andSalesforceProduct2recordsare
retrievedorcreated.(3) All<Opportunity>nodeswithinthe<Account>nodeareselected,andSalesforceOpportunity
recordsareretrievedorcreated.The<Product>nodesarereselectedsothatarelationshipbetweentheOpportunityandtheProduct2recordscanbeestablishedviatheSalesforcePricebookEntryrecord.
(4) All<OpportunityLineItem>nodeswithinthe<Account>nodeareselected,andSalesforceOpportunityLineItemrecordsareretrievedorcreated.The<Opportunity>and<Product>nodesarereselectedsothatarelationshipbetweentheOpportunityLineItemandPricebookEntryrecordscanbeestablished.
(5) Theselected<Account>nodeisusedtoretrieveorcreateaSalesforceContactrecord,andtheContactrecordisusedtoestablishtherelationshipbetweentheAccountandtheContactviatheSalesforceAccountContactRolerecordandtherelationshipbetweentheContactandtheOpportunityviatheSalesforceOpportunityContactRolerecord.
(6) The<ActivityHistory>nodeisselected,andall<Activity>nodeswithinthe<ActivityHistory>nodeareaddedasSalesforceTaskrecords.
IssuesEncounteredDuringAnImportEachofthepreceedingstepsperformsanupdateonyourSalesforcedata,soifyouhaveanycustomtriggers,rules,filters,orthird-partyaddinsinyourSalesforceenvironmentthatare"listening"forchangeeventsonSalesforceobjectsyoumightencounterproblemsduetodatafields,dependencies,orrelationshipsthathaveyettobecreated.IfthisisthecasewestronglyrecommendthatyouinstalltheNexternalCommerceConnectortoyourSalesforceenvironmentsandboxandconductsometest-runsbeforeinstallingtheaddininyourproductionenvironment.InsomecasestheissuesyoumightencounterduringyourtestscanbemitigatedbycreatingcustomfieldsinyourSalesforceenvironmentandmappingoneormoreNexternalfieldstothesecustomfields.PleaseseetheAdvancedConfigurationsectionbelowformoreinformation.IfyouhaveanyofthesekindsofinteractionissueswiththeNexternalCommerceConnectorpleasecontactyourNexternalAccountManager.Wecanprovidethesourcecodefortheaddintoyourdeveloperorconsultantsothattheycantailortheimportprocesstomeetyourneeds.
ImportingMultipleStorefrontsIfdesired,theNexternalCommerceConnectorcanimportordersfrommultiplestorefrontsintoasingleSalesforceenvironment.Alloftheinformationrelatedtoanorder(e.g.Account,Contact,Opportunity,etc.)isimportedwithauniquestorefrontnumber,whichisusedtocreateuniquerecordsinyourSalesforceenvironment.
11/15/12
Page10of22
TheonlyexceptiontothisbehaviourisforNexternalcustomerrecordsthathaveaCompanyname(seethe"CompanyField"optionsintheNexternalOrderManagementSystem>Customers>Types>EditCustomer&ActivityTypes(Page2)).IfthesameCompanynameisusedinmorethanoneofyourNexternalstorefrontsonlyoneCompany-typeSalesforceAccountrecordwillbecreatedandusedforallCustomers(SalesforceContacts)thatareimported.PleaseseeWhatHappensDuringAnImportformoreinformationabouthowCompanyAccountrecordsarecreated.Ifyouwanttoimportmultiplestorefrontsusingtheautomaticupdatefeature,eachofthestorefrontsmustbeconfiguredusingaseparateSalesforceLogin,sothatuniqueSalesforceCronTriggertaskscanbecreatedtomanagetheinformationrequiredbytheaddinwhenschedulinganimportforeachstorefront.Intheexamplebelow,twodifferentSalesforceUsers("FirstUser"and"SecondUser")haveloggedintoSalesforce,selectedthe"Nexternal"addintab,enteredtheConnectionCredentialsforaNexternaldemonstrationstorefront("fairway"and"winery"),andaftersuccessfullyperformingtheinitialsynchronizationtheyhavecheckedthe"Enableautomaticupdates"checkboxtocreatetwonewScheduledJobswithintheSalesforceenvironment.
11/15/12
Page11of22
AdvancedConfiguration(Optional)
NexternalCustomFieldSettingsTheNexternalCommerceConnectorisdesignedtousethestandardfieldsinyourSalesforceenvironmentforstoringtheinformationimportedfromyourNexternalstorefront.IfyouhaveexistingCRMdataenteredintoyourSalesforceaccount,orifyouintendtousetheNexternalCommerceConnectorinconjunctionwithanotherSalesforceapplicationorAppExchangeaddin,youmightneedtocreateaNexternalCustomFieldsconfigurationfile.TheillustrationsbelowintheSalesforceObjectssectionoutlinetheSalesforceobjectsandstandardfieldsusedbytheNexternalCommerceConnector,andincludeabriefdescriptionofthestorefrontdatathatwillbeimportedintoeachfield.AnexampleoftheNexternalSalesForceReplyObject(XML)willbecopiedintoyourStaticResourcesarea(SalesforceSetup>AppSetupSection>Develop>StaticResources)underthenameSalesforceReplyduringtheinstallationoftheNexternalCommerceConnector,andcanbeusedasareferenceforthefieldsdescribedbelowintheNexternalResponseNodecolumns.Thesectionfollowingthisone,NexternalCustomFieldProperties,describesthecontentsoftheJava"properties"filethatcanbeusedtochangetheSalesforceobjectfield(s)whereyourNexternalinformationwillbestored.
11/15/12
Page12of22
SalesforceObjects
SalesforceAccountObject
Nexternal Response Node Salesforce Object and
Field Description
Account/AccountID Account.AccountNumber Customer Number(1) Account/Company Account.Name Company Name(2) Account/Name Account.Name Customer Name Account/EMail Account.Site Email Address Account/Billing/Street Account.BillingStreet Billing Address Account/Billing/City Account.BillingCity Billing City Account/Billing/State Account.BillingState Billing State Account/Billing/Zip Account.BillingPostalCode Billing Zip Code Account/Billing/Country Account.BillingCountry Billing Country Account/Shipping/Street Account.ShippingStreet Shipping Address Account/Shipping/City Account.ShippingCity Shipping City Account/Shipping/State Account.ShippingState Shipping State Account/Shipping/Zip Account.ShippingPostalCode Shipping Zip Code Account/Shipping/Country Account.ShippingCountry Shipping Country Account/CustomerType Account.Type Customer Type(3) Account/Description Account.Description Age Verification(4) Account/Phone Account.Phone Phone Number
(1) IftheSalesforceAccount.Typefieldis"Residential"theSalesforceAccount.AccountNumberfield
11/15/12
Page13of22
willcontaintheNexternalCustomerNumber.IftheSalesforceAccount.Typeis"Business"theSalesforce.AccountNumberfieldwillcontainanauto-generated(andauto-incremented)numericvalueprefixedwiththeletter"C".Thisauto-generatedvalueisusedbytheNexternalCommerceConnectortoqueryforandselect"Business"accountsthatcanbeusedastheparentAccountforoneormoreContacts.See(2)and(3)belowformoreinformationabouthowSalesforceAccountsandContactsareprocessed.
(2) IftheCompanyNamefieldinaNexternalCustomerrecordisempty(blank)theNexternal
CommerceConnectorwillcreateaSalesforceAccountandamatchingSalesforceContactusingtheNexternalCustomerrecord.BothSalesforceobjectswillbelabelledwiththeCustomerName.IftheCompanyNamefieldisnotemptytheNexternalCommerceConnectorwilltrytofindaSalesforceAccountthatmatchestheCompanyName,and,ifoneisfound,itwillcreateaSalesforceContactandattachittotheexistingSalesforceCompanyAccount.IfamatchingAccountisnotfoundanewSalesforceAccountbasedontheNexternalCustomerinformationwillbecreatedusingtheCompanyName,andanewSalesforceContactwillbecreatedandattachedtothenewSalesforceAccount.
(3) TheNexternalCustomerTypeisusedintheSalesforceAccountContactRole.Rolefield.Whena
newSalesforceAccountobjectiscreatedtheAccount.Typefieldissettoeither"Business"or"Residential",dependingonwhetherornotaCompanyNameisinvolved.
(4) IfAgeVerificationisenabledinthestorefrontOrderManagementSystemtheAgeVerification
FlagandAgeVerificationNotesarepassedtotheSalesforceAccount.Descriptionfield.Seealso:WhatHappensDuringAnImport
11/15/12
Page14of22
SalesforceContactObject
Nexternal Response Node Salesforce Object and
Field Description
Contact/Name/LastName(1) Contact.LastName Customer Last Name Contact/Name/FirstName Contact.FirstName Customer First Name Contact/Mailing/Street Contact.MailingStreet Billing Address Contact/Mailing/City Contact.MailingCity Billing City Contact/Mailing/State Contact.MailingState Billing State Contact/Mailing/Zip Contact.MailingPostalCode Billing Zip Code Contact/Mailing/Country Contact.MailingCountry Billing Country Contact/Phone Contact.Phone Phone Number Contact/Email Contact.Email Email Address(2) Contact/LeadSource Contact.LeadSource Nexternal (Customer
Number)(3)
(1) NotethatinthisinstancetheNexternalResponseNodecolumnisamappingplaceholderforContact-levelinformationthatactuallycomesfromthe"Account/*"nodes.SeethenotesforSalesforceAccountObjectformoreinformation.
11/15/12
Page15of22
(2) WhenaNexternalCustomerrecordisinitiallyimportedintoaSalesforceaccounttheNexternal
CommerceConnectorwillusetheContact/Emailnodetotryandfindamatching(pre-existing)SalesforceContact.IfthesameemailaddressisusedformorethanoneContact(ormorethanoneNexternalCustomer)onlythefirstmatchfoundwillresultinabindingbetweenthatspecificNexternalCustomerandthatspecificSalesforceContact;allsubsequentNexternalCustomerssharingthatemailaddresswillcreatenewSalesforceContactobjects.
(3) TheSalesforceContact.Leadsourceisusedtostorethesouceofthelead(yourNexternal
storefront)andtheNexternalCustomerNumber.Seealso:WhatHappensDuringAnImport
11/15/12
Page16of22
SalesforceOpportunityObject
Nexternal Response Node Salesforce Object and
Field Description
Opportunity/OpportunityID Opportunity.Name Order Number Opportunity/CloseDate Opportunity.CloseDate Ship Date Opportunity/NextStep Opportunity.NextStep Payment Method and P.O.
Number Opportunity/StageName Opportunity.StageName Status (always "Closed
Won") Opportunity/Type Opportunity.Type Placed By Opportunity/LeadSource Opportunity.LeadSource Lead Source (always
"Nexternal") Opportunity/OrderDate Opportunity.Description(1) Creation Date Opportunity/OrderNet Opportunity.Description Net Price Opportunity/Coupon Opportunity.Description Coupon Discount(s) Opportunity/Discount Opportunity.Description Other Discount(s) Opportunity/Tax Opportunity.Description Tax Opportunity/Shipping Opportunity.Description Shipping Opportunity/Amount Opportunity.Description Total Price Opportunity/Comments Opportunity.Description Customer Comments
(1) NotethatthelasteightfieldsareconcatenatedandstoredintheOpportunity.Descriptionfieldbydefault.SeeNexternalCustomFieldPropertiesformoreinformation.
11/15/12
Page17of22
SalesforceOpportunityLineItemObject
Nexternal Response Node Salesforce Object and Field Description OpportunityLineItem/Quantity OpportunityLineItem.Quantity Line Item Quantity OpportunityLineItem/ServiceDate OpportunityLineItem.ServiceDate Line Item Ship Date OpportunityLineItem/UnitPrice OpportunityLineItem.UnitPrice Line Item Unit Price OpportunityLineItem/LineItemID OpportunityLineItem.Description(1) Line Item Number OpportunityLineItem/ShipTo OpportunityLineItem.Description Line Item ShipTo
Address OpportunityLineItem/TrackingNo OpportunityLineItem.Description Line Item Tracking
Number
(1) NotethatthelastthreefieldsareconcatenatedandstoredintheOpportunityLineItem.Descriptionfieldbydefault.SeeNexternalCustomFieldPropertiesformoreinformation.
11/15/12
Page18of22
SalesforceProduct2Object
Nexternal Response Node Salesforce Object and
Field Description
Product2/ProductName Product2.Name Product Name Product2/ProductCode Product2.ProductCode(1) Product Number Product2/Family Product2.Family Product Category Product2/Vendor Product2.Description(2) Product Vendor Product2/Description Product2.Description Product Description
(abbreviated)
(1) See<ProductCode>inTheImportedDataformoreinformationaboutalternativefieldvalues.(2) NotethatthelasttwofieldsareconcatenatedandstoredintheProduct2.Descriptionfieldby
default.SeeNexternalCustomFieldPropertiesformoreinformation.
11/15/12
Page19of22
NexternalCustomFieldProperties
IfyouareusingtheNexternalCommerceConnectorwithabrandnewSalesforceaccount,andyourSalesforceaccountwillneverbeusedforanythingexceptimportingorder,customer,andproductinformationfromyourNexternalstorefrontintotheSalesforceCRM,then
YouDONOTneedtohaveaNexternalFields.propertiesfile!Pleasedonotproceedbeyondthispoint,andpleasedonotfollowanyofthestepsorproceduresoutlinedbelow!Theinformationinthissectionisintendedforanycombinationofthefollowing:
(1)CompaniesandusersthathaveanexistingSalesforceaccount,andthatSalesforceaccountalreadycontainsCRMdata.
(2)CompaniesandusersthataresigningupwithSalesforceandintendtouseadditionaladdinsfrom
theSalesforceAppExchangeincombinationwiththeNexternalCommerceConnectoraddin.(3)Companiesandusersthatalreadyareusingorwillbeusinganykindofprogrammingservice(s)to
modifytheirSalesforcedataand/orviews(e.g.triggers,rules,etc.).Thecontentofthenextsectionshouldbecopiedinitsentiretyandpastedintoaplain-ASCIItextfilenamedNexternalFields.properties.ThisistheconfigurationfileyouwillmodifyanduploadtotheStaticResourcesarea(SalesforceSetup>AppSetupSection>Develop>StaticResources)asNexternalFieldsifyouwanttocreateyourownCustomFieldsandusethemforstoringNexternaldata.Thepropertiesfileitselfservesasthedocumentationforwhatkindofchangescanbemade.RememberthatyoumustcreateyourSalesforceCustomfield(s)first,andthentransfertheCustomFieldsAPIName(s)totheSalesforceobjectfield(s)totherightoftheperiod.InformationaboutcreatingSalesforceCustomFieldscanbefoundintheForce.ComWorkbook(PDF)andHowdoIcreateacustomfield?(video).NexternalFields.properties#STARTOFPROPERTIES##Ingeneral,thekeysbelowrepresentnodesintheNexternalXMLresponseand#thevaluesrepresentSalesforceobjectsandfields.Thevaluewillbe'read'#fromtheXMLnodeasaString,convertedtotheappropriateSalesforcedata#type,andstoredintotheSalesforceobject.##(1)Valuesontheleft-handsideoftheequalsign(the'key')cannotbe
11/15/12
Page20of22
#changedinanyway.ThesearethenodesintheXMLresponse,andareused#bytheNexternaladdintolocateandretrievedata.##(2)Valuesontheright-handsideoftheequalsign(the'value')represent#theSalesforceobjectandfieldwheredatafromtheXMLnodewillbe#stored.##(a)TheSalesforceobjectontheleft-handsideoftheperiod(e.g.#'Account.')CANNOTbechanged.#(b)TheSalesforceobjectfieldontheright-handsideoftheperiod#(e.g.'AccountNumber')CANbechangedtoacustomfieldthatyouhave#createdwithinyourSalesforceobject,butitisYOURRESPONSIBILITY#toensurethecustomfieldisoftheSAMESALESFORCEDATATYPEasthe#fielditwillreplace.ThefollowingSalesforceDisplayTypesare#currentlysupportedintheNexternaladdin:Currency,Date,Double,#Integer,String,andPickList.##(3)Thevaluesstoredinthefollowingnodescannotbealteredinanyway:##Account/AccountID#Contact/LeadSource#Opportunity/OpportunityID#OpportunityLineItem/LineItemID#Product2/ProductCode##TheinformationinthesefieldsisusedtoidentifyNexternalinformation#importedintoSalesforcesothatchangestoacustomer,order,orproduct#inyourNexternalOrderManagementSystemwillbeaccuratelyreflectedin#yourSalesforceaccount.##Alloftheaboveidentificationvalues(exceptforOpportunityLineItem/#LineItemID)mustbemappedtoaSalesForcefieldthatcontainsONLYthe#Nexternalrecordvalue,sothatSOQLqueriescanbeusedtoretrieve#SalesforcerecordsthatmatchtherecordsimportedfromyourNexternal#OrderManagementSystem.##(4)AlmostallSalesforceobjectshaverequiredfields.Forexample,theAccount#objectrequiresanentryfortheAccount.Namefield,soifyouchangethe#Account/NamenodetopointtoaSalesforcefieldotherthanAccount.Namethe#NexternaladdinwillwritethevalueofAccount/Nametoyourcustomfield#ASWELLAStheAccount.NamefieldtofulfilltheSalesforcerequirementfor#thatfield.##NotethattheaboveconditionwillonlybeappliedtoNEWSalesforceobjects#thatarecreatedbytheNexternaladdinduringanimport.#Account/AccountID=Account.AccountNumberAccount/Company=Account.NameAccount/Name=Account.Name
11/15/12
Page21of22
Account/EMail=Account.SiteAccount/Billing/Street=Account.BillingStreetAccount/Billing/City=Account.BillingCityAccount/Billing/State=Account.BillingStateAccount/Billing/Zip=Account.BillingPostalCodeAccount/Billing/Country=Account.BillingCountryAccount/Shipping/Street=Account.ShippingStreetAccount/Shipping/City=Account.ShippingCityAccount/Shipping/State=Account.ShippingStateAccount/Shipping/Zip=Account.ShippingPostalCodeAccount/Shipping/Country=Account.ShippingCountryAccount/CustomerType=Account.TypeAccount/Description=Account.DescriptionAccount/Phone=Account.Phone##SalesforceContactrecordsarecreatedusingthechildnodesoftheAccount#containernodefromtheNexternalXMLresponse.#Contact/Name/LastName=Contact.LastNameContact/Name/FirstName=Contact.FirstNameContact/Mailing/Street=Contact.MailingStreetContact/Mailing/City=Contact.MailingCityContact/Mailing/State=Contact.MailingStateContact/Mailing/Zip=Contact.MailingPostalCodeContact/Mailing/Country=Contact.MailingCountryContact/Phone=Contact.PhoneContact/EMail=Contact.EmailContact/LeadSource=Contact.LeadSource#Opportunity/OpportunityID=Opportunity.NameOpportunity/CloseDate=Opportunity.CloseDateOpportunity/NextStep=Opportunity.NextStepOpportunity/StageName=Opportunity.StageNameOpportunity/Type=Opportunity.TypeOpportunity/LeadSource=Opportunity.LeadSource##ThedirectionsbelowapplytothefollowingsectionONLY.##Thevaluesforthenext8nodesarenormallycombinedintooneStringas#'key:value'pairsseparatedbylinefeedsandstoredintheOpportunity.#DescriptionfieldonSalesforce.Youcanchangeany(orall)ofthevalues#belowtostoretheXMLnodevalueinadifferent(orcustom)Salesforce#fieldwithintheOpportunityobject,andanyremainingnodesmappedto#Opportunity.DescriptionwillbecombinedintotheStringandstored.#Opportunity/OrderDate=Opportunity.DescriptionOpportunity/OrderNet=Opportunity.DescriptionOpportunity/Coupon=Opportunity.DescriptionOpportunity/Discount=Opportunity.Description
11/15/12
Page22of22
Opportunity/Tax=Opportunity.DescriptionOpportunity/Shipping=Opportunity.DescriptionOpportunity/Amount=Opportunity.DescriptionOpportunity/Comments=Opportunity.Description#OpportunityLineItem/Quantity=OpportunityLineItem.QuantityOpportunityLineItem/ServiceDate=OpportunityLineItem.ServiceDateOpportunityLineItem/UnitPrice=OpportunityLineItem.UnitPrice##ThedirectionsbelowapplytothefollowingsectionONLY.##Thevaluesforthenext3nodesarenormallycombinedintooneStringas#'key:value'pairsseparatedbylinefeedsandstoredintheOpportunityLineItem.#DescriptionfieldonSalesforce.Youcanchangeany(orall)ofthevalues#belowtostoretheXMLnodevalueinadifferent(orcustom)Salesforce#fieldwithintheOpportunityLineItemobject,andanyremainingnodesmappedto#OpportunityLineItem.DescriptionwillbecombinedintotheStringandstored.#OpportunityLineItem/LineItemID=OpportunityLineItem.DescriptionOpportunityLineItem/ShipTo=OpportunityLineItem.DescriptionOpportunityLineItem/TrackingNo=OpportunityLineItem.Description#Product2/ProductName=Product2.NameProduct2/ProductCode=Product2.ProductCodeProduct2/Family=Product2.Family##ThedirectionsbelowapplytothefollowingsectionONLY.##Thevaluesforthenext2nodesarenormallycombinedintooneStringas#'key:value'pairsseparatedbylinefeedsandstoredintheProduct2.#DescriptionfieldonSalesforce.Youcanchangeany(orall)ofthevalues#belowtostoretheXMLnodevalueinadifferent(orcustom)Salesforce#fieldwithintheProduct2object,andanyremainingnodesmappedto#Product2.DescriptionwillbecombinedintotheStringandstored.#Product2/Vendor=Product2.DescriptionProduct2/Description=Product2.Description##AdditionalConfigurationSettings:ContactyourNexternalAccountManagerbefore#enablinganyofthefollowingconfigurationvalues.##UseSKULevelCode=true##ENDOFPROPERTIES