Below is the info about the "CUSTOMER LIST ENDPOINT" for the CoreCommerce API.
The Request:
<?xml version="1.0" encoding="utf-8"?>
<Request version="1.0">
<Authentication>
<Username></Username>
<Password></Password>
<StoreName></StoreName>
<XmlKey></XmlKey>
</Authentication>
<Action>ACTION_TYPE_CUSTOMER_LIST</Action>
<Limit>1</Limit>
<Skip></Skip>
<SearchCriteria type="Search Criteria Type">
<Names>
<Name type="Address Types">
<First>Jack</First>
<Last>Shepherd</Last>
</Name>
<Name type="Address Types">
<First>Kate</First>
<Last>Austen</Last>
</Name>
</Names>
<Ids>
<Id>3</Id>
</Ids>
<CustomerStrings>
<CustomerString><![CDATA[5gfkom5489jrgeiun65yijntrg89gfbiun]]></CustomerString>
</CustomerStrings>
<Emails>
<Email><![CDATA[test@tester.com]]></Email>
</Emails>
</SearchCriteria>
</Request>
Below is a chart of the definitions of what is in the above request, and what each search term means:
Authentication and Fields
Name | Req | Example Value | Comments |
Username | Y | "admin" or "mystorename" | You create this value inside your admin under Settings->Store API. The value you set there inside your CoreCommerce Admin Panel is the value you use here. |
Password | Y | An alphanumeric string that is hard to guess (i.e. "MyPassWord1!") | You create this value inside your admin under Settings->Store API. The value you set there inside your CoreCommerce Admin Panel is the value you use here. |
XML Key | Y | A long string to further add to the security of your API connection (i.e. "FY3D57THY32HTC3748TRC38H74TR") | You create this value inside your admin under Settings->Store API. The value you set there inside your CoreCommerce Admin Panel is the value you use here. |
Action | Y | ACTION_TYPE_CUSTOMER_ADD | This is telling the API which endpoint you want to work with. In this case it is ACTION_TYPE_CUSTOMER_ADD |
Limit | Y | "1" "100" | This tells the API how many results to limit the response to. If you use 1 it will return a max of 1 customer based on the search criteria. If you use 100, it will return a max of 100 customers depending on the search criteria. |
Skip | Y | '10" "50" | This is whether you want the system to skip records or not in the response. Its like saying "skip the first 10" or "skip the first 50" |
SearchCriteria | "Exact" or "Like" | This is the opening node for what you want to search for. There are 2 "types" you can use for the search, "Exact" or "Like". Exact will try to find exact matches for what you pass in the request. Like will try to find "Like" matches. Where you see "Search Criteria Type" in the request, is where you would enter "Exact" or "Like". |
Search by Name:
Name | Req | Example Value | Comments |
Names | Opening Node for Name Search. You can search for multiple "names" by specifying a single Name node (see below) for each name you want to include in the search. | ||
Name | Opening Node for a single "First/Last Name" combo search | ||
FirstName | Y | "Joe" | The first name of the customer you want to search for |
LastName | Y | "Williams" | The last name of the customer you want to search for. |
Search by ID:
Name | Req | Example Value | Comments |
Ids | This is the opening Tag for an ID search. This is the database ID of the customer. If you know this ID you can search for it. You can also search for multiple ID's by specifying a different ID node for each ID. | ||
Id | "3" or "10" | This is for a single Customer ID to search by. Each node will search for that specific ID. |
Search by Customer String:
Name | Req | Example Value | Comments |
CustomerStrings | Opening Node for Customer String Search. You can search for multiple "customer strings" by specifying a single CustomerString node (see below) for each string you want to include in the search. | ||
CustomerString | f4589hg9843gh4h0842hg024gh02hg425 | Opening Node for a single Customer String value. The Customer String is the long encrypted value that represents that customer. It changes each time that customer logs in. If you know this value from the admin or from any exports you did, you can search by it. It can also be used in combo with other Endpoints. Example: You use the ORDER LIST ENDPOINT and get the Customer String back from which customer was tied to that order. Then you can use this Endpoint and do a list search for that specific customer string so you ensure you grab the details of the proper customer. |
Search by Customer Email Address:
Name | Req | Example Value | Comments |
Emails | Opening Node for Email Addressg Search. You can search for multiple email addresses by specifying a single Email node (see below) for each email you want to include in the search. | ||
f4589hg9843gh4h0842hg024gh02hg425 | Opening Node for a single Email Address value. |
The Response:
<?xml version="1.0" encoding="utf-8"?>
<Response>
<Status>Status Code List</Status>
<Code>Code List</Code>
<Message>Message List</Message>
<List length="1" possibleLength="100">
<Customer id="5">
<CustomerString><![CDATA[5gfkom5489jrgeiun65yijntrg89gfbiun]]></CustomerString>
<BillingSameAsShipping>Boolean Types</BillingSameAsShipping>
<Address>
<Company><![CDATA[Lost & Found Inc.]]></Company>
<FirstName><![CDATA[Jack]]></FirstName>
<LastName><![CDATA[Shepherd]]></LastName>
<Address1><![CDATA[144 SE Parkway]]></Address1>
<Address2><![CDATA[Ste 260]]></Address2>
<City><![CDATA[Franklin]]></City>
<State><![CDATA[TN]]></State>
<Zip><![CDATA[37064-7829]]></Zip>
<Country><![CDATA[US]]></Country>
<County><![CDATA[Williamson]]></County>
<Email><![CDATA[jack.shepherd@lostandfound.com]]></Email>
</Address>
<ShippingAddress>
<Company><![CDATA[Lost & Found Inc.]]></Company>
<FirstName><![CDATA[Kate]]></FirstName>
<LastName><![CDATA[Austen]]></LastName>
<Address1><![CDATA[144 SE Parkway]]></Address1>
<Address2><![CDATA[Suite 260]]></Address2>
<City><![CDATA[Franklin]]></City>
<State><![CDATA[TN]]></State>
<Zip><![CDATA[37064-7829]]></Zip>
<Country><![CDATA[US]]></Country>
<County><![CDATA[Williamson]]></County>
<Email><![CDATA[kate.austen@lostandfound.com]]></Email>
</ShippingAddress>
<CustomerGroupId>5</CustomerGroupId>
<Phone><![CDATA[615-555-1212]]></Phone>
<Fax><![CDATA[615-555-1234]]></Fax>
<InternalNumber><![CDATA[4x8y15z16a23b42]]></InternalNumber>
<HowHeardAbout><![CDATA[Our friend Jacob]]></HowHeardAbout>
<Password><![CDATA[abc123]]></Password>
<PasswordHint><![CDATA[abc+3]]></PasswordHint>
<Memo><![CDATA[Don't forget to include the first aid kit.]]></Memo>
<Created>
<UnixTimeStamp>1235156691</UnixTimeStamp>
<Day>20</Day>
<Month>02</Month>
<Year>2009</Year>
<Hour>13</Hour>
<Minute>04</Minute>
<Second>51</Second>
</Created>
<LastUpdated>
<UnixTimeStamp>1257793665</UnixTimeStamp>
<Day>09</Day>
<Month>11</Month>
<Year>2009</Year>
<Hour>13</Hour>
<Minute>07</Minute>
<Second>45</Second>
</LastUpdated>
<WholesaleDiscount><![CDATA[10]]></WholesaleDiscount>
<TaxExempt>Boolean Types</TaxExempt>
<FreeShipping>Boolean Types</FreeShipping>
<QuickbooksId><![CDATA[12345]]></QuickbooksId>
<QuickbooksExportId><![CDATA[12345]]></QuickbooksExportId>
<StoneEdgeExported>Boolean Types</StoneEdgeExported>
<RemoteCountry>US</RemoteCountry>
<CustomFields length="1">
<CustomField id="62">
<Name><![CDATA[Age]]></Name>
<Value><![CDATA[23]]></Value>
</CustomField>
</CustomFields>
<MailingLists length="1">
<MailingList id="1">
<Name><![CDATA[Beta Internal]]></Name>
<PublicName><![CDATA[Beta Public]]></PublicName>
</MailingList>
</MailingLists>
<Status>Customer Status List</Status>
<RewardPoints><![CDATA[15]]></RewardPoints>
<ReferAFriendCustomer id="2"></ReferAFriendCustomer>
</Customer>
</List>
</Response>
Name | Example Value | Comments |
Status | SUCCESS_CODE means it was successful. Anything other than this means it failed. | |
Code | "200" is a valid response and means it was successful and executed the request you made properly. Anything other than "200" means there was an error. | |
Messages | This will be the message from the API telling you what the issue was IF it failed. | |
List | This will show you the list of customers it successfully added. You will only see this IF you get a "200" success response code. | |
Customer | id="3" | This is the database ID of the customer |
CustomerString | 5gfkom5489jrgeiun65yijntrg89gfbiun | The Customer String of the customer. This changes each time the customer logs in or out of their account, but if you are doing combo API calls it can be helpful to make sure you have the exact customer you are wanting. |
BillingSameAsShipping | Y or N | Does this customer have it set to assume the Shipping Address and Billing Address match? Yes or No. |
Address | The Billing address of the customer | |
Company | Lost and Found Inc. | The Billing Company Name |
FirstName | Jack | The Billing First Name |
LastName | Shepard | The Billing Last Name |
Address1 | 144 SE Parkway | The Billing Address 1 |
Address2 | Suite 200 | The Billing Address 2 |
City | Franklin | The Billing City |
State | TN | The Billing State |
Zip | 37064 | The Billing Zip/Postal Code |
Country | US | The Billing Country |
County | Williamson | The Billing County |
jack@iamlost.com | Email Address | |
ShippingAddress | The Shipping address of the customer | |
Company | Lost and Found Inc. | The Shipping Company Name |
FirstName | Jack | The Shipping First Name |
LastName | Shepard | The Shipping Last Name |
Address1 | 144 SE Parkway | The Shipping Address 1 |
Address2 | Suite 200 | The Shipping Address 2 |
City | Franklin | The Shipping City |
State | TN | The Shipping State |
Zip | 37064 | The Shipping Zip/Postal Code |
Country | US | The Shipping Country |
County | Williamson | The Shipping County |
jack@iamlost.com | The Shipping Email Address | |
CustomerGroupId | 5 | The ID of the customer group this customer is tied to. You can view/manage Customer Groups in your admin to get these ID numbers. |
Phone | 615-790-0823 | The phone number of the customer |
Fax | 615-790-0824 | The fax number of the customer. |
InternalNumber | 12345 | The Internal Number of the Customer. For more info on what this field is for, see the "CUSTOMER ADD ENDPOINT DOCUMENTATION" |
HowHeardAbout | Web | The answer to "How did you hear about us?" for this customer. |
Password | password | The customer's password. |
Created | The next 6 lines within the created node will breakout the exact date and time the customer record was added into CoreCommerce. | |
UnixTimeStamp | 1235156691 | The Unix Timestamp |
Day | 20 | The Day the customer was created. |
Month | 02 | The Month the customer was created. |
Year | 2019 | The Year the customer was created. |
Hour | 13 | The hour the customer was created. |
Minute | 04 | The minute the customer was created. |
Second | 51 | The second the customer was created. |
LastUpdated | The next 6 lines within the lastUpdated node will breakout the exact date and time the customer record was last updated or changed within CoreCommerce. | |
UnixTimeStamp | 1235156691 | The Unix Timestamp |
Day | 20 | The Day the customer was last updated. |
Month | 02 | The Month the customer was last updated. |
Year | 2019 | The Year the customer was last updated. |
Hour | 13 | The hour the customer was last updated. |
Minute | 04 | The minute the customer was last updated. |
Second | 51 | The second the customer was last updated. |
WholesaleDisount | 10 | The percentage discount this customer gets. If they get none, this will say 0. |
TaxExempt | Y or N | If the customer is tax exempt, it will say Y, otherwise N. |
FreeShipping | Y or N | If the customer gets a Free Shipping option during checkout, this will say Y, otherwise N. |
QuickbooksID | 12345 | The Quickbooks ID of the customer. If you use our Quickbooks integration, this is where that ID comes from. |
QuickbooksExportID | 12345 | The Quickbooks Export ID of the customer. If is a different ID number and is also generated by Quickbooks. |
StoneEdgeExported | Y or N | Has the customer been exported to Stone Edge? If so, Y, otherwise, N. |
remoteCountry | US | The remote country. It will be a 2 letter abbreviation. |
Status | Active or Pending | The status of the customer. If you have the "Customer Approval" feature enabled, it can say either Active or Pending. Otherwise if that feature is disabled, it will always say Active. |
RewardPoints | 50 | The amount of reward points the customer has. |
ReferaFriendCustomer | If the customer has referred any other customers, it will tell you who here |
Custom Fields:
Name | Example Value | Comments |
CustomFields | length = "1" | The opening Node for Custom Fields that are saved for this customer. If there is more than 1, you will see that number defined as the "length". |
CustomField | 62 | The opening tag of the Custom Field Node for a single Custom Field. The "id" value is the database ID of the custom field answer for that customer. |
Name | Age | The name of the custom field. |
Value | 23 | The value of the custom field for that customer. |
Mailing Lists:
Name | Example Value | Comments |
MailingLists | length = "1" | The opening Node for Mailing List that are saved for this customer. If there is more than 1, you will see that number defined as the "length". |
MailingList | 1 | The opening tag of the Mailing List Node for a single Mailing List. The "id" value is the database ID of the mailing list this customer is part of. |
Name | VIPS | The name of the mailing list |
Value | Wholesale | The public name (nickname) of the mailing list, if you added one. |