Question

Is there any way to alter the customer lookup so by default it searches on customer address line 1?


Userlevel 5
Badge +1

I have been asked if the customer lookup on the sales order screen can be made to search by address line 1 by default instead of customer name. This is before opening the customer lookup, just typing straight into the Customer field.

There are a couple of reasons for this:

  1. Our CR team is used to asking for the customer address and looking up the customer from that. It is more efficient to ask for an address and look up 43 Acacia Avenue for example than Kris Kristofferson. First Kris could be Kris or Chris and then there are likely to be more than one Kris, Chris etc whereas the likelihood of multiple 43 Acacia Avenues is much less.
  1. Asking the customer to spell their name is time consuming and prone to errors and makes for a worse customer experience. Many of our customers have names that are not easy to spell just from hearing the name.

Is this possible with a simple customization or would it be a complicated thing we’d need to approach our partner for?

We have already customized the selector as below:

[PXMergeAttributes(Method = MergeMethod.Merge)]
[PXCustomizeSelectorColumns(
typeof(PX.Objects.AR.Customer.acctCD),
typeof(PX.Objects.AR.Customer.acctName),
typeof(PX.Objects.CR.Contact.displayName),
typeof(PX.Objects.CR.Contact.phone1),
typeof(PX.Objects.CR.Contact.eMail),
typeof(PX.Objects.CR.Address.addressLine1),
typeof(PX.Objects.CR.Address.addressLine2),
typeof(PX.Objects.CR.Address.postalCode),
//typeof(PX.Objects.AR.CustomerAttribute.Contact.phone1),
typeof(PX.Objects.CR.Address.city),
typeof(PX.Objects.CR.Address.state),
typeof(PX.Objects.CR.Address.countryID),
//typeof(PX.Objects.AR.CustomerAttribute.Location.taxRegistrationID),
typeof(PX.Objects.AR.Customer.curyID),
typeof(PX.Objects.AR.Customer.customerClassID),
typeof(PX.Objects.AR.Customer.status)
)]
[PXSelector(typeof(Search2<Customer.bAccountID,
InnerJoin<Contact,
On<Customer.primaryContactID, Equal<Contact.contactID>>,
InnerJoin<Address,
On<Contact.defAddressID, Equal<Address.addressID>>
>
>
>),
typeof(Customer.acctCD), SubstituteKey=typeof(Customer.acctCD), DescriptionField = typeof(Customer.acctName))]
protected virtual void SOOrder_CustomerID_CacheAttached(PXCache cache)
{

}

[PXMergeAttributes(Method = MergeMethod.Merge)]
[PXUIField(DisplayName = "Primary Contact")]
protected virtual void Contact_DisplayName_CacheAttached(PXCache cache)
{
}

Phil


4 replies

Userlevel 7
Badge +17

Hi @ppowell  Have you tried like below ?

 

 

Userlevel 5
Badge +1

@Naveen Boga  Thanks so much for your reply. I had added the address line 1 to fast filter fields so that bit works fine when in the lookup screen as you have shown.  I mean we’d like it to find the customer in the initial box as below where is says ‘No results found’. I’m not sure how or even if I can alter the customer field so the initial search uses the address line 1 instead of the name:

 

Thanks for your help,

 

Phil

Userlevel 7
Badge

Hi @ppowell  - were you ever able to find a solution for this issue? Thank you!

Userlevel 5
Badge +1

@Chris Hackett We gave up eventually and are just making do with using the Selector and then searching in there.  It would be nice to eliminate the extra step if possible but it’s not a big issue.

 

Thanks,

 

Phil

Reply


About Acumatica ERP system
Acumatica Cloud ERP provides the best business management solution for transforming your company to thrive in the new digital economy. Built on a future-proof platform with open architecture for rapid integrations, scalability, and ease of use, Acumatica delivers unparalleled value to small and midmarket organizations. Connected Business. Delivered.
© 2008 — 2024  Acumatica, Inc. All rights reserved