Hybris 同一客人的两份订单
在我们的项目中出现了一种罕见的情况,即在生产环境中将两个订单映射到同一客户。但是,每次来宾用户下订单时,都会立即创建一个具有来宾id的新用户。Hybris 同一客人的两份订单,hybris,Hybris,在我们的项目中出现了一种罕见的情况,即在生产环境中将两个订单映射到同一客户。但是,每次来宾用户下订单时,都会立即创建一个具有来宾id的新用户。 要复制这种情况,测试场景应该是什么?可能是这些来宾用户提供了相同的电子邮件地址,或者是您的电子邮件中不需要的字符清理代码使它们相同。创建了一个具有特定生成uid的来宾客户。此uid的生成方式如下: UUID.randomUUID().toString() + "|" + email 在极不可能的情况下,对于具有相同电子邮件的来宾客户,会生成相同的UUI
要复制这种情况,测试场景应该是什么?可能是这些来宾用户提供了相同的电子邮件地址,或者是您的电子邮件中不需要的字符清理代码使它们相同。创建了一个具有特定生成uid的来宾客户。此uid的生成方式如下:
UUID.randomUUID().toString() + "|" + email
在极不可能的情况下,对于具有相同电子邮件的来宾客户,会生成相同的UUID,可能会从数据库中检索该客户并为其分配第二个购物车。但是,这会引发DuplicateUidException并阻止执行以下代码
有关更多详细信息,请参阅此方法:
de.hybris.platform.commercefacades.customer.impl.DefaultCustomerFacade#createGuestUserForAnonymousCheckout非常感谢您的回复。您认为用户是否做了一些可能导致这种情况的事情?我不这么认为。。。可能是用户在订单确认页面上订购后注册的?但之后它就不应该再是客串客户了。。。除非之后进程被中断。。。看看:de.hybris.platform.commerceservices.customer.impl.DefaultCustomerAccountService#convertGuestToCustomer