当用户将某个项目作为访客添加到购物车并使用其有效凭据登录时,我需要了解有关后端流程的更多信息。为guest虚拟机创建的orderId将迁移到注册用户的id。有人可以解释一下这是如何处理的?命令和数据库表的详细信息会很有用。
我读过有关MigrateUserEntries命令但我不确定这是否正确。
提前致谢。
答案 0 :(得分:1)
答案 1 :(得分:1)
但这里的诀窍是: -
public class MigrateUserEntriesCmdImpl
extends TaskCommandImpl
implements MigrateUserEntriesCmd
此任务命令用于将一个用户拥有的资源迁移到另一个用户。迁移的必需资源是地址,当前订单,兴趣商品,订单商品,订单和订单模板。
默认情况下,此命令不会合并2个用户的购物车,但可以通过以下方式配置它:
a)将命令上下文中request属性中的mergeCart标志设置为true。
OR:
b)将wc-server.xml中的MemberSubSystem / MergeCartsAtAuthentication / enabled设置为true。 请求属性中的mergeCart标志将具有更高的优先级。
在执行此任务命令之前,应执行以下设置:
setOldUser() - > getOldUser()
此方法检索要将资源迁移到新用户的旧用户。
setNewUser() - > getNewUser()
此方法从旧用户检索作为迁移资源的收件人的新用户。
这些OldUser和NewUser都能够从关注JSP的UserAccessBean中检索。
migrateOrderItem(OrderItemAccessBean abOrderItem, UserAccessBean abNewUser, CommandContext newUserCmdCtx)
此方法将订单商品迁移到新用户。
答案 2 :(得分:0)
首先,对WCS商务中用户生命周期的一些评论: 1-用户以USER ID = -1002的通用用户访问了站点 2-当用户将任何项目添加到他的购物车时,WCS创建一个OrderId并将其分配给新创建的USER ID,在这种情况下称为“guest”用户 (#1和#2都有)userType = G. 3-当用户使用登录表单登录时,它默认附加到struts配置中的LogonCmd,如果您反编译该控制器命令,您将看到它正在调用MigrateUserEntriesCmd任务命令,该命令负责迁移地址,当前订单,兴趣项目,订单物料,订单和订单模板。 使用的新orderID是Registered OrderId。
我建议您使用安装到RAD的反编译器,以便您可以反编译IBM类以更好地理解逻辑,然后将您的代码自定义为IBM最佳实践(扩展命令等) 我使用JAD eclipse插件进行反编译。
由于 阿贝德
答案 3 :(得分:0)
在登录页面中,当用户Guest和OrderItemMove使用
命令时,添加此代码<pre>
<c:if test="${userType == 'G'}">
<wcf:url var="orderMove" value="OrderItemMove" type="Ajax">
<wcf:param name="toOrderId" value="."/>
<wcf:param name="deleteIfEmpty" value="*"/>
<wcf:param name="fromOrderId" value="*"/>
<wcf:param name="continue" value="1"/>
<wcf:param name="createIfEmpty" value="1"/>
<wcf:param name="calculationUsageId" value="-1" />
<wcf:param name="calculationUsageId" value="-2" />
<wcf:param name="calculationUsageId" value="-7" />
<wcf:param name="updatePrices" value="0"/>
</wcf:url>
</c:if>
</pre>
按钮javascript代码用户点击:
LogonSubmit(document.Logon,'<c:out value='${orderMove}'/>','<c:out value='${afterOrderCalculateURL}'/>');void(0);">
验证后形成网址
function LogonSubmit{
var completeOrderMoveURL = orderMoveURL;
completeOrderMoveURL = completeOrderMoveURL + "&URL=OrderCalculate?URL=" + afterOrderCalculateURL +"&calculationUsageId=-1&calculationUsageId=-2&calculationUsageId=-7";
document.getElementById('URL').value = completeOrderMoveURL;
}
//Then submit the form
form.submit();
我希望此帮助可以在登录后合并项目