【问题标题】:Two orders with same guest customer同一个客人的两个订单
【发布时间】:2018-11-12 13:00:51
【问题描述】:

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

【问题讨论】:

    标签: hybris


    【解决方案1】:

    使用特定生成的 uid 创建来宾客户。这个uid是这样生成的:

    UUID.randomUUID().toString() + "|" + email
    

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

    更多细节参考这个方法:

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

    【讨论】:

    • 非常感谢您的回复。您认为用户可能做了会导致这种情况的事情吗?
    • 我不这么认为...可能是用户在订单确认页面下单后注册的?但之后它应该不再是来宾客户......除非过程后来被中断......看看:de.hybris.platform.commerceservices.customer.impl.DefaultCustomerAccountService#convertGuestToCustomer
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-29
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多