Open nek4life opened 2 years ago
I'm able to replicate this without the job directly in the flow in service cloud
Customer list should be valid. First name, last name, email should match newly recreated record. Customer No and Customer ID need to be filled in to similar values that would be sent by the process contact job in SFCC
Hello @nek4life,
Thank you for posting this issue. That's actually the expected behavior, as the person account you are creating initially has no customer list value, so crm-sync is not able to find a match as this value is a hardly-required value here.
Can you please try to put a value in the customer list field when inserting person accounts in Core, and then either run the flow or the job?
Thanks
Hi @jbachelet thanks for the update!
The problem is that a customer is matched, but fails further down in the flow even though when sending the flow request with the customer list ID from commerce.
Here's an example. A customer signs up through a channel that is not commerce cloud. This customer does not have a customer list assigned at this time.
The same customer signs up for an account or is synced through the sync job. The sync request to the flow includes the customer list and a customer is matched. Even though the flow has match the customer and the incoming request has the customer list ID sent in with the request this flow throws the above error.
Expected result would be that the customer is matched and the customer list is assigned based on the incoming request.
Hopefully this additional detail explains the problem a bit better.
Hello @nek4life ,
Thank you for this well-detailed context, it totally makes sense to me now. Apologize if I did not get it the first time. I'll look into this and improve this piece of the crm-sync core matching logic to ensure this use case is covered.
Will let you know.
Thanks @jbachelet! Slightly related, it does seem a bit odd that a customer list ID is expected even with guest checkout as that customer may or may not actually be a registered customer and not be assigned to an actual customer list.
Since there isn't any support for syncing ad-hoc forms at this time we looked at how guest checkouts worked since they are a similar use case and were able to reuse the flow, however we still need to send a customer list in for this as well. Ideally the request wouldn't require a customer list because that customer for either ad-hoc form like an email signup or guest checkout really shouldn't be assigned to a customer list.
Perhaps this is a larger architectural issue related to how the api connection details are stored within the framework. For this issue I don't expect this to be resolved, but wanted to mention as others may be facing the same issue or questions about their implementation.
@jbachelet : We are also facing a similar issue. In our case, the client has SF OMS enabled and OMS creates a person account when a new order is created in the system and no existing person account exists yet in SF. Now, if the same customer tries to create an account in SFCC at a later stage, we get the same error as in the issue description.
Describe the bug When running the synchronization job with existing records in service account that match up to existing records in commerce cloud the work flow fails with the following error.
To Reproduce Steps to reproduce the behavior:
Expected behavior Account should be matched and updated with the current customer list, customer no and customer id in order for account to be properly synchronized. This job is needed when establishing connector with existing commerce cloud and service cloud instances