How-to Guide - Soap API - CRM
Introduction
Search Customer
This service allows to get a list of customers matching the search criteria.
Request
Request Service Name
CRMCustomerDataService
Request Operation
searchCustomers
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
searchCustomers | Mandatory | Complex Type | The root request element. |
forename | Optional | Text Value Filter | A filter for 'Forename'. |
surname | Optional | Text Value Filter | A filter for 'Surname'. |
address | Optional | Text Value Filter | A filter for 'Address'. |
postcode | Optional | Text Value Filter | A filter for 'PostCode'. |
Optional | Text Value Filter | A filter for 'Email'. | |
phone | Optional | Text Value Filter | A filter for 'Phone'. |
panOrReversePan | Optional | Text Value Filter | A filter for 'Loyalty Number'. |
distinct | Optional | boolean | Whether to list distinct Customers or not. |
maxRows | Optional | int | Maximum number of items to return. |
orderByColumns | Optional | Complex Type (Multiple Entries) | Can be used to order the results using a given column. |
orderByColumns → core:propertyName | Optional | string | The column name to order the results by. |
orderByColumns → core:sortOrder | Optional | string | The sorting order 'ASCENDING' or 'DESCENDING'. |
pageInfo | Optional | Complex Type | Page information to be provided if results are required as a paginated list. |
pageInfo → core:rowOffset | Optional | int | The row offset required of the pagination. |
pageInfo → core:rowCount | Optional | int | The row count required of the pagination. |
suppressDefaultOrderBy | Optional | boolean | Whether to override the default ordering. |
Response
Response Headers
There are no response headers.
Response Body
The response would contain all the elements of the request body and in addition would contain the customersList element that contains the search results.
Element | Type | Description |
---|---|---|
customersList | Complex Type | A single element returned from the search with details of customers matching the search criteria. |
customerNumber | long | The customer number of the customer. |
customerTitle | string | The title of the customer. |
customerForename | string | The first name of the customer. |
customerSurname | string | The surname of the customer. |
addressStreet1 | string | The street address of the customer. |
addressStreet2 | string | The line 2 of the Street Address of the customer. |
addressStreet3 | string | The line 3 of the Street Address of the customer. |
addressTown | string | The town name of the customer's address. |
addressProvince | string | The province name of the customer's address. |
addressPostCode | string | The postcode of the customer's address. |
privacyLevel | int | The customer's privacy level. |
phoneNumber | string | The phone number of the customer. |
emailAddress | string | The email address of the customer. |
Request & Response Examples
Request
Customer search using Name, Postcode and Phone Number as Amelia, SG143AG and 0777906111 respectively:
Request
<retail:searchCustomers xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/crm">
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>500</core:maxRows>
<core:orderByColumns>
<core:propertyName>customerName.surname</core:propertyName>
<core:sortOrder>ASCENDING</core:sortOrder>
</core:orderByColumns>
<core:orderByColumns>
<core:propertyName>customerName.forename</core:propertyName>
<core:sortOrder>ASCENDING</core:sortOrder>
</core:orderByColumns>
<core:pageInfo>
<core:rowOffset>0</core:rowOffset>
<core:rowCount>8</core:rowCount>
<core:totalRowCountLimit>0</core:totalRowCountLimit>
</core:pageInfo>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:forename>
<core:id>Forename</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>true</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:valueRequired>false</core:valueRequired>
</retail:forename>
<retail:surname>
<core:id>Surname</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>true</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:valueRequired>false</core:valueRequired>
</retail:surname>
<retail:address>
<core:id>Address</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>true</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>true</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:address>
<retail:postcode xsi:type="core:FormattedPostcodeValueFilter">
<core:id>SearchPostCode</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>true</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">SG143AG</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:postcode>
<retail:email>
<core:id>Email</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:email>
<retail:panOrReversePan>
<core:filters>
<core:MatchTextValueFilter>
<core:id>Pan</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</core:MatchTextValueFilter>
<core:ReversePanFilter>
<core:id>ReversePan</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</core:ReversePanFilter>
</core:filters>
<core:orFilters>true</core:orFilters>
<core:forceApplicable>false</core:forceApplicable>
<core:id>PanOrReversePan</core:id>
<core:fuzzyLevel>4</core:fuzzyLevel>
</retail:panOrReversePan>
<retail:phone>
<core:id>Phone</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">0777906111</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:phone>
<retail:nameSearch>
<core:id>NameSearch</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>true</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Amelia</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:nameSearch>
</retail:criteria>
<retail:pageSize>8</retail:pageSize>
</retail:searchCustomers>
Response
Following is the response for above Search Customer request:
Response
<retail:searchCustomersResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns7="http://www.enactor.com/crm">
<retail:criteria>
<core:distinct>true</core:distinct>
<core:maxRows>500</core:maxRows>
<core:orderByColumns>
<core:propertyName>customerName.surname</core:propertyName>
<core:sortOrder>ASCENDING</core:sortOrder>
</core:orderByColumns>
<core:orderByColumns>
<core:propertyName>customerName.forename</core:propertyName>
<core:sortOrder>ASCENDING</core:sortOrder>
</core:orderByColumns>
<core:pageInfo>
<core:rowOffset>0</core:rowOffset>
<core:rowCount>8</core:rowCount>
<core:totalRowCountLimit>0</core:totalRowCountLimit>
</core:pageInfo>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:forename>
<core:id>Forename</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>true</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:valueRequired>false</core:valueRequired>
</retail:forename>
<retail:surname>
<core:id>Surname</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>true</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:valueRequired>false</core:valueRequired>
</retail:surname>
<retail:address>
<core:id>Address</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>true</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>true</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:address>
<retail:postcode xsi:type="core:FormattedPostcodeValueFilter">
<core:id>SearchPostCode</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>true</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">SG143AG</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:postcode>
<retail:email>
<core:id>Email</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:email>
<retail:panOrReversePan>
<core:filters>
<core:MatchTextValueFilter>
<core:id>Pan</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</core:MatchTextValueFilter>
<core:ReversePanFilter>
<core:id>ReversePan</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</core:ReversePanFilter>
</core:filters>
<core:orFilters>true</core:orFilters>
<core:forceApplicable>false</core:forceApplicable>
<core:id>PanOrReversePan</core:id>
<core:fuzzyLevel>4</core:fuzzyLevel>
</retail:panOrReversePan>
<retail:phone>
<core:id>Phone</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">0777906111</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:phone>
<retail:nameSearch>
<core:id>NameSearch</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>true</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:messageBaseName>CRM/CustomerMaintenanceMessages</core:messageBaseName>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>true</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">AMELIA</core:value>
</core:supportValues>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">AMELIA</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:nameSearch>
</retail:criteria>
<retail:customersList>
<core:currentPage>-1</core:currentPage>
<core:rowOffset>0</core:rowOffset>
<core:pageSize>8</core:pageSize>
<core:totalPages>-1</core:totalPages>
<core:totalRows>1</core:totalRows>
<retail:elements>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:customerTitle/>
<retail:customerForename>Amelia</retail:customerForename>
<retail:customerSurname>Baldwin</retail:customerSurname>
<retail:addressStreet1>137 Newport Road</retail:addressStreet1>
<retail:addressStreet2/>
<retail:addressStreet3/>
<retail:addressTown>Hertford</retail:addressTown>
<retail:addressProvince/>
<retail:addressPostCode>SG14 3AG</retail:addressPostCode>
<retail:pan>14420000</retail:pan>
<retail:privacyLevel>0</retail:privacyLevel>
<retail:phoneNumber>0777906111</retail:phoneNumber>
<retail:emailAddress>abaldwin@enactordata.co</retail:emailAddress>
<retail:countryCode>+44</retail:countryCode>
<retail:additionalData xsi:type="core:WrappedMap">
<core:mapImplClass>java.util.LinkedHashMap</core:mapImplClass>
</retail:additionalData>
</retail:element>
</retail:elements>
</retail:customersList>
</retail:searchCustomersResponse>
Load Customer Details
This service will load all the details of a customer.
Request
Request Service Name
CRMCustomerDataService
Request Operation
loadCRMCustomer
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
loadCustomer | Mandatory | Complex Type | The root request element. |
customerNumber | Mandatory | Long | The Customer number of the Customer to be loaded. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
customer | Complex Type | Object that contains the customer's details. |
addresses | Complex Type | Object that contains all the addresses of the requested customer. |
contactable | boolen | If set to true customer is contactable. |
noChildren | Int | Number of children of the requested customer. |
customerNumber | String | The unique number of the requested customer. |
emailAddresses | Complex Type | Object that contains all the email addresses of the requested customer. |
phoneNumbers | Complex Type | Object that contains all the phone numbers of the requested customer. |
customerName | Complex Type | Object that contains all the customer's name details of the requested customer. |
employeeKey | Complex Type | Object that contains all the employee related details of the requested customer. |
lastUpdated | DateTime | The last updated date and time of the requested customer. |
customerType | Complex Type | Object that contains all the customer type related details of the requested customer. |
createdBy | Complex Type | Object that contains the created by user's details of the requested customer. |
createdAt | Complex Type | Object that contains the created at user's details of the requested customer. |
status | String | The current status of the requested customer. |
Request & Response Examples
Request
Request to load customer details of the customer with the customer number 100:
<ns:loadCRMCustomer xmlns:ns="http://www.enactor.com/crm/service">
<retail:loadCustomer xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/crm">
<retail:customerNumber>100</retail:customerNumber>
</retail:loadCustomer>
</ns:loadCRMCustomer>
Response
Following is the response for above load customer details request:
Response
<ns:loadCRMCustomerResponse xmlns:ns="http://www.enactor.com/crm/service">
<retail:loadCustomerResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns7="http://www.enactor.com/crm">
<retail:customer>
<retail:addresses>
<retail:address>
<retail:country>United Kingdom</retail:country>
<retail:countryCodeId>GBR</retail:countryCodeId>
<retail:isPreferred>false</retail:isPreferred>
<retail:organisation>ENACTOR ON DEMAND LIMITED</retail:organisation>
<retail:isActive>true</retail:isActive>
<retail:typeId>ADDRESS_HOME</retail:typeId>
<retail:county>Hertfordshire County</retail:county>
<retail:postCode>SG141PB</retail:postCode>
<retail:street1>1 Bluecoats Avenue</retail:street1>
<retail:street2>SG14 1PB</retail:street2>
<retail:town>Hertford</retail:town>
<retail:isTemplate>false</retail:isTemplate>
<retail:referenceId/>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:addressReferenceId>da67-:a712f3c9391:054dea51-:aec93da5748c4f4b</retail:addressReferenceId>
</retail:address>
<retail:address>
<retail:country>United Kingdom</retail:country>
<retail:countryCodeId>GBR</retail:countryCodeId>
<retail:isPreferred>false</retail:isPreferred>
<retail:organisation>Enactor</retail:organisation>
<retail:isActive>true</retail:isActive>
<retail:typeId>ADDRESS_OTHER</retail:typeId>
<retail:county>Hertfordshire</retail:county>
<retail:postCode>SG141PB</retail:postCode>
<retail:street1>1 Enactor House</retail:street1>
<retail:street2>Bluecoats Avenue</retail:street2>
<retail:town>Hertford</retail:town>
<retail:isTemplate>false</retail:isTemplate>
<retail:referenceId/>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:addressReferenceId>b967-:a712f3c9391:054dea51-:aec93da5748c4f4b</retail:addressReferenceId>
</retail:address>
<retail:address>
<retail:country>United Kingdom</retail:country>
<retail:countryCodeId>GBR</retail:countryCodeId>
<retail:isPreferred>true</retail:isPreferred>
<retail:isActive>true</retail:isActive>
<retail:typeId>ADDRESS_WORK</retail:typeId>
<retail:county>Hertfordshire</retail:county>
<retail:postCode>SG14 3AG</retail:postCode>
<retail:street1>137 Newport Road</retail:street1>
<retail:town>Hertford</retail:town>
<retail:isTemplate>false</retail:isTemplate>
<retail:referenceId/>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:addressReferenceId>dc44-:84584e2d391:c2ff9b93-:ccd752587f6609fd</retail:addressReferenceId>
</retail:address>
<retail:address>
<retail:country>UK</retail:country>
<retail:countryCodeId/>
<retail:isPreferred>false</retail:isPreferred>
<retail:organisation>Enactor Limited</retail:organisation>
<retail:typeId>ADDRESS WORK</retail:typeId>
<retail:county>Hertfordshire</retail:county>
<retail:street1>1 Bluecoats Avenue</retail:street1>
<retail:town>Hertord</retail:town>
<retail:isTemplate>false</retail:isTemplate>
<retail:referenceId/>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:addressReferenceId>NBJURG3HWBEFNFBBWAJGSD75YM</retail:addressReferenceId>
</retail:address>
</retail:addresses>
<retail:contactMethod>METHOD_LETTER</retail:contactMethod>
<retail:contactMethodNotes/>
<retail:contactable>false</retail:contactable>
<retail:maritalStatus>Married</retail:maritalStatus>
<retail:nationality/>
<retail:noChildren>2</retail:noChildren>
<retail:customerNumber>100</retail:customerNumber>
<retail:emailAddresses>
<retail:emailAddress>abaldwin@enactordata.co</retail:emailAddress>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:preferred>true</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>EMAIL_HOME</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:emailAddressReferenceId>94e1:4b85c97d391:6220d735-:c5e90fac83025722</retail:emailAddressReferenceId>
</retail:emailAddresses>
<retail:phoneNumbers>
<retail:countryCode>+44</retail:countryCode>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:number>0777906111</retail:number>
<retail:preferred>true</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>PHONE_MOBILE</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:phoneNumberReferenceId>d6e7-:d7890f87391:22dd5251-:cb40bc388d5b2503</retail:phoneNumberReferenceId>
</retail:phoneNumbers>
<retail:phoneNumbers>
<retail:countryCode>+94</retail:countryCode>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:number>071 123 4567</retail:number>
<retail:preferred>false</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>PHONE_MOBILE</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:phoneNumberReferenceId>b7e7-:c5eda369391:6074cec5:3e557c56876c70ee</retail:phoneNumberReferenceId>
</retail:phoneNumbers>
<retail:phoneNumbers>
<retail:countryCode>+44</retail:countryCode>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:number>0741203066</retail:number>
<retail:preferred>false</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>PHONE_WORK</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:phoneNumberReferenceId>f0d7-:c5eda369391:6074cec5:3e557c56876c70ee</retail:phoneNumberReferenceId>
</retail:phoneNumbers>
<retail:phoneNumbers>
<retail:countryCode>+94</retail:countryCode>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:number>071 123 4567</retail:number>
<retail:preferred>false</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>PHONE_MOBILE</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:phoneNumberReferenceId>1c44-:84584e2d391:c2ff9b93-:ccd752587f6609fd</retail:phoneNumberReferenceId>
</retail:phoneNumbers>
<retail:customerName>
<retail:surname>Baldwin</retail:surname>
<retail:forename>Amelia</retail:forename>
</retail:customerName>
<retail:businessContactMethod>METHOD_EMAIL</retail:businessContactMethod>
<retail:preferredContactTime/>
<retail:employeeKey/>
<retail:lastUpdated>2025-01-31T08:10:24Z</retail:lastUpdated>
<retail:customerType/>
<retail:organisation/>
<retail:taxIdentification/>
<retail:companyNumber/>
<retail:createdBy/>
<retail:createdAt/>
<retail:status>Active</retail:status>
<retail:source/>
<retail:password/>
</retail:customer>
</retail:loadCustomerResponse>
</ns:loadCRMCustomerResponse>
Get Customer Details
This service will get all the basic details of a customer which includes personal details, contact details, jobs, loyalty details, customer groups and appointments.
Request
Request Service Name
CRMCustomerDataService
Request Operation
getCustomerDetails
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
getCustomerDetails | Mandatory | Complex Type | The root request element. |
deviceId | Optional | String | Device ID of the device which has requested the Customer details. |
userId | Mandatory | String | The User ID of the user who has requested the Customer details in the POS. |
CustomerNumber | Mandatory | String | The Customer Number for which details are required. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
contactMethodList | Complex Type | List of selected Contact Methods. |
contactMethodList → description | String | The description of the contact methods. Usually, the values will be: - In Store - Letter - Phone |
contactMethodList → type | String | The contact type of the communication preferences. Default is set to 'METHOD'. |
contactMethodList → contactTypeId | String | This is set according to the preference details: - METHOD_EMAIL - METHOD_IN_STORE - METHOD_LETTER - METHOD_PHONE |
CustomerCustomerGroupList | Complex Type | Details of the customer group that the customer is associated to. |
customerLoyaltyDetailResponse | Complex Type | Details of the loyalty details of the customer who has been retrieved. |
customerLoyaltyDetailResponse → accountId | String | The customer's Loyalty Account details. |
customerLoyaltyDetailResponse → customerNumber | Long | The customer number of the customer found. |
customerLoyaltyDetailResponse → lastTransactionDate | DateTime | The date of the last transaction that contained the customer loyalty account. |
customerLoyaltyDetailResponse → lastTransactionDesc | String | The description of the last transaction that contained the customer loyalty account. |
customerLoyaltyDetailResponse → lastTransactionValue | String | The value of the last transaction that contained the customer loyalty account. |
customerLoyaltyDetailResponse → rewardNumber | String | The loyalty card number of the selected customer. |
customerLoyaltyDetailResponse → accountStatusId | String | The Loyalty account status ID of the selected customer. Default values: - Active - New - Suspended - Closed Setting this value is not a POS functionality. |
customerLoyaltyDetailResponse → accountStatusDesc | String | The Loyalty account status description of the selected customer. Default values: - Active - New - Suspended - Closed Setting this value is not a POS functionality. The POS will only display the status which was saved from the EM. |
customerLoyaltyDetailResponse → rewardTier | String | The Loyalty Scheme Tier ID details will be displayed. This is based on the loyalty schema selection during loyalty customer creation. Not a POS CRM function; only displays created details. |
customerLoyaltyDetailResponse → rewardTierDesc | String | The Loyalty Scheme Tier Description will be displayed. This is based on the loyalty tier selection during loyalty customer creation. Not a POS CRM function; only displays created details. |
customerLoyaltyDetailResponse → redemptionBalance | Int | The redemption balance amount of the loyalty customer. |
customerLoyaltyDetailResponse → loyaltySchemeId | String | The Loyalty Scheme ID will be displayed. Based on loyalty schema selection during customer creation. Not a POS CRM function; only displays created details. |
customerLoyaltyDetailResponse → loyaltySchemeDesc | String | The Loyalty Scheme Description will be displayed. Based on loyalty tier selection during customer creation. Not a POS CRM function; only displays created details. |
latestContact | Complex Type | Not applicable to CRM POS Functions. |
latestContact → contactDate | DateTime | Not applicable to CRM POS Functions. |
latestContact → referenceId | String | Not applicable to CRM POS Functions. |
latestContact → referenceType | String | Not applicable to CRM POS Functions. |
latestContact → reasonId | String | Not applicable to CRM POS Functions. |
latestContact → reasonId → reasonId | String | Not applicable to CRM POS Functions. |
latestContact → reasonId → regionId | String | Not applicable to CRM POS Functions. |
latestContact → deviceId | String | Not applicable to CRM POS Functions. |
latestContact → locationId | String | Not applicable to CRM POS Functions. |
latestContact → subject | String | Not applicable to CRM POS Functions. |
latestContact → contactHistoryId | String | Not applicable to CRM POS Functions. |
latestContact → customerContactTypeId | String | Not applicable to CRM POS Functions. |
latestContact → customerId | String | Not applicable to CRM POS Functions. |
latestContact → description | String | Not applicable to CRM POS Functions. |
latestContact → lastUpdated | String | Not applicable to CRM POS Functions. |
latestContact → userId | String | Not applicable to CRM POS Functions. |
Request & Response Examples
Request
Request to get customer details of the customer with the customer number 100:
<retail:getCustomerDetails xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/crm">
<core:deviceId>pos10@0005.enactor</core:deviceId>
<core:userId>000101</core:userId>
<retail:customerNumber>100</retail:customerNumber>
</retail:getCustomerDetails>
Response
Following is the response for above get customer details request:
Response
<retail:getCustomerDetailsResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns7="http://www.enactor.com/crm">
<retail:contactMethodList>
<core:currentPage>-1</core:currentPage>
<core:rowOffset>0</core:rowOffset>
<core:pageSize>0</core:pageSize>
<core:totalPages>-1</core:totalPages>
<core:totalRows>-1</core:totalRows>
<retail:elements>
<retail:element>
<retail:description>Email</retail:description>
<retail:type>METHOD</retail:type>
<retail:contactTypeId>METHOD_EMAIL</retail:contactTypeId>
</retail:element>
<retail:element>
<retail:description>In Store</retail:description>
<retail:type>METHOD</retail:type>
<retail:contactTypeId>METHOD_IN_STORE</retail:contactTypeId>
</retail:element>
<retail:element>
<retail:description>Letter</retail:description>
<retail:type>METHOD</retail:type>
<retail:contactTypeId>METHOD_LETTER</retail:contactTypeId>
</retail:element>
<retail:element>
<retail:description>Phone</retail:description>
<retail:type>METHOD</retail:type>
<retail:contactTypeId>METHOD_PHONE</retail:contactTypeId>
</retail:element>
</retail:elements>
</retail:contactMethodList>
<retail:customerCustomerGroupList>
<core:currentPage>-1</core:currentPage>
<core:rowOffset>0</core:rowOffset>
<core:pageSize>0</core:pageSize>
<core:totalPages>-1</core:totalPages>
<core:totalRows>-1</core:totalRows>
<retail:elements>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:groupTypeId>customerGroup</retail:groupTypeId>
<retail:groupId>VIP</retail:groupId>
<retail:groupHierarchyId>CUSTOMER</retail:groupHierarchyId>
<retail:variantGroupTypeId>region</retail:variantGroupTypeId>
<retail:variantGroupId>All</retail:variantGroupId>
<retail:variantGroupHierarchyId>All</retail:variantGroupHierarchyId>
</retail:element>
</retail:elements>
</retail:customerCustomerGroupList>
<retail:customerLoyaltyDetailResponse>
<ns4:accountId>200</ns4:accountId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:lastTransactionDate>2025-02-12T16:46:43Z</ns4:lastTransactionDate>
<ns4:lastTransactionDesc>Laptops</ns4:lastTransactionDesc>
<ns4:lastTransactionValue>110500</ns4:lastTransactionValue>
<ns4:rewardNumber>14420000</ns4:rewardNumber>
<ns4:accountStatusId>ACTIVE</ns4:accountStatusId>
<ns4:accountStatusDesc>ACTIVE</ns4:accountStatusDesc>
<ns4:rewardTier>UK3</ns4:rewardTier>
<ns4:rewardTierDesc>Gold</ns4:rewardTierDesc>
<ns4:pointsBalance>75321</ns4:pointsBalance>
<ns4:redemptionBalance>15064200</ns4:redemptionBalance>
<ns4:pointsDate>2025-02-12T16:46:42Z</ns4:pointsDate>
<ns4:loyaltySchemeId>LOYALTY_UK</ns4:loyaltySchemeId>
<ns4:loyaltySchemeDesc>Loyalty Scheme UK</ns4:loyaltySchemeDesc>
</retail:customerLoyaltyDetailResponse>
<retail:latestAppointment>
<core:entryId>0597-:bcd164ca491:9432ce94:eadda0c3e23e3d67</core:entryId>
<core:subject>Test NOT Hide Diary View</core:subject>
<core:date>
<core:endTime second="0" minute="0" hour="9"/>
<core:recurrenceType>NONE</core:recurrenceType>
<core:startDate>2025-02-27T18:30:00Z</core:startDate>
<core:startTime second="0" minute="0" hour="8"/>
</core:date>
<core:type>customerAppointment</core:type>
<core:hidden>true</core:hidden>
<core:lastUpdated>2025-01-28T09:41:31Z</core:lastUpdated>
<core:dateTimeCreated>2025-01-28T09:41:31.382Z</core:dateTimeCreated>
<core:ownerId>000101</core:ownerId>
<core:details>Test NOT Hide Diary View - Description</core:details>
<core:contactTypeId>APPOINT_CUST_BUS</core:contactTypeId>
<core:customerId>100</core:customerId>
</retail:latestAppointment>
<retail:latestContact>
<retail:contactDate>2025-02-12T16:46:43Z</retail:contactDate>
<retail:referenceId/>
<retail:referenceType>RetailTransaction</retail:referenceType>
<retail:reasonId>
<retail:reasonId/>
<retail:regionId groupHierarchyId="" groupTypeId=""/>
</retail:reasonId>
<retail:deviceId>mpos_trunk@0001.enactor</retail:deviceId>
<retail:locationId>0001</retail:locationId>
<retail:subject>Normal Retail Sale Transaction</retail:subject>
<retail:contactHistoryId>d831-:a8ba1eaf491:c7dd2df7:9d7030a0425e7264</retail:contactHistoryId>
<retail:customerContactTypeId>STORE_SALE</retail:customerContactTypeId>
<retail:customerId>100</retail:customerId>
<retail:description>Normal Retail Sale Transaction</retail:description>
<retail:lastUpdated>2025-02-12T16:49:03Z</retail:lastUpdated>
<retail:userId>1</retail:userId>
</retail:latestContact>
</retail:getCustomerDetailsResponse>
Get Customer Relationships
This service will allow to load the relationship details of a customer.
Request Service Name
CRMCustomerDataService
Request Operation
getCustomerRelationships
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
getCustomerRelationships | Mandatory | Complex Type | The root request element. |
retail:criteria | Optional | Complex Type | A complex element with the Customer relationship details. |
Criteria → distinct | Optional | boolean | Whether to list distinct Customers or not. |
Criteria → maxRows | Optional | int | Maximum number of items to return. |
Criteria → suppressDefaultOrderBy | Optional | boolean | Whether to override the default ordering. |
Criteria → CustomerNumber | Optional | Complex Type | A complex element with the Customer Number details. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
CustomerNumber | Long | The Customer number of the Customer found. |
CustomerRelationshipEntry | Complex Type | A complex element with the Customer relationship details. |
CustomerRelationshipEntry → relatedCustomerNumber | String | The Customer number of the related Customer. |
CustomerRelationshipEntry → relatedCustomerTitle | String | The title of the related Customer. |
CustomerRelationshipEntry → relatedCustomerForename | String | The first name of the related Customer. |
CustomerRelationshipEntry → relatedCustomerSurname | String | The surname of the related Customer. |
CustomerRelationshipEntry → relationshipTypeId | String | Type of the relationship to the Customer, which will be one of the following: - Child - Marriage - Parent - Sibling |
CustomerRelationshipEntry → relationshipId | Not applicable to CRM POS Functions. |
Request & Response Examples
Request
Request to get customer relationship details of the customer with the customer number 100:
Request
<retail:getCustomerRelationships xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/addressLookup/service">
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:customerNumber xsi:type="core:TextValueFilter">
<core:ID>CustomerNumber</core:ID>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:customerNumber>
</retail:criteria>
</retail:getCustomerRelationships>
Response
Following is an example response for Get Customer Relationships request:
Response
<retail:getCustomerDetailsResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns7="http://www.enactor.com/crm">
<retail:contactMethodList>
<core:currentPage>-1</core:currentPage>
<core:rowOffset>0</core:rowOffset>
<core:pageSize>0</core:pageSize>
<core:totalPages>-1</core:totalPages>
<core:totalRows>-1</core:totalRows>
<retail:elements>
<retail:element>
<retail:description>Email</retail:description>
<retail:type>METHOD</retail:type>
<retail:contactTypeId>METHOD_EMAIL</retail:contactTypeId>
</retail:element>
<retail:element>
<retail:description>In Store</retail:description>
<retail:type>METHOD</retail:type>
<retail:contactTypeId>METHOD_IN_STORE</retail:contactTypeId>
</retail:element>
<retail:element>
<retail:description>Letter</retail:description>
<retail:type>METHOD</retail:type>
<retail:contactTypeId>METHOD_LETTER</retail:contactTypeId>
</retail:element>
<retail:element>
<retail:description>Phone</retail:description>
<retail:type>METHOD</retail:type>
<retail:contactTypeId>METHOD_PHONE</retail:contactTypeId>
</retail:element>
</retail:elements>
</retail:contactMethodList>
<retail:customerCustomerGroupList>
<core:currentPage>-1</core:currentPage>
<core:rowOffset>0</core:rowOffset>
<core:pageSize>0</core:pageSize>
<core:totalPages>-1</core:totalPages>
<core:totalRows>-1</core:totalRows>
<retail:elements>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:groupTypeId>customerGroup</retail:groupTypeId>
<retail:groupId>VIP</retail:groupId>
<retail:groupHierarchyId>CUSTOMER</retail:groupHierarchyId>
<retail:variantGroupTypeId>region</retail:variantGroupTypeId>
<retail:variantGroupId>All</retail:variantGroupId>
<retail:variantGroupHierarchyId>All</retail:variantGroupHierarchyId>
</retail:element>
</retail:elements>
</retail:customerCustomerGroupList>
<retail:customerLoyaltyDetailResponse>
<ns4:accountId>200</ns4:accountId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:lastTransactionDate>2025-02-12T16:46:43Z</ns4:lastTransactionDate>
<ns4:lastTransactionDesc>Laptops</ns4:lastTransactionDesc>
<ns4:lastTransactionValue>110500</ns4:lastTransactionValue>
<ns4:rewardNumber>14420000</ns4:rewardNumber>
<ns4:accountStatusId>ACTIVE</ns4:accountStatusId>
<ns4:accountStatusDesc>ACTIVE</ns4:accountStatusDesc>
<ns4:rewardTier>UK3</ns4:rewardTier>
<ns4:rewardTierDesc>Gold</ns4:rewardTierDesc>
<ns4:pointsBalance>75321</ns4:pointsBalance>
<ns4:redemptionBalance>15064200</ns4:redemptionBalance>
<ns4:pointsDate>2025-02-12T16:46:42Z</ns4:pointsDate>
<ns4:loyaltySchemeId>LOYALTY_UK</ns4:loyaltySchemeId>
<ns4:loyaltySchemeDesc>Loyalty Scheme UK</ns4:loyaltySchemeDesc>
</retail:customerLoyaltyDetailResponse>
<retail:latestAppointment>
<core:entryId>0597-:bcd164ca491:9432ce94:eadda0c3e23e3d67</core:entryId>
<core:subject>Test NOT Hide Diary View</core:subject>
<core:date>
<core:endTime second="0" minute="0" hour="9"/>
<core:recurrenceType>NONE</core:recurrenceType>
<core:startDate>2025-02-27T18:30:00Z</core:startDate>
<core:startTime second="0" minute="0" hour="8"/>
</core:date>
<core:type>customerAppointment</core:type>
<core:hidden>true</core:hidden>
<core:lastUpdated>2025-01-28T09:41:31Z</core:lastUpdated>
<core:dateTimeCreated>2025-01-28T09:41:31.382Z</core:dateTimeCreated>
<core:ownerId>000101</core:ownerId>
<core:details>Test NOT Hide Diary View - Description</core:details>
<core:contactTypeId>APPOINT_CUST_BUS</core:contactTypeId>
<core:customerId>100</core:customerId>
</retail:latestAppointment>
<retail:latestContact>
<retail:contactDate>2025-02-12T16:46:43Z</retail:contactDate>
<retail:referenceId/>
<retail:referenceType>RetailTransaction</retail:referenceType>
<retail:reasonId>
<retail:reasonId/>
<retail:regionId groupHierarchyId="" groupTypeId=""/>
</retail:reasonId>
<retail:deviceId>mpos_trunk@0001.enactor</retail:deviceId>
<retail:locationId>0001</retail:locationId>
<retail:subject>Normal Retail Sale Transaction</retail:subject>
<retail:contactHistoryId>d831-:a8ba1eaf491:c7dd2df7:9d7030a0425e7264</retail:contactHistoryId>
<retail:customerContactTypeId>STORE_SALE</retail:customerContactTypeId>
<retail:customerId>100</retail:customerId>
<retail:description>Normal Retail Sale Transaction</retail:description>
<retail:lastUpdated>2025-02-12T16:49:03Z</retail:lastUpdated>
<retail:userId>1</retail:userId>
</retail:latestContact>
</retail:getCustomerDetailsResponse>
Save Customer Relationships
This service allows saving the relationship details of a customer.
Request Service Name
CRMCustomerDataService
Request Operation
saveCustomerRelationships
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
user | Complex Type | Contains user entity details of the requesting user. | |
entity | Complex Type | Contains address, customerId, name, related customer, relationshipId and relationshipTypeId details of the new entity to be saved as the new relationship. | |
entity → address | Complex Type | Set of addresses of the Customer. | |
entity → customerId | Complex Type | Contains the ID of the customer. | |
entity → name | Complex Type | Contains customer name related details. | |
entity → relatedCustomerKey | Complex Type | Contains the ID of the related customer whose relationship is to be changed. | |
entity → relationshipId | String | Not applicable to CRM POS Functions. | |
entity → relationshipTypeId | Complex Type | Type of the relationship to the Customer, which will be one of the following: - Child - Marriage - Parent - Sibling | |
noPop | N/A | Not applicable to CRM POS Functions. | |
deviceKey | N/A | Not applicable to CRM POS Functions. | |
locationKey | N/A | Not applicable to CRM POS Functions. | |
lacale | N/A | Not applicable to CRM POS Functions. | |
lacale → language | N/A | Not applicable to CRM POS Functions. | |
lacale → country | N/A | Not applicable to CRM POS Functions. | |
lacale → variant | N/A | Not applicable to CRM POS Functions. | |
lacale → description | N/A | Not applicable to CRM POS Functions. | |
lacale → lastUpdated | N/A | Not applicable to CRM POS Functions. | |
isNewRelationship | Boolean | False if this is an update of an existing relationship, else true for a new relationship. | |
updateTime | DateTime | Time that the relationship is saved. | |
oldEntity | Complex Type | Contains address, customerId, name, related customer, relationshipId and relationshipTypeId details of the old entity before saving new relationship. | |
oldEntity → address | Complex Type | Set of addresses of the Customer. | |
oldEntity → customerId | Complex Type | Contains the ID of the customer. | |
oldEntity → name | Complex Type | Contains customer name related details. | |
oldEntity → relatedCustomerKey | Complex Type | Contains the ID of the related customer whose relationship is to be changed. | |
oldEntity → relationshipId | String | Not applicable to CRM POS Functions. | |
oldEntity → relationshipTypeId | Complex Type | Type of the relationship to the Customer, which will be one of the following: - Child - Marriage - Parent - Sibling |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
entity | Complex Type | Contains address, customerId, name, related customer, relationshipId and relationshipTypeId details of the new entity saved as the new relationship. |
entity → address | Complex Type | Set of addresses of the Customer. |
entity → customerId | Complex Type | Contains the ID of the customer. |
entity → lastUpdated | DateTime | Date time that the relationship is saved. |
entity → name | Complex Type | Contains customer name related details. |
entity → relatedCustomerKey | Complex Type | Contains the ID of the related customer whose relationship is to be changed. |
entity → relationshipId | String | Not applicable to CRM POS Functions. |
entity → relationshipTypeId | Complex Type | Type of the relationship to the Customer, which will be one of the following: - Child - Marriage - Parent - Sibling |
Request & Response Examples
Request
Request to save customer relationship details of the customer 100 as spouse of customer 101:
Request
<retail:saveCustomerRelationship xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/crm">
<retail:user>
<retail:dateTimeActivated>2021-05-18T01:00:42+05:30</retail:dateTimeActivated>
<retail:displayName>Hertford Manager</retail:displayName>
<retail:employeeId/>
<retail:localeId variant="" country="GB">en</retail:localeId>
<retail:locationId>0001</retail:locationId>
<retail:password>lNBrhb6ALqsxA3DWMAe/zgW5cy6o+8TEXeU2oY2G0rQ=lQ4KSvqYhYk=</retail:password>
<retail:passwordLastChanged>2024-11-21T14:59:50.373+05:30</retail:passwordLastChanged>
<retail:forceChangePassword>false</retail:forceChangePassword>
<retail:strongPassword>false</retail:strongPassword>
<retail:previousPasswords>
<retail:password>oqW83Innq91Uiz9c3RcjpvvNMNd84Qg9ZeYZ5nwVxX4=r5XlmzAySDw=</retail:password>
</retail:previousPasswords>
<retail:shortId>00010100</retail:shortId>
<retail:address>
<retail:countryCodeId/>
<retail:typeId/>
<retail:isTemplate>false</retail:isTemplate>
</retail:address>
<retail:userId>000101</retail:userId>
<retail:userName>
<retail:surname>Hertford Manager</retail:surname>
<retail:forename>000101</retail:forename>
<retail:initials>JS</retail:initials>
<retail:dateOfBirth>1966-03-13T05:30:00+05:30</retail:dateOfBirth>
</retail:userName>
<retail:teamId>TEAM</retail:teamId>
<retail:timePeriod>
<core:dayOfWeek>1</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>2</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>3</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>4</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>5</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>6</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>7</core:dayOfWeek>
</retail:timePeriod>
<retail:singleSignOnUserId/>
<retail:singleSignOnCommonName/>
<retail:lastUpdated>2024-12-20T13:30:22.904+05:30</retail:lastUpdated>
<retail:fiscalUserReference/>
<retail:templateKey>STORE_MANAGER_UK</retail:templateKey>
<retail:isTemplate>false</retail:isTemplate>
<retail:emailAccountName>enactor.test@gmail.com</retail:emailAccountName>
<retail:emailAddress>enactor.test@gmail.com</retail:emailAddress>
<retail:emailEncryptedPassword>smG+rsrfBuKrdaJPv30rhg==</retail:emailEncryptedPassword>
</retail:user>
<retail:entity>
<retail:address>
<retail:countryCodeId/>
<retail:typeId/>
<retail:isTemplate>false</retail:isTemplate>
</retail:address>
<retail:customerId>100</retail:customerId>
<retail:name>
<retail:surname>Dobson</retail:surname>
<retail:forename>Benjamin</retail:forename>
<retail:initials>BD</retail:initials>
<retail:title>Mr</retail:title>
<retail:sex>MALE</retail:sex>
</retail:name>
<retail:relatedCustomerKey>101</retail:relatedCustomerKey>
<retail:relationshipId>19c2:32c94b68491:9244576:05cf6bdd1a6304b1</retail:relationshipId>
<retail:relationshipTypeId>MARRIAGE</retail:relationshipTypeId>
</retail:entity>
<retail:noPop>false</retail:noPop>
<retail:deviceKey>pos10@0005.enactor</retail:deviceKey>
<retail:locationKey>0005</retail:locationKey>
<retail:lacale>
<core:language>en</core:language>
<core:country>GB</core:country>
<core:variant/>
<core:description>English (UK)</core:description>
<core:lastUpdated>2024-10-01T15:02:33.703+05:30</core:lastUpdated>
</retail:lacale>
<retail:isNewRelationship>false</retail:isNewRelationship>
<retail:updateTime>2025-02-13T15:21:20.391+05:30</retail:updateTime>
<retail:oldEntity>
<retail:address>
<retail:countryCodeId/>
<retail:typeId/>
<retail:isTemplate>false</retail:isTemplate>
</retail:address>
<retail:customerId>100</retail:customerId>
<retail:name>
<retail:surname>Dobson</retail:surname>
<retail:forename>Benjamin</retail:forename>
<retail:title>Mr</retail:title>
</retail:name>
<retail:relatedCustomerKey>101</retail:relatedCustomerKey>
<retail:relationshipId>19c2:32c94b68491:9244576:05cf6bdd1a6304b1</retail:relationshipId>
<retail:relationshipTypeId/>
</retail:oldEntity>
</retail:saveCustomerRelationship>
Response
Following is an example response for Save Customer Relationships request where customer 100 is saved as a spouse of customer 101:
Response
<retail:saveCustomerRelationshipResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns7="http://www.enactor.com/crm">
<retail:entity>
<retail:address>
<retail:countryCodeId/>
<retail:typeId/>
<retail:isTemplate>false</retail:isTemplate>
</retail:address>
<retail:customerId>100</retail:customerId>
<retail:lastUpdated>2025-02-13T09:51:22Z</retail:lastUpdated>
<retail:name>
<retail:surname>Dobson</retail:surname>
<retail:forename>Benjamin</retail:forename>
<retail:initials>BD</retail:initials>
<retail:title>Mr</retail:title>
<retail:sex>MALE</retail:sex>
</retail:name>
<retail:relatedCustomerKey>101</retail:relatedCustomerKey>
<retail:relationshipId>19c2:32c94b68491:9244576:05cf6bdd1a6304b1</retail:relationshipId>
<retail:relationshipTypeId>MARRIAGE</retail:relationshipTypeId>
</retail:entity>
</retail:saveCustomerRelationshipResponse>
Get Affiliated Customer
This service will get all the details of the affiliated customers associated to the requested user.
Request
Request Service Name
CustomerService
Request Operation
getAffiliatedCustomer
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CustomerService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
userKey | Mandatory | Complex Type | Contains the ID of the POS user. |
criteria | Optional | Complex Type | Contains filter criteria options. |
criteria → suppressDefaultOrderBy | Optional | boolean | Whether to override the default ordering. |
criteria → maxRows | Optional | int | Maximum number of rows to return. |
criteria → distinct | Optional | boolean | Whether to return only the distinct values. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
list | Complex Type | Provides a list of the customers affiliated with the requested user. |
propertyNames | Complex Type | The names of the properties that are part of the response. |
Request & Response Examples
Request
Request to get affiliated customer details of the user with the user ID of 000101:
<retail:getAffiliatedCustomer xmlns:retail="http://www.enactor.com/retail" xmlns:ns4="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core">
<retail:userKey>000101</retail:userKey>
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
</retail:criteria>
</retail:getAffiliatedCustomer>
Response
Following is an example response for Get Affiliated Customer request:
Response
<retail:getAffiliatedCustomerResponse xmlns:retail="http://www.enactor.com/retail" xmlns:ns6="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core">
<retail:list>
<core:key xsi:type="retail:CustomerKey">100</core:key>
<core:data>
<core:values>
<core:arrayObject xsi:type="core:WrappedPrimitive">
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</core:value>
</core:arrayObject>
<core:arrayObject xsi:type="core:WrappedNull"/>
<core:arrayObject xsi:type="core:WrappedPrimitive">
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">true</core:value>
</core:arrayObject>
<core:arrayObject xsi:type="core:String"/>
<core:arrayObject xsi:type="core:String">DIRECT</core:arrayObject>
<core:arrayObject xsi:type="core:String">100</core:arrayObject>
<core:arrayObject xsi:type="core:WrappedNull"/>
<core:arrayObject xsi:type="core:String">Amelia</core:arrayObject>
<core:arrayObject xsi:type="core:String">Baldwin</core:arrayObject>
<core:arrayObject xsi:type="core:String">14420000</core:arrayObject>
</core:values>
</core:data>
<retail:data>
<entry>
<key>Temporary</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</value>
</entry>
<entry>
<key>ReplacedUserID</key>
</entry>
<entry>
<key>Primary</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">true</value>
</entry>
<entry>
<key>customerName.title</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</entry>
<entry>
<key>Method</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">DIRECT</value>
</entry>
<entry>
<key>customerNumber</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</value>
</entry>
<entry>
<key>TeamID</key>
</entry>
<entry>
<key>customerName.forename</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Amelia</value>
</entry>
<entry>
<key>customerName.surname</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Baldwin</value>
</entry>
<entry>
<key>LoyaltyPAN</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">14420000</value>
</entry>
</retail:data>
</retail:list>
<retail:list>
<core:key xsi:type="retail:CustomerKey">100</core:key>
<core:data>
<core:values>
<core:arrayObject xsi:type="core:WrappedPrimitive">
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</core:value>
</core:arrayObject>
<core:arrayObject xsi:type="core:WrappedNull"/>
<core:arrayObject xsi:type="core:WrappedPrimitive">
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">true</core:value>
</core:arrayObject>
<core:arrayObject xsi:type="core:String"/>
<core:arrayObject xsi:type="core:String">DIRECT</core:arrayObject>
<core:arrayObject xsi:type="core:String">100</core:arrayObject>
<core:arrayObject xsi:type="core:WrappedNull"/>
<core:arrayObject xsi:type="core:String">Amelia</core:arrayObject>
<core:arrayObject xsi:type="core:String">Baldwin</core:arrayObject>
<core:arrayObject xsi:type="core:String">14421001</core:arrayObject>
</core:values>
</core:data>
<retail:data>
<entry>
<key>Temporary</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</value>
</entry>
<entry>
<key>ReplacedUserID</key>
</entry>
<entry>
<key>Primary</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">true</value>
</entry>
<entry>
<key>customerName.title</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</entry>
<entry>
<key>Method</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">DIRECT</value>
</entry>
<entry>
<key>customerNumber</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</value>
</entry>
<entry>
<key>TeamID</key>
</entry>
<entry>
<key>customerName.forename</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Amelia</value>
</entry>
<entry>
<key>customerName.surname</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Baldwin</value>
</entry>
<entry>
<key>LoyaltyPAN</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">14421001</value>
</entry>
</retail:data>
</retail:list>
<retail:list>
<core:key xsi:type="retail:CustomerKey">100</core:key>
<core:data>
<core:values>
<core:arrayObject xsi:type="core:WrappedPrimitive">
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</core:value>
</core:arrayObject>
<core:arrayObject xsi:type="core:WrappedNull"/>
<core:arrayObject xsi:type="core:WrappedPrimitive">
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</core:value>
</core:arrayObject>
<core:arrayObject xsi:type="core:String"/>
<core:arrayObject xsi:type="core:String">TEAM</core:arrayObject>
<core:arrayObject xsi:type="core:String">100</core:arrayObject>
<core:arrayObject xsi:type="core:String">TEAM</core:arrayObject>
<core:arrayObject xsi:type="core:String">Amelia</core:arrayObject>
<core:arrayObject xsi:type="core:String">Baldwin</core:arrayObject>
<core:arrayObject xsi:type="core:String">14420000</core:arrayObject>
</core:values>
</core:data>
<retail:data>
<entry>
<key>Temporary</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</value>
</entry>
<entry>
<key>ReplacedUserID</key>
</entry>
<entry>
<key>Primary</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</value>
</entry>
<entry>
<key>customerName.title</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</entry>
<entry>
<key>Method</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">TEAM</value>
</entry>
<entry>
<key>customerNumber</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</value>
</entry>
<entry>
<key>TeamID</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">TEAM</value>
</entry>
<entry>
<key>customerName.forename</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Amelia</value>
</entry>
<entry>
<key>customerName.surname</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Baldwin</value>
</entry>
<entry>
<key>LoyaltyPAN</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">14420000</value>
</entry>
</retail:data>
</retail:list>
<retail:list>
<core:key xsi:type="retail:CustomerKey">100</core:key>
<core:data>
<core:values>
<core:arrayObject xsi:type="core:WrappedPrimitive">
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</core:value>
</core:arrayObject>
<core:arrayObject xsi:type="core:WrappedNull"/>
<core:arrayObject xsi:type="core:WrappedPrimitive">
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</core:value>
</core:arrayObject>
<core:arrayObject xsi:type="core:String"/>
<core:arrayObject xsi:type="core:String">TEAM</core:arrayObject>
<core:arrayObject xsi:type="core:String">100</core:arrayObject>
<core:arrayObject xsi:type="core:String">TEAM</core:arrayObject>
<core:arrayObject xsi:type="core:String">Amelia</core:arrayObject>
<core:arrayObject xsi:type="core:String">Baldwin</core:arrayObject>
<core:arrayObject xsi:type="core:String">14421001</core:arrayObject>
</core:values>
</core:data>
<retail:data>
<entry>
<key>Temporary</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</value>
</entry>
<entry>
<key>ReplacedUserID</key>
</entry>
<entry>
<key>Primary</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:boolean">false</value>
</entry>
<entry>
<key>customerName.title</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</entry>
<entry>
<key>Method</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">TEAM</value>
</entry>
<entry>
<key>customerNumber</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</value>
</entry>
<entry>
<key>TeamID</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">TEAM</value>
</entry>
<entry>
<key>customerName.forename</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Amelia</value>
</entry>
<entry>
<key>customerName.surname</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Baldwin</value>
</entry>
<entry>
<key>LoyaltyPAN</key>
<value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">14421001</value>
</entry>
</retail:data>
</retail:list>
<retail:propertyNames>customerNumber</retail:propertyNames>
<retail:propertyNames>customerName.title</retail:propertyNames>
<retail:propertyNames>customerName.forename</retail:propertyNames>
<retail:propertyNames>customerName.surname</retail:propertyNames>
<retail:propertyNames>Primary</retail:propertyNames>
<retail:propertyNames>Method</retail:propertyNames>
<retail:propertyNames>TeamID</retail:propertyNames>
<retail:propertyNames>Temporary</retail:propertyNames>
<retail:propertyNames>ReplacedUserID</retail:propertyNames>
<retail:propertyNames>LoyaltyPAN</retail:propertyNames>
</retail:getAffiliatedCustomerResponse>
Get Address Book
This service retrieves the basic details of a customer which includes personal details, contact details, jobs, loyalty details, customer groups and appointments.
Request
Request Service Name
CRMCustomerDataService
Request Operation
getAddressBook
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
criteria | Optional | Complex Type | Contains the filter criteria of forename, surname, and email address. |
criteria → foreName | Optional | Complex Type | Contains forename related search properties. |
criteria → surName | Optional | Complex Type | Contains surname related search properties. |
criteria → emailAddress | Optional | Complex Type | Contains email address related search properties. |
id | Optional | String | Not applicable to CRM POS Functions. |
forceApplicable | Optional | boolean | Not applicable to CRM POS Functions. |
orColumns | Optional | boolean | Not applicable to CRM POS Functions. |
comparisonOperator | Optional | String | The operator used to compare the fields. Following is the list of possible values: - EQUALS - NOT_EQUALS - GREATER_THAN - LESS_THAN - GREATER_THAN_OR_EQUALS - LESS_THAN_OR_EQUALS - STARTS_WITH - CONTAINS - IN - NOT_IN |
orNull | Optional | boolean | Not applicable to CRM POS Functions. |
width | Optional | Int | Not applicable to CRM POS Functions. (Max length - 20) |
useValueForAllProperties | Optional | boolean | Not applicable to CRM POS Functions. |
caseInsensitive | Optional | boolean | Not applicable to CRM POS Functions. |
submitOnChange | Optional | boolean | Not applicable to CRM POS Functions. |
disabled | Optional | boolean | Not applicable to CRM POS Functions. |
hidden | Optional | boolean | Not applicable to CRM POS Functions. |
fuzzyLevel | Optional | Int | Not applicable to CRM POS Functions. (Max length - 4) |
customQueryFilter | Optional | boolean | Not applicable to CRM POS Functions. |
defaultValue | Optional | Object | Not applicable to CRM POS Functions. |
supportValues | Optional | Complex Type | The values to be passed in for comparison. |
criteria → suppressDefaultOrderBy | Optional | boolean | Whether to override the default ordering. |
criteria → maxRows | Optional | int | Maximum number of rows to return. |
criteria → distinct | Optional | boolean | Whether to return only the distinct values. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
addressBookItemList | Complex Type | List of address book item results as requested. |
addressBookItemList → entryId | String | Unique of the address book entry. |
addressBookItemList → forename | String | Forename of the address book entry. |
addressBookItemList → surname | String | Surname of the address book entry. |
addressBookItemList → emailAddress | String | Email address of the address book entry. |
Request & Response Examples
Request
Request to get address book details of the first name search as 'Amelia':
Request
<retail:getAddressBook xmlns:retail="http://www.enactor.com/retail" xmlns:ns4="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core">
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:foreName>
<core:id>Forename</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">Amelia</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:foreName>
<retail:surName>
<core:id>Surname</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:surName>
<retail:emailAddress xsi:type="core:MatchTextValueFilter">
<core:id>EmailAddress</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"/>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:emailAddress>
</retail:criteria>
</retail:getAddressBook>
Response
Following is an example response to Get Address Book for forename of 'Amelia' request:
<retail:getAddressBookResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns4="http://www.enactor.com/crm">
<addressBookItemList>
<entryId>d6b1:f16f312b291:dba443f5:f788641c17748768</entryId>
<foreName>Amelia</foreName>
<surName>Baldwin</surName>
<emailAddress>abaldwin@enactordata.co</emailAddress>
</addressBookItemList>
</retail:getAddressBookResponse>
Contact History Search
This request is used to get the list of contact history information between a particular Customer and the operator.
Request
Request Service Name
ContactHistoryService
Request Operation
contactHistorySearch
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/ContactHistoryService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
contactHistorySearch | Mandatory | Complex Type | The root request element. |
contactHistorySearch → criteria | Optional | Complex Type | The search criteria used in the request. |
contactHistorySearch → criteria → distinct | Optional | boolean | Whether to return only the distinct values. |
contactHistorySearch → criteria → maxRows | Optional | int | Maximum number of rows to return. |
contactHistorySearch → criteria → pageInfo | Optional | Complex Type | Page information to be provided if results are required as a paginated list. |
contactHistorySearch → criteria → pageInfo → rowOffset | Optional | int | The row offset required of the pagination. |
contactHistorySearch → criteria → pageInfo → rowCount | Optional | int | The row count required of the pagination. |
contactHistorySearch → criteria → pageInfo → totalRowCountLimit | Optional | int | The row limit count required per page. |
contactHistorySearch → criteria → suppressDefaultOrderBy | Optional | boolean | Whether to override the default ordering. |
contactHistorySearch → criteria → CustomerNumber | Optional | long | The Customer number of the customer history that needs to be found. |
contactHistorySearch → criteria → CustomerNumber → id | Optional | long | The ID of the Customer this history belongs to. |
contactHistorySearch → criteria → CustomerNumber → forceApplicable | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → orColumns | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → comparisonOperator | Optional | String | The operator used to compare the fields. Default is EQUALS for POS. Possible values: EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUALS, LESS_THAN_OR_EQUALS, STARTS_WITH, CONTAINS, IN, NOT_IN. |
contactHistorySearch → criteria → CustomerNumber → orNull | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → width | Optional | Int (Max length - 20) | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → useValueForAllProperties | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → caseInsensitive | Optional | boolean | Whether the comparisons should be case insensitive. Default is false. |
contactHistorySearch → criteria → CustomerNumber → submitOnChange | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → disabled | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → hidden | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → fuzzyLevel | Optional | Int (Max length - 4) | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → customQueryFilter | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → defaultValue | Optional | Object | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → CustomerNumber → supportValues | Optional | Complex Type | The values to be passed in for comparison. |
contactHistorySearch → criteria → CustomerNumber → valueRequired | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId | Optional | string | The user ID of the user who is requesting the Customer history. |
contactHistorySearch → criteria → userId → id | Optional | String | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → forceApplicable | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → orColumns | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → comparisonOperator | Optional | String | The operator used to compare the fields. Possible values: EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUALS, LESS_THAN_OR_EQUALS, STARTS_WITH, CONTAINS, IN, NOT_IN. |
contactHistorySearch → criteria → userId → orNull | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → width | Optional | Int (Max length - 20) | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → useValueForAllProperties | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → caseInsensitive | Optional | boolean | Whether the comparisons should be case insensitive. Default is false. |
contactHistorySearch → criteria → userId → submitOnChange | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → disabled | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → hidden | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → fuzzyLevel | Optional | Int (Max length - 4) | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → customQueryFilter | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → userId → valueRequired | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → <retail:contactTypeId xsi:type="core:TextValueFilter"> | Optional | Not applicable to CRM POS Functions. | |
contactHistorySearch → criteria → id | Optional | Not applicable to CRM POS Functions. | |
contactHistorySearch → criteria → forceApplicable | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → orColumns | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → comparisonOperator | Optional | String | The operator used to compare the fields. Possible values: EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUALS, LESS_THAN_OR_EQUALS, STARTS_WITH, CONTAINS, IN, NOT_IN. |
contactHistorySearch → criteria → orNull | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → width | Optional | Int (Max length - 20) | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → contactHistorySearch → criteria → useValueForAllProperties | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → caseInsensitive | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → submitOnChange | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → disabled | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → hidden | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → fuzzyLevel | Optional | Int (Max length - 4) | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → customQueryFilter | Optional | boolean | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → defaultValue | Optional | Object | Not applicable to CRM POS Functions. |
contactHistorySearch → criteria → supportValues | Optional | Complex Type | The values to be passed in for comparison. |
contactHistorySearch → criteria → valueRequired | Optional | boolean | Not applicable to CRM POS Functions. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
contactHistorySearchResponse | Complex Type | The list details of the transaction history for the searched criteria |
contactHistorySearchResponse → contactHistoryItem | Not applicable to CRM POS Functions. | |
contactHistorySearchResponse → contactHistoryItem → contactRef | Not applicable to CRM POS Functions. | |
contactHistorySearchResponse → contactHistoryItem → contactRefType | Not applicable to CRM POS Functions. | |
contactHistorySearchResponse → contactHistoryItem → subject | Not applicable to CRM POS Functions. | |
contactHistorySearchResponse → contactHistoryItem → typeId | String | Not applicable to CRM POS Functions. |
contactHistorySearchResponse → contactHistoryItem → contactDate | DateTime | The details of the date and time that the history belongs to. |
contactHistorySearchResponse → contactHistoryItem → userId | string | The user ID of the user who is requesting the Customer history. |
contactHistorySearchResponse → contactHistoryItem → CustomerNumber | long | The Customer number the history belongs to. |
contactHistorySearchResponse → contactHistoryItem → CustomerForename | string | The first name of the Customer. |
contactHistorySearchResponse → contactHistoryItem → CustomerSurname | string | The surname of the Customer. |
contactHistorySearchResponse → contactHistoryItem → CustomerContactHistoryId | N/A | Not applicable to CRM POS Functions. |
Request & Response Examples
Request
Request for Contact History Search for customer with the customer ID 100:
Request
<ns4:contactHistorySearch xmlns:ns4="http://www.enactor.com/crm" xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core">
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:pageInfo>
<core:rowOffset>0</core:rowOffset>
<core:rowCount>10</core:rowCount>
<core:totalRowCountLimit>0</core:totalRowCountLimit>
</core:pageInfo>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:customerNumber>
<core:id>CustomerNumber</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>STARTS_WITH</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:customerNumber>
<retail:userId>
<core:id>UserId</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:valueRequired>false</core:valueRequired>
</retail:userId>
<retail:contactTypeId xsi:type="core:TextValueFilter">
<core:id>ContactTypeId</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>NOT_EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">STORE_SALE</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">STORE_SALE</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:contactTypeId>
</retail:criteria>
</ns4:contactHistorySearch>
Response
Following is an example response for Contact History Search request:
Response
<ns4:contactHistorySearchResponse xmlns:ns4="http://www.enactor.com/crm" xmlns:ns6="http://www.enactor.com/addressLookup/service" xmlns:core="http://www.enactor.com/core" xmlns:retail="http://www.enactor.com/retail">
<ns4:contactHistoryItem>
<ns4:contactRef/>
<ns4:contactRefType>RetailTransaction</ns4:contactRefType>
<ns4:subject>Normal Retail Sale Transaction</ns4:subject>
<ns4:typeId>LOYALTY_REGISTRATION</ns4:typeId>
<ns4:contactDate>2025-02-14T10:06:41Z</ns4:contactDate>
<ns4:userId>000101</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>61c7:52d70c11591:cf573e:6cce51a64dfeb7e4</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
<ns4:contactHistoryItem>
<ns4:contactRef/>
<ns4:contactRefType/>
<ns4:subject/>
<ns4:typeId/>
<ns4:contactDate>2025-01-21T09:25:56Z</ns4:contactDate>
<ns4:userId>000101</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>8dd4:32c94b68491:9244576:05cf6bdd1a6304b1</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
<ns4:contactHistoryItem>
<ns4:contactRef/>
<ns4:contactRefType/>
<ns4:subject/>
<ns4:typeId/>
<ns4:contactDate>2025-01-21T08:41:48Z</ns4:contactDate>
<ns4:userId>000101</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>e473:32c94b68491:9244576:05cf6bdd1a6304b1</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
<ns4:contactHistoryItem>
<ns4:contactRef/>
<ns4:contactRefType/>
<ns4:subject>Meeting</ns4:subject>
<ns4:typeId>PHONE_C_APPOINT</ns4:typeId>
<ns4:contactDate>2024-12-18T07:34:00Z</ns4:contactDate>
<ns4:userId>000101</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>5271:4b85c97d391:6220d735-:c5e90fac83025722</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
<ns4:contactHistoryItem>
<ns4:contactRef/>
<ns4:contactRefType/>
<ns4:subject>Test Call Subject</ns4:subject>
<ns4:typeId>PHONE_C_APPOINT</ns4:typeId>
<ns4:contactDate>2024-12-09T05:51:13Z</ns4:contactDate>
<ns4:userId>000101</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>2fc1-:1cae249a391:81cdc751-:8ed722ba9bb5084e</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
<ns4:contactHistoryItem>
<ns4:contactRef/>
<ns4:contactRefType/>
<ns4:subject>Hadhi</ns4:subject>
<ns4:typeId>PHONE_C_APPOINT</ns4:typeId>
<ns4:contactDate>2024-12-06T08:59:29Z</ns4:contactDate>
<ns4:userId>000101</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>cbe3:e50ffc99391:aa7e32a2-:72b4909a0a1f79e3</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
<ns4:contactHistoryItem>
<ns4:contactRef/>
<ns4:contactRefType/>
<ns4:subject/>
<ns4:typeId>PHONE_C_APPOINT</ns4:typeId>
<ns4:contactDate>2024-11-14T07:58:55Z</ns4:contactDate>
<ns4:userId>000101</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>24d4-:98fb3592391:46e0ba73-:042ede3a751f05c6</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
<ns4:contactHistoryItem>
<ns4:contactRef>c27ff461-07d9-4a68-8ff2-03f7642285d5</ns4:contactRef>
<ns4:contactRefType>OUTBOUND_EMAIL</ns4:contactRefType>
<ns4:subject>Your Receipt</ns4:subject>
<ns4:typeId>CUST_OUTBOUND_EMAIL</ns4:typeId>
<ns4:contactDate>2024-10-25T10:26:48+01:00</ns4:contactDate>
<ns4:userId>RECEIPTS</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>2167-:09c6cf2c291:ad11fbc:9b5f6a069c1f7a52</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
<ns4:contactHistoryItem>
<ns4:contactRef/>
<ns4:contactRefType/>
<ns4:subject/>
<ns4:typeId>PHONE_C_APPOINT</ns4:typeId>
<ns4:contactDate>2024-10-24T13:12:13+01:00</ns4:contactDate>
<ns4:userId>000101</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>8356-:200404eb291:4b7e37a5-:d7525327113e3781</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
<ns4:contactHistoryItem>
<ns4:contactRef/>
<ns4:contactRefType/>
<ns4:subject/>
<ns4:typeId>PHONE_C_APPOINT</ns4:typeId>
<ns4:contactDate>2024-10-24T13:10:21+01:00</ns4:contactDate>
<ns4:userId>000101</ns4:userId>
<ns4:customerNumber>100</ns4:customerNumber>
<ns4:customerForename>Amelia</ns4:customerForename>
<ns4:customerSurname>Baldwin</ns4:customerSurname>
<ns4:customerContactHistoryId>3956-:200404eb291:4b7e37a5-:d7525327113e3781</ns4:customerContactHistoryId>
</ns4:contactHistoryItem>
</ns4:contactHistorySearchResponse>
Save Customers
This API is used to save customers from the CRM screen.
Request
Request Service Name
CustomerService
Request Operation
saveCustomer
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CustomerService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
customer | Optional | Complex Type | A complex element with the new Customer details. |
customer → addresses | Optional | Complex Type | Set of addresses of the Customer. |
customer → dateCreated | Optional | Datetime | The date and the time that the Customer was created. |
customer → emailAddresses | Optional | Complex Type | The email address of the Customer. |
customer → phoneNumbers | Optional | Complex Type | The phone number of the Customer. |
customer → CustomerName | Optional | Complex Type | The name of the Customer. |
customer → CustomerName → surname | Optional | String (max length - 100) | The family name of the Customer. |
customer → CustomerName → forename | Optional | String (max length - 100) | The first name of the Customer. |
customer → CustomerName → title | Optional | String (max length - 10) | The title of the Customer. |
customer → employeeKey | Optional | N/A | Not applicable for CRM POS Functions. |
customer → CustomerType | Optional | String (max length - 20) | Not applicable to CRM POS Functions. |
customer → createdBy | Optional | N/A | Not applicable to CRM POS Functions. |
customer → createdAt | Optional | N/A | Not applicable to CRM POS Functions. |
customer → status | Optional | String (Max length - 15) | Default is set to 'Captured' for the customers created using the POS. |
customer → source | Optional | String | The ID of the Device used to create the customer. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
retail: CustomerNumber | String | The service will return the CustomerNumber of the newly saved Customer as the response. |
Request & Response Examples
Request
Request to create and save a new customer:
Request
<ns:saveCustomer xmlns:ns="http://www.enactor.com/core">
<retail:saveCustomerRequest xmlns:retail="http://www.enactor.com/retail" xmlns:ns15="http://www.enactor.com/crm/customerLoyalty/service" xmlns:ns14="http://www.enactor.com/addressLookup/service">
<retail:customer>
<retail:addresses>
<retail:address>
<retail:countryCodeId/>
<retail:isPreferred>true</retail:isPreferred>
<retail:typeId/>
<retail:county>Hertfordshire County</retail:county>
<retail:postCode>SG141PB</retail:postCode>
<retail:street1>5 Bluecoats Avenue</retail:street1>
<retail:street2>SG14 1PB</retail:street2>
<retail:street3>UK 70229</retail:street3>
<retail:town>Hertford</retail:town>
<retail:isTemplate>false</retail:isTemplate>
</retail:address>
</retail:addresses>
<retail:dateCreated>2024-03-06T15:54:31.395+05:30</retail:dateCreated>
<retail:emailAddresses>
<retail:emailAddress>robert.jackson@enactor.co.uk</retail:emailAddress>
<retail:typeId/>
</retail:emailAddresses>
<retail:phoneNumbers>
<retail:number>+94132849612</retail:number>
<retail:typeId/>
</retail:phoneNumbers>
<retail:customerName>
<retail:surname>Jackson</retail:surname>
<retail:forename>Robert</retail:forename>
<retail:title>Mr</retail:title>
</retail:customerName>
<retail:employeeKey/>
<retail:customerType>RETAIL</retail:customerType>
<retail:organisation>Enactor</retail:organisation>
<retail:createdBy/>
<retail:createdAt/>
<retail:status>Captured</retail:status>
<retail:source>pos9@0005.enactor</retail:source>
</retail:customer>
<retail:customerAttributes/>
</retail:saveCustomerRequest>
</ns:saveCustomer>
Response
Following is an example response for Save Customers request:
<ns:saveCustomerResponse xmlns:ns="http://www.enactor.com/core">
<retail:saveCustomerResponse xmlns:retail="http://www.enactor.com/retail" xmlns:ns12="http://www.enactor.com/addressLookup/service">
<retail:customerNumber>20</retail:customerNumber>
</retail:saveCustomerResponse>
</ns:saveCustomerResponse>
Update Customers
This API is used to update customers from the CRM screen.
Request
Request Service Name
CustomerService
Request Operation
saveCustomer
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CustomerService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
customer | Optional | Complex Type | A complex element with the new Customer details. |
customer → addresses | Optional | Complex Type | Set of addresses of the Customer. |
customer → dateCreated | Optional | Datetime | The date and the time that the Customer was created. |
customer → emailAddresses | Optional | Complex Type | The email address of the Customer. |
customer → phoneNumbers | Optional | Complex Type | The phone number of the Customer. |
customer → CustomerName | Optional | Complex Type | The name of the Customer. |
customer → CustomerName → surname | Optional | String (max length - 100) | The family name of the Customer. |
customer → CustomerName → forename | Optional | String (max length - 100) | The first name of the Customer. |
customer → CustomerName → title | Optional | String (max length - 10) | The title of the Customer. |
customer → employeeKey | Optional | N/A | Not applicable for CRM POS Functions. |
customer → CustomerType | Optional | String (max length - 20) | Not applicable to CRM POS Functions. |
customer → createdBy | Optional | N/A | Not applicable to CRM POS Functions. |
customer → createdAt | Optional | N/A | Not applicable to CRM POS Functions. |
customer → status | Optional | String (Max length - 15) | Default is set to 'Captured' for the customers created using the POS. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
retail: CustomerNumber | String | The service will return the CustomerNumber of the updated Customer as the response. |
Request & Response Examples
Request
Request to update customer details of the customer with the customer number 100:
Request
<ns:saveCustomer xmlns:ns="http://www.enactor.com/core">
<retail:saveCustomerRequest xmlns:retail="http://www.enactor.com/retail" xmlns:ns4="http://www.enactor.com/crm">
<retail:customer>
<retail:addresses>
<retail:address>
<retail:country>United Kingdom</retail:country>
<retail:countryCodeId>GBR</retail:countryCodeId>
<retail:isPreferred>false</retail:isPreferred>
<retail:organisation>ENACTOR ON DEMAND LIMITED</retail:organisation>
<retail:isActive>true</retail:isActive>
<retail:typeId>ADDRESS_HOME</retail:typeId>
<retail:county>Hertfordshire County</retail:county>
<retail:postCode>SG141PB</retail:postCode>
<retail:street1>1 Bluecoats Avenue</retail:street1>
<retail:street2>SG14 1PB</retail:street2>
<retail:town>Hertford</retail:town>
<retail:isTemplate>false</retail:isTemplate>
<retail:referenceId/>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:addressReferenceId>da67-:a712f3c9391:054dea51-:aec93da5748c4f4b</retail:addressReferenceId>
</retail:address>
<retail:address>
<retail:country>United Kingdom</retail:country>
<retail:countryCodeId>GBR</retail:countryCodeId>
<retail:isPreferred>false</retail:isPreferred>
<retail:organisation>Enactor</retail:organisation>
<retail:isActive>true</retail:isActive>
<retail:typeId>ADDRESS_OTHER</retail:typeId>
<retail:county>Hertfordshire</retail:county>
<retail:postCode>SG141PB</retail:postCode>
<retail:street1>1 Enactor House</retail:street1>
<retail:street2>Bluecoats Avenue</retail:street2>
<retail:town>Hertford</retail:town>
<retail:isTemplate>false</retail:isTemplate>
<retail:referenceId/>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:addressReferenceId>b967-:a712f3c9391:054dea51-:aec93da5748c4f4b</retail:addressReferenceId>
</retail:address>
<retail:address>
<retail:country>United Kingdom</retail:country>
<retail:countryCodeId>GBR</retail:countryCodeId>
<retail:isPreferred>true</retail:isPreferred>
<retail:isActive>true</retail:isActive>
<retail:typeId>ADDRESS_WORK</retail:typeId>
<retail:county>Hertfordshire</retail:county>
<retail:postCode>SG14 3AG</retail:postCode>
<retail:street1>137 Newport Road</retail:street1>
<retail:town>Hertford</retail:town>
<retail:isTemplate>false</retail:isTemplate>
<retail:referenceId/>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:addressReferenceId>dc44-:84584e2d391:c2ff9b93-:ccd752587f6609fd</retail:addressReferenceId>
</retail:address>
<retail:address>
<retail:country>UK</retail:country>
<retail:countryCodeId/>
<retail:isPreferred>false</retail:isPreferred>
<retail:organisation>Enactor Limited</retail:organisation>
<retail:typeId>ADDRESS WORK</retail:typeId>
<retail:county>Hertfordshire</retail:county>
<retail:street1>1 Bluecoats Avenue</retail:street1>
<retail:town>Hertord</retail:town>
<retail:isTemplate>false</retail:isTemplate>
<retail:referenceId/>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:addressReferenceId>NBJURG3HWBEFNFBBWAJGSD75YM</retail:addressReferenceId>
</retail:address>
</retail:addresses>
<retail:contactMethod>METHOD_LETTER</retail:contactMethod>
<retail:contactMethodNotes/>
<retail:contactable>false</retail:contactable>
<retail:maritalStatus>Married</retail:maritalStatus>
<retail:nationality/>
<retail:noChildren>2</retail:noChildren>
<retail:customerNumber>100</retail:customerNumber>
<retail:emailAddresses>
<retail:emailAddress>abaldwin@enactordata.co</retail:emailAddress>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:preferred>true</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>EMAIL_HOME</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:emailAddressReferenceId>94e1:4b85c97d391:6220d735-:c5e90fac83025722</retail:emailAddressReferenceId>
</retail:emailAddresses>
<retail:phoneNumbers>
<retail:countryCode>+44</retail:countryCode>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:number>0777906111</retail:number>
<retail:preferred>true</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>PHONE_MOBILE</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:phoneNumberReferenceId>d6e7-:d7890f87391:22dd5251-:cb40bc388d5b2503</retail:phoneNumberReferenceId>
</retail:phoneNumbers>
<retail:phoneNumbers>
<retail:countryCode>+94</retail:countryCode>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:number>071 123 4567</retail:number>
<retail:preferred>false</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>PHONE_MOBILE</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:phoneNumberReferenceId>b7e7-:c5eda369391:6074cec5:3e557c56876c70ee</retail:phoneNumberReferenceId>
</retail:phoneNumbers>
<retail:phoneNumbers>
<retail:countryCode>+44</retail:countryCode>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:number>0741203066</retail:number>
<retail:preferred>false</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>PHONE_WORK</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:phoneNumberReferenceId>f0d7-:c5eda369391:6074cec5:3e557c56876c70ee</retail:phoneNumberReferenceId>
</retail:phoneNumbers>
<retail:phoneNumbers>
<retail:countryCode>+94</retail:countryCode>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:number>071 123 4567</retail:number>
<retail:preferred>false</retail:preferred>
<retail:restrictedReason/>
<retail:status/>
<retail:typeId>PHONE_MOBILE</retail:typeId>
<retail:referenceId/>
<retail:active>true</retail:active>
<retail:phoneNumberReferenceId>1c44-:84584e2d391:c2ff9b93-:ccd752587f6609fd</retail:phoneNumberReferenceId>
</retail:phoneNumbers>
<retail:customerName>
<retail:surname>Baldwin</retail:surname>
<retail:forename>Amelia</retail:forename>
</retail:customerName>
<retail:businessContactMethod>METHOD_EMAIL</retail:businessContactMethod>
<retail:preferredContactTime/>
<retail:employeeKey/>
<retail:lastUpdated>2025-01-31T13:40:24+05:30</retail:lastUpdated>
<retail:customerType/>
<retail:organisation/>
<retail:taxIdentification/>
<retail:companyNumber/>
<retail:createdBy/>
<retail:createdAt/>
<retail:status>Active</retail:status>
<retail:source/>
<retail:password/>
</retail:customer>
<retail:customerAttributes/>
</retail:saveCustomerRequest>
</ns:saveCustomer>
Response
Following is an example response for Update Customers request:
<ns:saveCustomerResponse xmlns:ns="http://www.enactor.com/core">
<retail:saveCustomerResponse xmlns:retail="http://www.enactor.com/retail" xmlns:ns12="http://www.enactor.com/addressLookup/service">
<retail:customerNumber>100</retail:customerNumber>
</retail:saveCustomerResponse>
</ns:saveCustomerResponse>
Get Customer Notes
This operation can be used to retrieve Notes that have been recorded against a customer.
Request
Request Service Name
CRMCustomerDataService
Request Operation
getCustomerNotes
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
getCustomerNotes → entityName | Optional | Complex Type | Contains the details of Customer Notes. |
getCustomerNotes → entityNamespace | Optional | N/A | Not applicable for POS. |
getCustomerNotes → criteria | Optional | Complex Type | The same criteria used in the request. |
getCustomerNotes → criteria → distinct | Optional | boolean | Whether to return only the distinct values. |
getCustomerNotes → criteria → maxRows | Optional | int | Maximum rows to return. |
getCustomerNotes → criteria → suppressDefaultOrderBy | Optional | boolean | Whether to override the default ordering. |
getCustomerNotes → criteria → CustomerNumber | Optional | long | The Customer number that the notes belong to. |
getCustomerNotes → criteria → CustomerNumber → id | Optional | Customer ID that the notes will be saved to. | |
getCustomerNotes → criteria → CustomerNumber → forceApplicable | Optional | boolean | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → orColumns | Optional | boolean | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → comparisonOperator | Optional | String | The operator used to compare the fields. Possible values: EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUALS, LESS_THAN_OR_EQUALS, STARTS_WITH, CONTAINS, IN, NOT_IN |
getCustomerNotes → criteria → CustomerNumber → orNull | Optional | boolean | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → width | Optional | int (Max length - 20) | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → useValueForAllProperties | Optional | boolean | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → caseInsensitive | Optional | boolean | Whether the comparisons should be case insensitive. Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → submitOnChange | Optional | boolean | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → disabled | Optional | boolean | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → hidden | Optional | boolean | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → fuzzyLevel | Optional | int (Max length - 4) | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → customQueryFilter | Optional | boolean | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → defaultValue | Optional | Object | Not applicable for POS. |
getCustomerNotes → criteria → CustomerNumber → supportValues | Optional | Complex Type | The values to be passed in for comparison. |
getCustomerNotes → criteria → CustomerNumber → valueRequired | Optional | boolean | Not applicable for POS. |
getCustomerNotes → listName | Optional | Not applicable for POS. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
getCustomerNotesResponse | Complex Type | Details of the Notes that are added in the preference screen. |
getCustomerNotesResponse → list | Complex Type | Details of the Notes that are added in the preference screen. |
getCustomerNotesResponse → list → userId | string | The user ID of the user who is updating this preference. |
getCustomerNotesResponse → list → CustomerId | long | The Customer ID the preference belongs to. |
getCustomerNotesResponse → list → noteDate | DateTime | The date and time that the Note is created. |
getCustomerNotesResponse → list → lastUpdated | DateTime | The last updated time of the customer communication preference. |
getCustomerNotesResponse → list → noteId | String | Note ID for identification purposes. Not applicable to CRM POS Functions. |
getCustomerNotesResponse → list → notes | String | Contains the details of the Customer Notes. |
getCustomerNotesResponse → criteria | Complex Type | The search criteria used in the request. |
getCustomerNotesResponse → criteria → distinct | boolean | Whether to return only the distinct values. |
getCustomerNotesResponse → criteria → maxRows | int | Maximum number of rows to return. |
getCustomerNotesResponse → criteria → suppressDefaultOrderBy | boolean | Whether to override the default ordering. |
Request & Response Examples
Request
Request to get customer notes of the customer with the customer number 100:
Request
<ns4:getCustomerNotes xmlns:ns4="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/addressLookup/service" xmlns:ns13="http://www.enactor.com/crm/customerLoyalty/service">
<ns4:entityName>customerNote</ns4:entityName>
<ns4:entityNamespace>http://www.enactor.com/crm</ns4:entityNamespace>
<ns4:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:customerNumber>
<core:ID>CustomerNumber</core:ID>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:customerNumber>
</ns4:criteria>
<ns4:listName>listAll</ns4:listName>
</ns4:getCustomerNotes>
Response
Following is an example response for Get Customer Notes request:
Response
<ns4:getCustomerNotesResponse xmlns:ns4="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core" xmlns:ns11="http://www.enactor.com/crm/customerLoyalty/service" xmlns:ns10="http://www.enactor.com/addressLookup/service">
<ns4:list>
<retail:userId>000101</retail:userId>
<retail:customerId>100</retail:customerId>
<retail:isPrivate>false</retail:isPrivate>
<retail:noteDate>2024-03-06T18:30:00Z</retail:noteDate>
<retail:lastUpdated>2024-03-07T08:36:47Z</retail:lastUpdated>
<retail:noteId>b701-:9648ca61e81:7f2868c4-:ea002bc78fff09e3</retail:noteId>
<retail:notes>Amelia's Note</retail:notes>
</ns4:list>
<ns4:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
</ns4:criteria>
</ns4:getCustomerNotesResponse>
Save Customer Note
This operation can be used to save Notes for a Customer.
Request
Request Service Name
CRMCustomerDataService
Request Operation
saveCustomerNote
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
customerNote | Mandatory | Complex Type | Contains the details of the Customer Note. |
customerNote → userId | Optional | Complex Type | Contains the ID of the user saving the customer note. |
customerNote → customerId | Optional | Complex Type | Contains the ID of the customer for whom the customer note is being saved. |
customerNote → isPrivate | Optional | boolean | Whether to have this note private or not. |
customerNote → noteDate | Optional | DateTime | Date and Time that the customer note is saved. |
customerNote → notes | Optional | String | The content of the customer note. |
customerNote → user | Optional | Complex Type | Contains the details of the user creating the Customer Note. |
customerNote → userLocale | Optional | Complex Type | Contains the locale details of the user creating the Customer Note. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
customerNote | Complex Type | Contains the details of the Customer Note. |
customerNote → userId | Complex Type | Contains the ID of the user saving the customer note. |
customerNote → customerId | Complex Type | Contains the ID of the customer for whom the customer note is being saved. |
customerNote → isPrivate | boolean | Whether to have this note private or not. |
customerNote → noteDate | DateTime | Date and Time that the customer note is saved. |
customerNote → lastUpdated | DateTime | Date and Time that the customer note is updated. |
customerNote → noteId | String | Unique Note ID of the customer note. |
customerNote → notes | String | The content of the customer note. |
Request & Response Examples
Request
Request to save a customer note for the customer with the ID of 100:
Request
<ns4:saveCustomerNote xmlns:ns4="http://www.enactor.com/crm" xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core">
<retail:customerNote>
<retail:userId>000101</retail:userId>
<retail:customerId>100</retail:customerId>
<retail:isPrivate>false</retail:isPrivate>
<retail:noteDate>2024-11-15T00:00:00+05:30</retail:noteDate>
<retail:noteId>e8a-:ec36e1d3391:3210deb1-:03de649c3d8cbdd5</retail:noteId>
<retail:notes>Amelia's Note 2</retail:notes>
</retail:customerNote>
<retail:user>
<retail:dateTimeActivated>2021-05-18T01:00:42+05:30</retail:dateTimeActivated>
<retail:displayName>Hertford Manager</retail:displayName>
<retail:employeeId/>
<retail:localeId variant="" country="GB">en</retail:localeId>
<retail:locationId>0001</retail:locationId>
<retail:password>lNBrhb6ALqsxA3DWMAe/zgW5cy6o+8TEXeU2oY2G0rQ=lQ4KSvqYhYk=</retail:password>
<retail:passwordLastChanged>2024-11-21T14:59:50.373+05:30</retail:passwordLastChanged>
<retail:forceChangePassword>false</retail:forceChangePassword>
<retail:strongPassword>false</retail:strongPassword>
<retail:previousPasswords>
<retail:password>oqW83Innq91Uiz9c3RcjpvvNMNd84Qg9ZeYZ5nwVxX4=r5XlmzAySDw=</retail:password>
</retail:previousPasswords>
<retail:shortId>00010100</retail:shortId>
<retail:address>
<retail:countryCodeId/>
<retail:typeId/>
<retail:isTemplate>false</retail:isTemplate>
</retail:address>
<retail:userId>000101</retail:userId>
<retail:userName>
<retail:surname>Hertford Manager</retail:surname>
<retail:forename>000101</retail:forename>
<retail:initials>JS</retail:initials>
<retail:dateOfBirth>1966-03-13T05:30:00+05:30</retail:dateOfBirth>
</retail:userName>
<retail:teamId>TEAM</retail:teamId>
<retail:timePeriod>
<core:dayOfWeek>1</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>2</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>3</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>4</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>5</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>6</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>7</core:dayOfWeek>
</retail:timePeriod>
<retail:singleSignOnUserId/>
<retail:singleSignOnCommonName/>
<retail:lastUpdated>2024-12-20T13:30:22.904+05:30</retail:lastUpdated>
<retail:fiscalUserReference/>
<retail:templateKey>STORE_MANAGER_UK</retail:templateKey>
<retail:isTemplate>false</retail:isTemplate>
<retail:emailAccountName>enactor.test@gmail.com</retail:emailAccountName>
<retail:emailAddress>enactor.test@gmail.com</retail:emailAddress>
<retail:emailEncryptedPassword>smG+rsrfBuKrdaJPv30rhg==</retail:emailEncryptedPassword>
</retail:user>
<core:userLocale>
<core:language>en</core:language>
<core:country>GB</core:country>
<core:variant/>
<core:description>English (UK)</core:description>
<core:lastUpdated>2024-10-01T15:02:33.703+05:30</core:lastUpdated>
</core:userLocale>
</ns4:saveCustomerNote>
Response
Following is an example response for Save Customer Notes request:
<ns4:saveCustomerNoteResponse xmlns:ns4="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core"xmlns:retail="http://www.enactor.com/retail">
<retail:customerNote>
<retail:userId>000101</retail:userId>
<retail:customerId>100</retail:customerId>
<retail:isPrivate>false</retail:isPrivate>
<retail:noteDate>2024-11-14T18:30:00Z</retail:noteDate>
<retail:lastUpdated>2025-02-19T11:21:11Z</retail:lastUpdated>
<retail:noteId>e8a-:ec36e1d3391:3210deb1-:03de649c3d8cbdd5</retail:noteId>
<retail:notes>Amelia's Note 2</retail:notes>
</retail:customerNote>
</ns4:saveCustomerNoteResponse>
Get Customer Preferences
This operation can be used to retrieve preference values for a Customer.
Request
Request Service Name
CRMCustomerDataService
Request Operation
getCustomerPreferences
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
getCustomerPreferences → criteria | Optional | Complex Type | The Search criteria details. |
getCustomerPreferences → criteria → distinct | Optional | boolean | Whether to return only the distinct values. |
getCustomerPreferences → criteria → maxRows | Optional | int | Maximum number of rows to return. |
getCustomerPreferences → criteria → suppressDefaultOrderBy | Optional | boolean | Whether to override the default ordering. |
getCustomerPreferences → criteria → CustomerId | Optional | Text Value Filter | This is an element to filter the results by Customer ID. If not provided, all preferences are returned. |
getCustomerPreferences → criteria → CustomerId → id | Optional | String | The core:id of the TextValueFilter should be equal to 'CustomerNumber'. |
getCustomerPreferences → criteria → CustomerId → forceApplicable | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → orColumns | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → comparisonOperator | Optional | String | The operator used to compare the fields. Valid values: EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUALS, LESS_THAN_OR_EQUALS, STARTS_WITH, CONTAINS, IN, NOT_IN |
getCustomerPreferences → criteria → CustomerId → orNull | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → width | Optional | int (Max length - 20) | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → useValueForAllProperties | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → caseInsensitive | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → submitOnChange | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → disabled | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → hidden | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → fuzzyLevel | Optional | int (Max length - 4) | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → customQueryFilter | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → defaultValue | Optional | Object | Not applicable to CRM POS Functions. |
getCustomerPreferences → criteria → CustomerId → supportValues | Optional | Complex Type | The values to be passed in for comparison. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
customerPreferenceEntry | Complex Type | Object containing the customer preferences details including created, optionPathId, optionSetId, customerId, lastUpdated, preferenceId and value of the preference. |
Request & Response Examples
Request
Request to get customer preferences of the customer with the customer number 100:
Request
<retail:getCustomerPreferences xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/addressLookup/service" xmlns:ns13="http://www.enactor.com/crm/customerLoyalty/service">
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:customerId xsi:type="core:TextValueFilter">
<core:ID>CustomerNumber</core:ID>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:customerId>
</retail:criteria>
</retail:getCustomerPreferences>
Response
Following is an example response for Get Customer Preferences request:
<retail:getCustomerPreferencesResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns11="http://www.enactor.com/crm/customerLoyalty/service" xmlns:ns10="http://www.enactor.com/addressLookup/service"/>
Save Customer Preference
This operation can be used to save preference values of a Customer.
Request
Request Service Name
CRMCustomerDataService
Request Operation
saveCustomerPreference
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
customerPreferences | Optional | Complex Type | Object containing the customer preferences details including created, optionPathId. optionSetId, customerId and value of the preference. |
locale | Optional | Complex Type | Object containing the locale related details of the preference. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
customerPreferences | Complex Type | Object containing the customer preferences details including created, optionPathId, optionSetId, customerId and value of the preference. |
locale | Complex Type | Object containing the locale related details of the preference. |
Request & Response Examples
Request
Request to save customer preferences of the customer with the customer number 100:
Request
<retail:saveCustomerPreference xmlns:retail="http://www.enactor.com/retail" xmlns:ns4="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core">
<retail:customerPreference>
<retail:created>2025-02-19T17:12:42.333+05:30</retail:created>
<retail:optionPathId>VS</retail:optionPathId>
<retail:optionSetId type="customerPreferenceOptionSet" optionSetId="CUSTOMER_PREF1">
<retail:groupId groupHierarchyId="All" groupTypeId="region">All</retail:groupId>
</retail:optionSetId>
<retail:customerId>100</retail:customerId>
<retail:value id="VS"/>
</retail:customerPreference>
<retail:locale>
<core:language>en</core:language>
<core:country>GB</core:country>
<core:variant/>
<core:description>English (UK)</core:description>
<core:lastUpdated>2024-10-01T15:02:33.703+05:30</core:lastUpdated>
</retail:locale>
</retail:saveCustomerPreference>
Response
Following is an example response for Save Customer Preferences request:
<retail:saveCustomerPreferenceResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns4="http://www.enactor.com/crm">
<retail:customerPreference>
<retail:created>2025-02-19T11:42:42.333Z</retail:created>
<retail:optionPathId>VS</retail:optionPathId>
<retail:optionSetId type="customerPreferenceOptionSet" optionSetId="CUSTOMER_PREF1">
<retail:groupId groupHierarchyId="All" groupTypeId="region">All</retail:groupId>
</retail:optionSetId>
<retail:customerId>100</retail:customerId>
<retail:lastUpdated>2025-02-19T11:43:21Z</retail:lastUpdated>
<retail:preferenceId>2a57-:f9481fd1591:116de9a-:026a32f3aeb3b25c</retail:preferenceId>
<retail:value id="VS"/>
</retail:customerPreference>
</retail:saveCustomerPreferenceResponse>
Get Customer Key Dates
This operation can be used to retrieve the dates of special occasions that have been recorded for a Customer.
Request
Request Service Name
CRMCustomerDataService
Request Operation
getCustomerKeyDates
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
getCustomerKeyDates → criteria | Optional | Complex Type | The Search criteria details. |
getCustomerKeyDates → criteria → distinct | Optional | boolean | Whether to return only the distinct values. |
getCustomerKeyDates → criteria → maxRows | Optional | int | Maximum number of items to return. |
getCustomerKeyDates → criteria → suppressDefaultOrderBy | Optional | boolean | Whether to override the default ordering. |
getCustomerKeyDates → criteria → CustomerNumber | Optional | long | The Customer number of the Customer found. |
getCustomerKeyDates → criteria → CustomerNumber → id | Optional | The Customer ID of the Customer found. | |
getCustomerKeyDates → criteria → CustomerNumber → forceApplicable | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → orColumns | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → comparisonOperator | Optional | String | The operator used to compare the fields. Following is the list of possible values. EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUALS, LESS_THAN_OR_EQUALS, STARTS_WITH, CONTAINS, IN, NOT_IN |
getCustomerKeyDates → criteria → CustomerNumber → orNull | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → width | Optional | int (Max length - 20) | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → useValueForAllProperties | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → caseInsensitive | Optional | boolean | Whether comparisons should be case insensitive. Default is false. |
getCustomerKeyDates → criteria → CustomerNumber → submitOnChange | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → disabled | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → hidden | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → fuzzyLevel | Optional | int (Max length - 4) | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → customQueryFilter | Optional | boolean | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → defaultValue | Optional | Object | Not applicable to CRM POS Functions. |
getCustomerKeyDates → criteria → CustomerNumber → supportValues | Optional | Complex Type | The values to be passed in for comparison. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
getCustomerKeyDatesResponse → CustomerKeyDates | DateTime | The key date of the customer is saved. |
getCustomerKeyDatesResponse → CustomerKeyDates → CustomerId | Text Value Filter | This is an element to filter the results by Customer ID. If this is not provided, preferences for all the Customers will be returned. The core:id of the TextValueFilter should be equal to 'CustomerNumber'. |
getCustomerKeyDatesResponse → CustomerKeyDates → details | String | The event details that have been saved for the customer. |
getCustomerKeyDatesResponse → CustomerKeyDates → generateReminder | Boolean | Defaults to False. If true, a reminder will be generated for that particular date. |
getCustomerKeyDatesResponse → CustomerKeyDates → generateReminder | Not applicable to CRM POS Functions. | |
getCustomerKeyDatesResponse → CustomerKeyDates → generateReminder → recurrenceType | Not applicable to CRM POS Functions. | |
getCustomerKeyDatesResponse → CustomerKeyDates → generateReminder → startDate | Not applicable to CRM POS Functions. | |
getCustomerKeyDatesResponse → CustomerKeyDates → keyDateId | Not applicable to CRM POS Functions. | |
getCustomerKeyDatesResponse → CustomerKeyDates → CustomerKeyDateTypeId | Not applicable to CRM POS Functions. | |
getCustomerKeyDatesResponse → CustomerKeyDates → lastUpdated | Datetime | Not applicable to CRM POS Functions. |
getCustomerKeyDatesResponse → CustomerKeyDates → createdBy | Not applicable to CRM POS Functions. | |
getCustomerKeyDatesResponse → CustomerKeyDates → creationDate | Not applicable to CRM POS Functions. | |
getCustomerKeyDatesResponse → CustomerKeyDates → amendedBy | Not applicable to CRM POS Functions. |
Request & Response Examples
Request
Request to get customer preferences of the customer with the customer number 100:
Request
<retail:getCustomerPreferences xmlns:retail="http://www.enactor.com/retail" xmlns:ns4="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core">
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:customerId xsi:type="core:TextValueFilter">
<core:id>CustomerNumber</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:customerId>
</retail:criteria>
</retail:getCustomerPreferences>
Response
Following is an example response for Get Customer Key Dates request:
Response
<retail:getCustomerKeyDatesResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/crm">
<retail:customerKeyDates>
<retail:customerId>100</retail:customerId>
<retail:details>Birthday</retail:details>
<retail:generateReminder>false</retail:generateReminder>
<retail:keyDate>
<core:recurrenceType>ANNUALLY</core:recurrenceType>
<core:startDate>2024-12-17T18:30:00Z</core:startDate>
</retail:keyDate>
<retail:keyDateId>153-:4b85c97d391:6220d735-:c5e90fac83025722</retail:keyDateId>
<retail:customerKeyDateTypeId/>
<retail:lastUpdated>2024-12-18T06:43:16Z</retail:lastUpdated>
<retail:createdBy>000101</retail:createdBy>
<retail:creationDate>2024-12-18T06:42:24Z</retail:creationDate>
<retail:amendedBy>000101</retail:amendedBy>
</retail:customerKeyDates>
<retail:customerKeyDates>
<retail:customerId>100</retail:customerId>
<retail:details/>
<retail:generateReminder>false</retail:generateReminder>
<retail:keyDate>
<core:recurrenceType>ANNUALLY</core:recurrenceType>
<core:startDate>2024-11-06T00:00:00Z</core:startDate>
</retail:keyDate>
<retail:keyDateId>2d03:669b8740391:569fd927:1cec0394c2165ae8</retail:keyDateId>
<retail:customerKeyDateTypeId>ANNIVERSARY</retail:customerKeyDateTypeId>
<retail:lastUpdated>2024-11-07T08:35:02Z</retail:lastUpdated>
<retail:createdBy>000101</retail:createdBy>
<retail:creationDate>2024-11-07T08:31:18Z</retail:creationDate>
<retail:amendedBy>HJAWAHIR</retail:amendedBy>
<retail:amendmentDate>2024-11-07T08:34:56Z</retail:amendmentDate>
</retail:customerKeyDates>
<retail:customerKeyDates>
<retail:customerId>100</retail:customerId>
<retail:details>Birthday</retail:details>
<retail:generateReminder>false</retail:generateReminder>
<retail:keyDate>
<core:recurrenceType>NONE</core:recurrenceType>
<core:startDate>2024-12-06T00:00:00Z</core:startDate>
</retail:keyDate>
<retail:keyDateId>50d3:e50ffc99391:aa7e32a2-:72b4909a0a1f79e3</retail:keyDateId>
<retail:customerKeyDateTypeId>BIRTHDAY</retail:customerKeyDateTypeId>
<retail:lastUpdated>2024-12-18T06:41:43Z</retail:lastUpdated>
<retail:createdBy>000101</retail:createdBy>
<retail:creationDate>2024-12-18T06:15:20Z</retail:creationDate>
<retail:amendedBy>HJAWAHIR</retail:amendedBy>
<retail:amendmentDate>2024-12-18T06:41:38Z</retail:amendmentDate>
</retail:customerKeyDates>
<retail:customerKeyDates>
<retail:customerId>100</retail:customerId>
<retail:details>Birthday</retail:details>
<retail:generateReminder>false</retail:generateReminder>
<retail:keyDate>
<core:recurrenceType>ANNUALLY</core:recurrenceType>
<core:startDate>2024-12-17T18:30:00Z</core:startDate>
</retail:keyDate>
<retail:keyDateId>be2-:4b85c97d391:6220d735-:c5e90fac83025722</retail:keyDateId>
<retail:customerKeyDateTypeId/>
<retail:lastUpdated>2024-12-18T06:44:00Z</retail:lastUpdated>
<retail:createdBy>000101</retail:createdBy>
<retail:creationDate>2024-12-18T06:43:53Z</retail:creationDate>
<retail:amendedBy>000101</retail:amendedBy>
</retail:customerKeyDates>
</retail:getCustomerKeyDatesResponse>
Save Customer Key Date
This operation can be used to retrieve the dates of special occasions that have been recorded for a Customer.
Request
Request Service Name
CRMCustomerDataService
Request Operation
getCustomerKeyDates
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
customerKeyDate | Optional | Complex Type | Object containing the customer key date details. |
user | Optional | Complex Type | Contains the details of the user creating the customer key dates. |
locale | Optional | Complex Type | Object containing the locale related details of the key dates. |
Response
Response Headers
There are no response headers.
Response Body
The body will be empty if the request is a success.
Request & Response Examples
Request
Request to save key date of the customer with the customer number 100:
Request
<retail:saveCustomerKeyDate xmlns:retail="http://www.enactor.com/retail" xmlns:ns4="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core">
<retail:customerKeyDate>
<retail:customerId>100</retail:customerId>
<retail:details/>
<retail:generateReminder>false</retail:generateReminder>
<retail:keyDate>
<core:recurrenceType>ANNUALLY</core:recurrenceType>
<core:startDate>2024-11-06T00:00:00+05:30</core:startDate>
</retail:keyDate>
<retail:keyDateId>2d03:669b8740391:569fd927:1cec0394c2165ae8</retail:keyDateId>
<retail:customerKeyDateTypeId>ANNIVERSARY</retail:customerKeyDateTypeId>
<retail:createdBy>000101</retail:createdBy>
<retail:creationDate>2025-02-20T11:20:10.390+05:30</retail:creationDate>
<retail:amendedBy>000101</retail:amendedBy>
</retail:customerKeyDate>
<retail:user>
<retail:dateTimeActivated>2021-05-18T01:00:42+05:30</retail:dateTimeActivated>
<retail:displayName>Hertford Manager</retail:displayName>
<retail:employeeId/>
<retail:localeId variant="" country="GB">en</retail:localeId>
<retail:locationId>0001</retail:locationId>
<retail:password>lNBrhb6ALqsxA3DWMAe/zgW5cy6o+8TEXeU2oY2G0rQ=lQ4KSvqYhYk=</retail:password>
<retail:passwordLastChanged>2024-11-21T14:59:50.373+05:30</retail:passwordLastChanged>
<retail:forceChangePassword>false</retail:forceChangePassword>
<retail:strongPassword>false</retail:strongPassword>
<retail:previousPasswords>
<retail:password>oqW83Innq91Uiz9c3RcjpvvNMNd84Qg9ZeYZ5nwVxX4=r5XlmzAySDw=</retail:password>
</retail:previousPasswords>
<retail:shortId>00010100</retail:shortId>
<retail:address>
<retail:countryCodeId/>
<retail:typeId/>
<retail:isTemplate>false</retail:isTemplate>
</retail:address>
<retail:userId>000101</retail:userId>
<retail:userName>
<retail:surname>Hertford Manager</retail:surname>
<retail:forename>000101</retail:forename>
<retail:initials>JS</retail:initials>
<retail:dateOfBirth>1966-03-13T05:30:00+05:30</retail:dateOfBirth>
</retail:userName>
<retail:teamId>TEAM</retail:teamId>
<retail:timePeriod>
<core:dayOfWeek>1</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>2</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>3</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>4</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>5</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>6</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>7</core:dayOfWeek>
</retail:timePeriod>
<retail:singleSignOnUserId/>
<retail:singleSignOnCommonName/>
<retail:lastUpdated>2024-12-20T13:30:22.904+05:30</retail:lastUpdated>
<retail:fiscalUserReference/>
<retail:templateKey>STORE_MANAGER_UK</retail:templateKey>
<retail:isTemplate>false</retail:isTemplate>
<retail:emailAccountName>enactor.test@gmail.com</retail:emailAccountName>
<retail:emailAddress>enactor.test@gmail.com</retail:emailAddress>
<retail:emailEncryptedPassword>smG+rsrfBuKrdaJPv30rhg==</retail:emailEncryptedPassword>
</retail:user>
<retail:locale>
<core:language>en</core:language>
<core:country>GB</core:country>
<core:variant/>
<core:description>English (UK)</core:description>
<core:lastUpdated>2024-10-01T15:02:33.703+05:30</core:lastUpdated>
</retail:locale>
</retail:saveCustomerKeyDate>
Response
Response to save key date of the customer with the customer number 100:
<retail:saveCustomerKeyDateResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core"/>
Customer Transaction History Search
This request is used to search for completed transactions for a specific Customer.
Request
Request Service Name
CustomerTransactionService
Request Operation
customerTransactionSearch
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/ CustomerTransactionService
Request Body
There is no request body. The customer ID is passed as the subject header.
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
retail:CustomerTransactionSearchResponse | Complex Type | The root request element. |
retail:CustomerTransactionList | Complex Type | Contains the transaction list according to the search criteria. |
retail:CustomerTransactionList → currentPage | int | The page currently returned in case of pagination. |
retail:CustomerTransactionList → pageSize | int | Number of items returned per page. |
retail:CustomerTransactionList → totalPages | int | Total number of pages available. |
retail:CustomerTransactionList → totalRows | int | Total number of rows available. |
retail:CustomerTransactionList → elements | Complex Type | Contains the transaction information list according to the search criteria. |
retail:CustomerTransactionList → elements → elements | Complex Type | A single element returned from the search with details of a found Customer transaction. |
retail:CustomerTransactionList → elements → elements → CustomerNumber | long | The Customer number of the Customer transaction found. |
retail:CustomerTransactionList → elements → elements → applicationId | String | The associated application type which the transaction was started with. |
retail:CustomerTransactionList → elements → elements → transactionId | String | The Transaction ID number details. |
retail:CustomerTransactionList → elements → elements → transactionTypeId | String | The Processed Transaction type which can be Sales or Order. |
retail:CustomerTransactionList → elements → elements → locationId | String | The location ID which the transaction took place. |
retail:CustomerTransactionList → elements → elements → transactionDate | DateTime | Transaction date when the transaction was recorded. |
retail:CustomerTransactionList → elements → elements → value | string | Transaction value of the transaction that was recorded. |
retail:CustomerTransactionList → elements → elements → description | string | Transaction description of the transaction that was recorded. |
retail:CustomerTransactionList → elements → elements → loyaltyPoints | string | The loyalty points earned when the transaction completed. |
retail:CustomerTransactionList → elements → elements → locationDescription | Not applicable to CRM POS Functions. |
Request & Response Examples
Request
Request for customer transaction history:
Request
<retail:customerTransactionSearch xmlns:retail="http://www.enactor.com/retail" xmlns:ns4="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core">
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>500</core:maxRows>
<core:pageInfo>
<core:rowOffset>0</core:rowOffset>
<core:rowCount>10</core:rowCount>
<core:totalRowCountLimit>0</core:totalRowCountLimit>
</core:pageInfo>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:customerNumber>
<core:id>CustomerNumber</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">100</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:customerNumber>
<retail:transactionStartDate>
<core:id>TransactionStartDate</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>GREATER_THAN_OR_EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:dateTime">2024-02-21T12:01:01.083+05:30</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:dateTime">2024-02-21T00:00:00+05:30</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:transactionStartDate>
<retail:transactionEndDate>
<core:id>TransactionEndDate</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>LESS_THAN_OR_EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:valueRequired>false</core:valueRequired>
</retail:transactionEndDate>
<retail:transactionUserId>
<core:id>TransactionUserId</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:valueRequired>false</core:valueRequired>
</retail:transactionUserId>
</retail:criteria>
<retail:transactionSearchType>WITH_LOCATION</retail:transactionSearchType>
</retail:customerTransactionSearch>
Response
Following is an example response for Customer Transaction History Search request:
Response
<retail:customerTransactionSearchResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/crm">
<retail:customerTransactionList>
<core:currentPage>-1</core:currentPage>
<core:rowOffset>0</core:rowOffset>
<core:pageSize>10</core:pageSize>
<core:totalPages>-1</core:totalPages>
<core:totalRows>178</core:totalRows>
<retail:elements>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00010144000062502191605340</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0001</retail:locationId>
<retail:transactionDate>2025-02-19T16:06:21Z</retail:transactionDate>
<retail:value>55250</retail:value>
<retail:description>Laptops</retail:description>
<retail:loyaltyPoints>1105</retail:loyaltyPoints>
<retail:locationDescription>UK Hertford</retail:locationDescription>
</retail:element>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00010014000022502191558248</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0001</retail:locationId>
<retail:transactionDate>2025-02-19T16:04:21Z</retail:transactionDate>
<retail:value>41900</retail:value>
<retail:description>Drones</retail:description>
<retail:loyaltyPoints>0</retail:loyaltyPoints>
<retail:locationDescription>UK Hertford</retail:locationDescription>
</retail:element>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00050024004182502191529548</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0005</retail:locationId>
<retail:transactionDate>2025-02-19T15:30:15Z</retail:transactionDate>
<retail:value>37710</retail:value>
<retail:description>Drones</retail:description>
<retail:loyaltyPoints>0</retail:loyaltyPoints>
<retail:locationDescription>UK Kings Road</retail:locationDescription>
</retail:element>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00050024004162502191526100</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0005</retail:locationId>
<retail:transactionDate>2025-02-19T15:26:50Z</retail:transactionDate>
<retail:value>29900</retail:value>
<retail:description>Televisions</retail:description>
<retail:loyaltyPoints>598</retail:loyaltyPoints>
<retail:locationDescription>UK Kings Road</retail:locationDescription>
</retail:element>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00010013000062502191139306</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0001</retail:locationId>
<retail:transactionDate>2025-02-19T11:41:07Z</retail:transactionDate>
<retail:value>167900</retail:value>
<retail:description>Laptops</retail:description>
<retail:loyaltyPoints>0</retail:loyaltyPoints>
<retail:locationDescription>UK Hertford</retail:locationDescription>
</retail:element>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00010013000012502191130587</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0001</retail:locationId>
<retail:transactionDate>2025-02-19T11:35:35Z</retail:transactionDate>
<retail:value>41900</retail:value>
<retail:description>Drones</retail:description>
<retail:loyaltyPoints>838</retail:loyaltyPoints>
<retail:locationDescription>UK Hertford</retail:locationDescription>
</retail:element>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00050332000032502191004432</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0005</retail:locationId>
<retail:transactionDate>2025-02-19T10:05:18Z</retail:transactionDate>
<retail:value>50000</retail:value>
<retail:description/>
<retail:loyaltyPoints>0</retail:loyaltyPoints>
<retail:locationDescription>UK Kings Road</retail:locationDescription>
</retail:element>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00050332000022502191002552</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0005</retail:locationId>
<retail:transactionDate>2025-02-19T10:04:40Z</retail:transactionDate>
<retail:value>50000</retail:value>
<retail:description/>
<retail:loyaltyPoints>0</retail:loyaltyPoints>
<retail:locationDescription>UK Kings Road</retail:locationDescription>
</retail:element>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00010013000072502181547557</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0001</retail:locationId>
<retail:transactionDate>2025-02-18T16:04:28Z</retail:transactionDate>
<retail:value>41900</retail:value>
<retail:description>Drones</retail:description>
<retail:loyaltyPoints>838</retail:loyaltyPoints>
<retail:locationDescription>UK Hertford</retail:locationDescription>
</retail:element>
<retail:element>
<retail:customerNumber>100</retail:customerNumber>
<retail:applicationId>POS</retail:applicationId>
<retail:transactionId>00010144000092502181539453</retail:transactionId>
<retail:transactionTypeId>Sale</retail:transactionTypeId>
<retail:locationId>0001</retail:locationId>
<retail:transactionDate>2025-02-18T15:41:12Z</retail:transactionDate>
<retail:value>20449</retail:value>
<retail:description>Televisions</retail:description>
<retail:loyaltyPoints>926</retail:loyaltyPoints>
<retail:locationDescription>UK Hertford</retail:locationDescription>
</retail:element>
</retail:elements>
</retail:customerTransactionList>
</retail:customerTransactionSearchResponse>
Customer Transaction History Enquiry
This operation is used to retrieve the details of a completed transaction for a Customer.
Request Service Name
CustomerTransactionService
Request Operation
customerTransactionEnquiry
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/ CustomerTransactionService
Request Body
There is no request body. The customer ID is passed as the subject header.
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
CustomerTransactionDetailsList → lineNumber | Complex Type | The line item which was included in the transaction. |
CustomerTransactionDetailsList → quantity | String | Total quantity value of the items in the transaction. |
CustomerTransactionDetailsList → effectiveNetValue | String | The effective net value of the items in the transaction. |
CustomerTransactionDetailsList → salesPerson | String | The ID of the Salesperson who completed the transaction. |
CustomerTransactionDetailsList → productId | String | The product ID which has been added in the transaction. |
CustomerTransactionDetailsList → description | String | The product description which has been added in the transaction. |
CustomerTransactionDetailsList → loyaltyPoints | String | The Loyalty points value earned in the transaction. |
CustomerTransactionDetailsList → criteria | Complex Type | |
CustomerTransactionDetailsList → criteria → distinct | boolean | Whether to list distinct Customers or not. |
CustomerTransactionDetailsList → criteria → maxRows | int | Maximum number of items to return. |
CustomerTransactionDetailsList → criteria → suppressDefaultOrderBy | boolean | Whether to override the default ordering. |
CustomerTransactionDetailsList → criteria → transactionId | String | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → id | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → forceApplicable | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → orColumns | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → comparisonOperator | String | The operator used to compare the fields. Possible values: EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUALS, LESS_THAN_OR_EQUALS, STARTS_WITH, CONTAINS, IN, NOT_IN |
CustomerTransactionDetailsList → criteria → transactionId → orNull | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → width | int (Max length - 20) | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → useValueForAllProperties | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → caseInsensitive | boolean | Whether the comparisons should be case insensitive. Default is false. |
CustomerTransactionDetailsList → criteria → transactionId → submitOnChange | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → disabled | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → hidden | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → fuzzyLevel | int (Max length - 4) | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → customQueryFilter | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → defaultValue | Object | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → transactionId → supportValues | Complex Type | The values to be passed in for comparison. |
CustomerTransactionDetailsList → criteria → transactionId → supportValues → Values | int (Max length - 20) | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → type | Not applicable to CRM POS Functions. | |
CustomerTransactionDetailsList → criteria → type → id | Not applicable to CRM POS Functions. | |
CustomerTransactionDetailsList → criteria → type → forceApplicable | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → type → orColumns | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → type → comparisonOperator | String | The operator used to compare the fields. Possible values: EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUALS, LESS_THAN_OR_EQUALS, STARTS_WITH, CONTAINS, IN, NOT_IN |
CustomerTransactionDetailsList → criteria → type → orNull | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → type → width | int (Max length - 20) | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → type → useValueForAllProperties | boolean | Not applicable to CRM POS Functions. |
CustomerTransactionDetailsList → criteria → type → caseInsensitive | boolean | Whether the comparisons should be case insensitive. Default is false. |
CustomerTransactionDetailsList → criteria → type → submitOnChange | boolean | |
CustomerTransactionDetailsList → criteria → type → disabled | boolean | |
CustomerTransactionDetailsList → criteria → type → hidden | boolean | |
CustomerTransactionDetailsList → criteria → type → fuzzyLevel | int (Max length - 4) | |
CustomerTransactionDetailsList → criteria → type → customQueryFilter | boolean | |
CustomerTransactionDetailsList → criteria → type → supportValues | Complex Type | The values to be passed in for comparison. |
CustomerTransactionDetailsList → criteria → type → supportValues → value | ||
CustomerTransactionDetailsList → criteria → type → valueRequired | boolean |
Request & Response Examples
Request
Request for customer transaction enquiry:
Request
<retail:customerTransactionEnquiry xmlns:retail="http://www.enactor.com/retail" xmlns:ns4="http://www.enactor.com/crm"xmlns:core="http://www.enactor.com/core">
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:transactionId>
<core:id>TransactionId</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">00030106000932410101645319</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">00030106000932410101645319</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:transactionId>
<retail:type>
<core:id>Type</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">SALE</core:value>
</core:supportValues>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">RETURN</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:type>
</retail:criteria>
</retail:customerTransactionEnquiry>
Response
Following is an example response for Customer Transaction History Enquiry request:
Response
<retail:customerTransactionEnquiryResponse xmlns:retail="http://www.enactor.com/retail" xmlns:core="http://www.enactor.com/core" xmlns:ns5="http://www.enactor.com/crm">
<retail:customerTransactionDetailsList>
<core:currentPage>-1</core:currentPage>
<core:rowOffset>0</core:rowOffset>
<core:pageSize>0</core:pageSize>
<core:totalPages>-1</core:totalPages>
<core:totalRows>-1</core:totalRows>
<retail:elements>
<retail:element>
<retail:lineNumber>1</retail:lineNumber>
<retail:quantity>1.0</retail:quantity>
<retail:effectiveNetValue>29900</retail:effectiveNetValue>
<retail:salesPerson>000101</retail:salesPerson>
<retail:productId>500100</retail:productId>
<retail:description>JVC LT-40CA890 Android TV 40"</retail:description>
<retail:loyaltyPoints>598</retail:loyaltyPoints>
</retail:element>
</retail:elements>
</retail:customerTransactionDetailsList>
<retail:criteria>
<core:distinct>false</core:distinct>
<core:maxRows>0</core:maxRows>
<core:suppressDefaultOrderBy>false</core:suppressDefaultOrderBy>
<retail:transactionId>
<core:id>TransactionId</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:defaultValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">00050024004162502191526100</core:defaultValue>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">00050024004162502191526100</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:transactionId>
<retail:type>
<core:id>Type</core:id>
<core:forceApplicable>false</core:forceApplicable>
<core:orColumns>false</core:orColumns>
<core:comparisonOperator>EQUALS</core:comparisonOperator>
<core:orNull>false</core:orNull>
<core:width>20</core:width>
<core:useValueForAllProperties>false</core:useValueForAllProperties>
<core:caseInsensitive>false</core:caseInsensitive>
<core:submitOnChange>true</core:submitOnChange>
<core:disabled>false</core:disabled>
<core:hidden>false</core:hidden>
<core:fuzzyLevel>4</core:fuzzyLevel>
<core:customQueryFilter>false</core:customQueryFilter>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">SALE</core:value>
</core:supportValues>
<core:supportValues>
<core:value xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">RETURN</core:value>
</core:supportValues>
<core:valueRequired>false</core:valueRequired>
</retail:type>
</retail:criteria>
</retail:customerTransactionEnquiryResponse>
Save Contact History
This operation can save contact records for a Customer.
Request Service Name
CRMCustomerDataService
Request Operation
saveContactHistory
Request Endpoint
http://${Server.CRM_WS.Host}:${Server.CRM_WS.HttpPort}/axis2/services/CRMCustomerDataService
Request Body
Element | Mandatory / Optional | Type | Description |
---|---|---|---|
saveContactHistory → CustomerContactHistory | Optional | Complex Type | Contains the contact history details for the customer. |
saveContactHistory → CustomerContactHistory → contactDate | Optional | DateTime | The date of the contact history. |
saveContactHistory → CustomerContactHistory → reasonId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → CustomerContactHistory → deviceId | Optional | String | Not applicable to CRM POS Functions. |
saveContactHistory → CustomerContactHistory → locationId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → CustomerContactHistory → subject | Optional | String | The subject details of the contact history details. |
saveContactHistory → CustomerContactHistory → CustomerContactTypeId | Optional | String | Dropdown of the customer contact types configured. Default is Appointment. Values: Appointment, Complaint, General, Pre-Sale, Sale |
saveContactHistory → CustomerContactHistory → CustomerId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → CustomerContactHistory → description | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → CustomerContactHistory → userId | Optional | String | Not applicable to CRM POS Functions. |
saveContactHistory → user | Mandatory | Not applicable to CRM POS Functions. | |
saveContactHistory → user → dateTimeActivated | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → cardSignOnOnly | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → skipPasswordIfCard | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → displayName | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → employeeId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → locationId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → password | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → passwordLastChanged | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → forceChangePassword | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → strongPassword | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → previousPasswords | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → shortId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → address | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → address → countryCodeId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → address → typeId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → address → isTemplate | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → userId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → userName | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → userName → surname | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → userName → forename | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → userName → initials | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → timePeriod | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → timePeriod → dayOfWeek | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → singleSignOnUserId | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → singleSignOnCommonName | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → lastUpdated | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → fiscalUserReference | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → templateKey | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → isTemplate | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → associatedLocationRestrictions | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → emailAccountName | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → emailAddress | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → user → emailEncryptedPassword | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → userLocale | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → userLocale → language | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → userLocale → country | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → userLocale → variant | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → userLocale → description | Optional | Not applicable to CRM POS Functions. | |
saveContactHistory → userLocale → lastUpdated | Optional | Not applicable to CRM POS Functions. |
Response
Response Headers
There are no response headers.
Response Body
Element | Type | Description |
---|---|---|
saveContactHistoryResponse → CustomerContactHistory | Complex Type | Contains the Contact History Details. |
saveContactHistoryResponse → CustomerContactHistory → contactDate | DateTime | The date and the time that the contact history details were recorded. |
saveContactHistoryResponse → CustomerContactHistory → reasonId | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → CustomerContactHistory → reasonId → reasonId | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → CustomerContactHistory → reasonId → regionId | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → CustomerContactHistory → deviceId | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → CustomerContactHistory → locationId | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → CustomerContactHistory → subject | String | The Subject details of the contact history. |
saveContactHistoryResponse → CustomerContactHistory → contactHistoryId | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → CustomerContactHistory → CustomerContactTypeId | String | The Contact type that is recorded. |
saveContactHistoryResponse → CustomerContactHistory → CustomerId | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → CustomerContactHistory → description | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → CustomerContactHistory → lastUpdated | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → CustomerContactHistory → userId | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → errorMessage → fieldErrors | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → errorMessage → fieldErrorsWithContext | Not applicable to CRM POS Functions. | |
saveContactHistoryResponse → errorMessage → pageErrors | Not applicable to CRM POS Functions. |
Request & Response Examples
Request
Request for save contact history:
Request
<ns4:saveContactHistory xmlns:ns4="http://www.enactor.com/crm" xmlns:retail="http://www.enactor.com/retail">
<retail:customerContactHistory>
<retail:contactDate>2025-02-20T12:23:30.324+05:30</retail:contactDate>
<retail:reasonId>
<retail:reasonId/>
<retail:regionId groupTypeId="region"/>
</retail:reasonId>
<retail:deviceId>pos10@0005.enactor</retail:deviceId>
<retail:locationId/>
<retail:subject/>
<retail:customerContactTypeId>PHONE_C_APPOINT</retail:customerContactTypeId>
<retail:customerId>100</retail:customerId>
<retail:description/>
<retail:userId>000101</retail:userId>
</retail:customerContactHistory>
<retail:user>
<retail:dateTimeActivated>2021-05-18T01:00:42+05:30</retail:dateTimeActivated>
<retail:displayName>Hertford Manager</retail:displayName>
<retail:employeeId/>
<retail:localeId variant="" country="GB">en</retail:localeId>
<retail:locationId>0001</retail:locationId>
<retail:password>lNBrhb6ALqsxA3DWMAe/zgW5cy6o+8TEXeU2oY2G0rQ=lQ4KSvqYhYk=</retail:password>
<retail:passwordLastChanged>2024-11-21T14:59:50.373+05:30</retail:passwordLastChanged>
<retail:forceChangePassword>false</retail:forceChangePassword>
<retail:strongPassword>false</retail:strongPassword>
<retail:previousPasswords>
<retail:password>oqW83Innq91Uiz9c3RcjpvvNMNd84Qg9ZeYZ5nwVxX4=r5XlmzAySDw=</retail:password>
</retail:previousPasswords>
<retail:shortId>00010100</retail:shortId>
<retail:address>
<retail:countryCodeId/>
<retail:typeId/>
<retail:isTemplate>false</retail:isTemplate>
</retail:address>
<retail:userId>000101</retail:userId>
<retail:userName>
<retail:surname>Hertford Manager</retail:surname>
<retail:forename>000101</retail:forename>
<retail:initials>JS</retail:initials>
<retail:dateOfBirth>1966-03-13T05:30:00+05:30</retail:dateOfBirth>
</retail:userName>
<retail:teamId>TEAM</retail:teamId>
<retail:timePeriod>
<core:dayOfWeek>1</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>2</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>3</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>4</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>5</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>6</core:dayOfWeek>
</retail:timePeriod>
<retail:timePeriod>
<core:dayOfWeek>7</core:dayOfWeek>
</retail:timePeriod>
<retail:singleSignOnUserId/>
<retail:singleSignOnCommonName/>
<retail:lastUpdated>2024-12-20T13:30:22.904+05:30</retail:lastUpdated>
<retail:fiscalUserReference/>
<retail:templateKey>STORE_MANAGER_UK</retail:templateKey>
<retail:isTemplate>false</retail:isTemplate>
<retail:emailAccountName>enactor.test@gmail.com</retail:emailAccountName>
<retail:emailAddress>enactor.test@gmail.com</retail:emailAddress>
<retail:emailEncryptedPassword>smG+rsrfBuKrdaJPv30rhg==</retail:emailEncryptedPassword>
</retail:user>
<core:userLocale>
<core:language>en</core:language>
<core:country>GB</core:country>
<core:variant/>
<core:description>English (UK)</core:description>
<core:lastUpdated>2024-10-01T15:02:33.703+05:30</core:lastUpdated>
</core:userLocale>
</ns4:saveContactHistory>
Response
Following is an example response for Save Contact History request:
Response
<ns5:saveContactHistoryResponse xmlns:ns5="http://www.enactor.com/crm" xmlns:core="http://www.enactor.com/core" xmlns:retail="http://www.enactor.com/retail">
<retail:customerContactHistory>
<retail:contactDate>2025-02-20T06:53:30.324Z</retail:contactDate>
<retail:reasonId>
<retail:reasonId/>
<retail:regionId groupTypeId="region"/>
</retail:reasonId>
<retail:deviceId>pos10@0005.enactor</retail:deviceId>
<retail:locationId/>
<retail:subject/>
<retail:contactHistoryId>f982:6ec83312591:203d58c4-:c48bfa609a154019</retail:contactHistoryId>
<retail:customerContactTypeId>PHONE_C_APPOINT</retail:customerContactTypeId>
<retail:customerId>100</retail:customerId>
<retail:description/>
<retail:lastUpdated>2025-02-20T06:53:50.403Z</retail:lastUpdated>
<retail:userId>000101</retail:userId>
</retail:customerContactHistory>
<core:errorMessage>
<core:fieldErrors/>
<core:fieldErrorsWithContext/>
<core:pageErrors/>
</core:errorMessage>
</ns5:saveContactHistoryResponse>