Hello Folks,
Its Sunday evening and i am in my balcony planning to publish few blogs (which are in my drafts from long time) before this Sunday is over :) So today i wanted to share quick info on one of the issue we were running into while creating a user on commerce side
Scenario
So, Here is a thing, we were implementing custom domains for our client for their multi site tenant setup, so they have one instance for US, one for Canada likewise and they wanted a user creation to be in that domain
Now our storefronts already had proper domain mapped on sitecore side like following
But as soon as we were trying to create a user from storefront using OOTB registration component, it was giving below exception
972 01:47:16 ERROR DoCommand Failed:Invalid or missing value for property 'Domain'.
972 01:47:16 INFO AUDIT (DemoUS\Anonymous): Add user to role: DemoUS\Extranet User, user: DemoUS\test1@test.com
972 01:47:16 ERROR Invalid or missing value for property 'Domain'.
972 01:47:16 ERROR User created but external Id was not provided.
Now looking at the exception it was time to look into commerce side as we have seen before that while creating a customer it needs a domain, now because for a custom domain, existing OOTB json files of domains will not have that domain and because of that, from sitecore when code run it tries to find that domain which is used while creating a user and it is not able to find it, so simple solution to this is to add that domain to existing list of domains which are available in commerce.
Solution
Now on authoring environment you will find different environment configuration file, in our case we already had our custom environment bootstrapped, so it was referring to our custom environment files, Click Here to read how to create custom environments
So What is needed is to open respective environment files json files and add our specific domains there, like below
1) Go to \CommerceAuthoring_local.ce\wwwroot\data\Environments on your respective roles (i am taking example of authoring here)
2) Find "domain" in the file and add your custom domain, like following
3) Now make sure to run bootstrap to allow changes to be applied and now make sure that you are able to see this domain on customer object while you are creating a customer on commerce side like following
And you should be good to go, next time you create a user it should also create a customer too with that custom domain :)
TIP: This is only applicable if you are using SXA and commerce flow, if you are using commerce in headless environment, you will get the same exception but solution is totally different for that, Read Here the solution written by one of my colleague "Aakash Savalagi" for it
Happy Sunday and good night.
Comments
Post a Comment