Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hybris 同一客人的两份订单_Hybris - Fatal编程技术网

Hybris 同一客人的两份订单

Hybris 同一客人的两份订单,hybris,Hybris,在我们的项目中出现了一种罕见的情况,即在生产环境中将两个订单映射到同一客户。但是,每次来宾用户下订单时,都会立即创建一个具有来宾id的新用户。 要复制这种情况,测试场景应该是什么?可能是这些来宾用户提供了相同的电子邮件地址,或者是您的电子邮件中不需要的字符清理代码使它们相同。创建了一个具有特定生成uid的来宾客户。此uid的生成方式如下: UUID.randomUUID().toString() + "|" + email 在极不可能的情况下,对于具有相同电子邮件的来宾客户,会生成相同的UUI

在我们的项目中出现了一种罕见的情况,即在生产环境中将两个订单映射到同一客户。但是,每次来宾用户下订单时,都会立即创建一个具有来宾id的新用户。
要复制这种情况,测试场景应该是什么?

可能是这些来宾用户提供了相同的电子邮件地址,或者是您的电子邮件中不需要的字符清理代码使它们相同。

创建了一个具有特定生成uid的来宾客户。此uid的生成方式如下:

UUID.randomUUID().toString() + "|" + email
在极不可能的情况下,对于具有相同电子邮件的来宾客户,会生成相同的UUID,可能会从数据库中检索该客户并为其分配第二个购物车。但是,这会引发DuplicateUidException并阻止执行以下代码

有关更多详细信息,请参阅此方法:


de.hybris.platform.commercefacades.customer.impl.DefaultCustomerFacade#createGuestUserForAnonymousCheckout

非常感谢您的回复。您认为用户是否做了一些可能导致这种情况的事情?我不这么认为。。。可能是用户在订单确认页面上订购后注册的?但之后它就不应该再是客串客户了。。。除非之后进程被中断。。。看看:de.hybris.platform.commerceservices.customer.impl.DefaultCustomerAccountService#convertGuestToCustomer