当时方位: 主页 > > IBM > IBM软件 > IBM WebSphere Commerce在Madisons中的客户支撑

IBM WebSphere Commerce在Madisons中的客户支撑

2014-05-05 17:16 来历:IBM 作者:Ashish Deshpande 人气指数: 我要谈论

客户拟定这个术语指的是一个流程,在该流程中,客服代表(CSR)有权运用客户/购物者的身份,代表他们履行某些操作。这些客户是体系中的已注册购物者。客户拟定这个术语能够与引导购物交换运用。

WebSphere Commerce 供给事务用户东西 (WebSphere Commerce Accelerator and Sales Center),CSR 能够在这儿办理来自潜在客户的查询。不过,这些东西是不同的运用程序,并且与顾客用于购物的店面运用程序的外观有所不同。尽管经过这些东西来履行 CSR 操作很常见,但一些商家期望运用店面体会为其客户供给客户支撑。运用店面来供给客户支撑的一些首要驱动要素包含:

  • 为一切用户供给共同的用户界面
  • 让 CSR 能够查看购物者在店面上看到了什么,以便他们能够缩短事情的处理时刻
  • 在购物者在网站上进行购物的时分帮忙他们

本文展现了怎么运用 Madisons 店面来完结客户支撑操作。

客户拟定

客户拟定流程答应 CSR 履行多种操作,比方:

  • 修正购物者的个人资料信息
  • 查看订单信息
  • 查看在订单上核算的扣头
  • 查看优惠券的情况
  • 修正购物者正在处理的订单

WebSphere Commerce 供给了能够完结客户拟定场景的 API。办理员能够经过运转 RunAsUserSetInSession URL,在一个会话中代表注册客户履行多个恳求。假如办理员具有代表注册客户所需的权限,那么办理员能够运用该客户的身份履行一切后续恳求。默许情况下,代表注册用户的办理员能够履行该注册客户有权履行的一切操作。可是,在办理员代表注册客户进行操作时,办理员不能运转任何办理指令。

在 RunAsUserSetInSession URL 成功地将办理员的身份切换为注册客户的身份后,WebSphere Commerce:

  • 将与当时恳求相关的用户 ID 设置为指定客户的 ID
  • 导致指令上下文从头核算值,如客户的有用安排
  • 导致一切后续指令(直到切换是反向的)将客户的身份和有用安排包含在办理员的会话信息中
  • 在每个后续恳求的进程中,从办理员的会话中提取客户的身份和有用安排

在 WebSphere Commerce 答应办理员以客户的身份运转一个指令之前,保证办理员具有履行该操作所需的授权。WebSphere Commerce:

  • 查看客户是否在办理员的授权域内已注册
  • 查看是否已在 forUser 拜访操控战略中界说了该指令
  • 查看客户是否能够履行该指令

为了切换回办理员的原始身份,办理员运转 RestoreOriginalUserSetInSession URL。此指令从办理员的会话中删去客户的信息,并将办理员的会话信息康复到切换为顾客身份之前的情况。

订单确认

在结帐进程中,订单实体阅历多种情况,并且它对订单金额有直接的影响。因而,与其他实体不同,它是由 WebSphere Commerce 中被称为订单确认的程序看护。作为零售商,您或许答应 CSR 和购物者一起更新购物者的个人资料。可是,您或许不期望让 CSR 和购物者一起更新购物者的订单。因而,让咱们来探究有关订单确认的更多信息。

订单确认可防止多个用户一起修正订单。当第一个用户开端修正订单时,订单就被确认。假如其他用户企图修正同一个订单,他们会收到一条音讯,指出他们不能修正订单。默许情况下,已启用订单确认。

您能够经过更改商务实例配备文件来禁用订单确认。答应多个用户一起处理同一个订单,这或许导致呈现数据完好性问题,因而,有必要当心处理。

在此定制中,不会禁用订单确认;而是保存默许的订单确认设置。可是,您需求了解在启用确认的情况下,体系怎么答应购物者和 CSR 处理相同的订单。

API

以下是在此完结中要运用的 API。本文对每个这些组件都进行了具体阐明。

  • RunAsUserSetInSession - 答应具有所需权限的办理员以指定客户的身份在同一个会话中运转后续指令。拜访操控结构会查看当时用户是否归于下列人物之一:
    • 客服代表 (CSR)
    • 客服主管 (CSS)
    • 运营司理
    • 出售司理
    • 出售人员

    参数值是:

    • langId
    • URL - 在成功完结指令时调用的 URL
    • storeId
    • runAsUserId - 注册客户的用户 ID,这是运转后续恳求的客户身份

    示例 URL:https://hostname/webapp/wcs/stores/servlet/RunAsUserSetInSession?runAsUserId=32005 &URL=UserAccountView

  • RestoreOriginalUserSetInSession - 重置后续指令的会话,则办理员经过运转 RunAsUserSetInSession 指令在会话中树立 runAsUser 值后,他们康复到本来的办理员用户 ID。

    参数值是:

    • langId
    • URL - 在成功完结指令时调用的 URL
    • storeId

    示例 URL:https://hostname/webapp/wcs/stores/servlet/RestoreOriginalUserSetInSession?storeId=11001&URL=AjaxLogonForm&myAcctMain=1

  • AdvancedOrderEditBegin - 树立一个订单,以便修正或更改它,并开端一个修正会话。它将一个修正器 ID 附加到订单。此 URL 查看订单和订单项目是否可修正。假如它们是可修正的,除非它们的情况是 NEW、P 或 E,不然将其情况修正为 E。一起,假如订单和订单项目在购物车中,则不修正情况。在开释已提交的订单来履行它们之前,能够修正它们。

    参数值是:

    • orderId
    • URL - 在成功完结指令时调用的 URL
    • storeId

    示例 URL: http://hostname/webapp/wcs/stores/servlet/AdvancedOrderEditBegin?orderId=13502&URL=StoreView

  • AdvancedOrderEditEnd - 封闭订单的修正情况,并从订单中删去修正器 ID。也便是说,这个 URL 从 ORDERS 表的订单中删去 EDITOR_ID 值。只要当订单的情况为 NEW、P 或 E 时,AdvancedOrderEditEnd URL 才干够被用来封闭订单的修正。主情况在调用之后就不会产生改动。

    参数值是:

    • orderId
    • URL - 在成功完结指令时调用的 URL
    • storeId

    示例 URL: http://hostname/webapp/wcs/stores/servlet/AdvancedOrderEditEnd?orderId=13502&URL=StoreView

  • OrderLockingHelper - 此辅佐类完结了一些办法来履行订单资源的确认和解锁。

定制进程

客户拟定流程从一个客户查找开端。当时的 Madisons 商铺没有能够供 CSR 用于履行拟定的客户查找特性。因而,您需求在 Madisons 商铺中为 CSR 履行一些配备,以查找一个客户,然后为选定的客户履行拟定。定制的另一个方面是在拟定进程中处理订单确认。

为了处理由购物者创立的订单,CSR 需求取得该订单上的锁。相同,在完结订单修正时,CSR 需求开释该锁。正如在 API 部分中所说到的那样,AdvancedOrderEditBeginCmd 和 AdvancedOrderEditEndCmd 指令了供给这些操作。可是,这些指令有一个约束。能够开释订单上的锁的专一用户便是取得该订单上的锁的用户。假如其他 CSR 测验取得或开释锁,这些指令都将失利。不过,在实在的场景中,这种约束或许不被承受。企业或许会期望,无论谁确认了订单,都答应一切授权 CSR 删去订单上的锁,使购物者能够继续处理该订单。您的定制可保证精确地满意这种需求。体系首要查看订单是否被确认。假如订单已被确认,则对其解锁,然后答应 CSR 开释订单上的锁。

为此定制开发的一切视图和指令都能够由只具有一个客户服务人物的用户来调用。保证拜访操控战略是相同的。您能够在顺便的源中查看相同的内容。

UI 定制

Madisons starter store 供给了一个正常运作的顾客在线直销商铺所需的一切页面和特性。本节将介绍 Madisons 店面中所需的一些定制。

客户查找

为了让 CSR 能够履行客户拟定,第一步是履行配备,让 CSR 能够查找客户。所以,要构建一个只能由 CSR 履行的新 Customer Search 页面。

  1. 创立一个名为 CustomerSearchDisplay.jsp 的 JSP,如 清单 1 所示。此 JSP 显现查找表单。在 struts 配备扩展文件中注册此视图。CustomerSearchView 让 CSR 能够查找客户。

    清单 1. CustomerSearchDisplay.jsp

    <action path="/CustomerSearchView" 
    type="com.ibm.commerce.struts.BaseAction">
    <set-property property="credentialsAccepted" value="<storeId>:P "/>
    </action>
    
    <forward className="com.ibm.commerce.struts.ECActionForward" 
    name="CustomerSearchView/<storeId>" 
    path="/UserArea/AccountSection/UserCustomSearchDisplay.jsp"/>
  2. 经过运转 acpload 指令加载拜访操控战略。

客户查找成果

在 CSR 提交查找后,显现查找成果页面。

  1. 创立一个名为 CustomerSearchResultsDisplay 的 JSP,如 清单 2 所示。此 JSP 将会显现查找成果。它调用 Person 服务来检索客户具体信息,并且还答应 CSR 从查找成果选择要拟定的客户。CSR 单击 Start Enactment 按钮。在 struts 配备扩展文件中注册此视图。

    清单 2. CustomerSearchResultsDisplay.jsp

    <action path="/CustomerSearchResultsView"
    type="com.ibm.commerce.struts.BaseAction">
    <set-property property="credentialsAccepted" value="<storeId>:P "/>
    </action>
    
    <forward className="com.ibm.commerce.struts.ECActionForward" 
    name="CustomerSearchResultsView/<storeId>" 
    path="/UserArea/AccountSection/CustomSearchResultsDisplay.jsp"/>
  2. 经过运转 acpload 指令加载拜访操控战略。

页眉链接

页眉菜单包含商铺徽标,徽标的下方左边有类别列表。在右侧,页眉供给了一个查找栏,并在它的下方显现迷你购物车。在查找栏和迷你购物车之间还有多个链接,比方 Shopping Cart、Advanced Search 和 Sign Out。让咱们在 Sign Out 链接前面增加一个 Customer Search 链接。

  1. 在页眉中增加 Customer Search 导航链接,这样 CSR 就能够导航到 Customer Search 页面。此链接仅供客户服务用户人物运用。
  2. 相同的,在页眉中创立一个新的链接,用它来停止拟定流程。您能够将此链接称为 Drop Customer Session。当拟定为活动情况时,用户可经过单击此链接来完毕拟定。需求要点留意的是,直到 CSR 完毕拟守时,Customer Search 选项才对 CSR 可用。该操作的思路是:先完结拟定,然后继续下一次客户查找。要进行这些更改,可修正名为 CachedHeaderDisplayExt.jspf 的现有扩展页眉 JSP,如 清单 3 所示。

    清单 3. CachedHeaderDisplayExt.jspf

    <wcbase:useBean id="eBean" 
    classname="com.ibm.commerce.sample.beans.MyCompanyEnactmentDataBean">
    </wcbase:useBean>
    
    <c:if test="${eBean.CSRActive}">
    	<wcf:url var="CustomerSearchURL" value="CustomerSearchView" >
             <wcf:param name="langId" value="${langId}" />
             <wcf:param name="storeId" value="${WCParam.storeId}" />
             <wcf:param name="catalogId" value="${WCParam.catalogId}" />
    	</wcf:url>
    	
    	<span><a href='<c:out value="${CustomerSearchURL}"/>' ><fmt:message 
    key="TITLE_CUSTOM_SEARCH" bundle="${storeText}" /></a>
    	</span>
    	<fmt:message key="DIVIDING_BAR" bundle="${storeText}" />
    </c:if>

    如您所见,这个 JSP 片段是根据 databean 来确认的:

    • 拟定是否有用。
    • 登入的用户是否具有客户服务人物。
  3. 创立一个名为 MyCompanyEnactmentDataBean 的智能 databean,并完结一个逻辑,用于确认拟定是否有用。从附件的源查看代码。

事务逻辑定制

您能够在现有的事务逻辑之前或之后增加新的事务逻辑,或许在其之前和之后都增加新的事务逻辑。在这儿,需求在 RunAsSetInSession 之前增加逻辑,以保证在 CSR 处理订单之前解锁订单。相同,您需求增加逻辑来解锁在 CSR 康复会话后被确认的订单。

订单解锁

订单确认可防止多个用户一起修正订单。在 CSR 处理订单之前,您需求保证用户的订单已被解锁。

  1. 创立一个名为 MyCompanyExtAdvancedOrderEditBeginCmd 的指令,该指令扩展了 AdvancedOrderEditBeginCmd 指令。在 performExecute() 办法中完结逻辑(如 清单 4 所示)。

    清单 4. 解锁订单

    OrderLockingHelper helper = new OrderLockingHelper ();
    if(helper.isLocked(orderId)) {
       Logger.log("The Order is currently locked by " + 
    helper.getLockedByLogonId(orderId));
       helper.lock(orderId, true);
       Logger.log("Order is now locked by  " + getCommandContext().getUserId());
       super.performExecute();
    }
  2. 在 CMDREG 中注册此指令完结。您需求更新 CMDREG 项,如 清单 5 所示。

    清单 5. 在 CMDREG 中注册 MyCompanyExtAdvancedOrderEditBeginCmd 指令

    update cmdreg set 
    classname='com.ibm.commerce.sample.commands.MyCompanyExtAdvancedOrderEditBeginCmdIm
    pl' where 
    interfacename='com.ibm.commerce.ordermanagement.commands.AdvancedOrderEditBeginCmd' 
    and storeent_id=0;

拟定指令

您需求一个新的操控器指令,运用它作为一个拟定指令。当 CSR 在 Customer Search 页面上单击 Start Enactment 时,调用该指令。

  1. 创立一个名为 MyCompanyEnactmentCmd 的操控器指令。拟定逻辑包含:
    • 查找用户的挂起订单
    • 对挂起订单调用 AdvancedOrderEditBeginCmd
    • 调用 RunAsSetInSession URL 初始化拟定
    • 将用户重定向到 Home 页面

    要要点留意的是,只要具有客户服务人物的用户才干调用 AdvancedOrderEditBeginCmd 指令。换句话说,假如在拟定后调用此指令,调用将会失利。所以,需求保证在 RusAsUserSetInSession 指令之前调用它。

  2. 在 CMDREG 中注册 MyCompanyEnactmentCmd 指令,如 清单 6 所示。

    清单 6. 在 CMDREG 中注册 MyCompanyEnactmentCmd 指令

    insert into CMDREG (STOREENT_ID, INTERFACENAME, DESCRIPTION, CLASSNAME, 
    TARGET) values (0,'com.ibm.commerce.sample.commands.MyCompanyEnactmentCmd', 
    'This is a new controller command for enactment.', 
    'com.ibm.commerce.sample.commands.MyCompanyEnactmentCmdImpl','Local');
  3. 为 MyCompanyEnactmentCmd 指令创立 struts 操作映射。
  4. 经过运转 acpload 指令加载拜访操控战略。

会话停止指令

需求运用会话停止指令来复原会话并解锁订单,让购物者能够继续处理这个订单。

  1. 创立一个名为 MyCompanyEnactmentEndCmd 的操控器指令。当 CSR 单击在页面的页眉部分中的 Drop Customer Session 链接时调用它。该链接首要调用 RestoreOriginalUserSetInSession 指令,然后将恳求重定向到该指令。在拟定进程中不能调用此指令,所以有必要先经过调用 Restore 指令停止它。
  2. 假如订单在拟定进程中被确认,则需求该指令来解锁订单。
    • 读取 enactedUserId,并找到用户的挂起订单。假如它是由当时用户确认的,则调用 AdvancedOrderEditEndCmd 指令。
    • 将用户重定向到 Home 页面。
  3. 在 CMDREG 中注册 MyCompanyEnactmentEndCmd 指令,如 清单 7 所示。

    清单 7. 在 CMDREG 中注册 MyCompanyEnactmentEndCmd 指令

    insert into CMDREG (STOREENT_ID, INTERFACENAME, DESCRIPTION, CLASSNAME, TARGET) 
    values (0,'com.ibm.commerce.sample.commands.MyCompanyEnactmentEndCmd', 'This is a 
    new controller to terminate the enactment.', 
    'com.ibm.commerce.sample.commands.MyCompanyEnactmentEndCmdImpl','Local');
  4. 为 MyCompanyEnactmentEndCmd 指令创立 struts 操作映射。
  5. 经过运转 acpload 指令来加载拜访操控战略。

运转事务场景

本节概述了两个事务场景。第一个场景演示了 CSR 怎么处理一个由客户创立的挂起订单。在第二个场景中,CSR 协助客户修正客户的个人信息,并创立一个订单。

场景 1

CSR 处理一个由客户创立的挂起订单。CSR 与购物者都处于登录情况,并企图一起修正同一个订单。

  1. 构建项目并从头发动。
  2. 发动一个 Firefox 会话,并导航到 Madisons 主页。以注册用户的身份登录,并且将物品增加到购物车。坚持浏览器会话翻开。

    图 1. 购物者登录

    点击这儿给我发音讯

  3. 发动 Internet Explorer,并导航到 Madisons 主页。以 CSR 身份登录。假如您没有 CSR 配备文件,能够在 Organization Administration Console 中创立一个。

    图 2. CSR 登录

    Madisons 截图,能够看到在购物车中显现的物品。

  4. 单击页眉中的 Customer Search 链接。显现 Customer Search 表单,如 图 3 所示。

    图 3. CSR - 客户查找

    Madisons 屏幕截图显现 CSR 登录后的 Madisons 页面

  5. 运用 Customer Search 表单在体系中查找一个客户。查找操作将在 Customer Search Results 屏幕中显现匹配的客户,如 图 4 所示。

    图 4. 客户查找成果

    Madisons 屏幕截图,显现了 Customer Search 链接和 Customer Search 输入栏

  6. 选中客户并单击 Enact Customer。调查 图 5 中的页眉。再也看不到 Customer Search 链接,并且改为显现 Drop Customer Session 链接。

    图 5. CSR 在拟定客户

    Madisons 屏幕截图,显现客户查找的成果

  7. 导航到购物车页面。
  8. 在 Internet Explorer 中经过将物品增加到购物车来修正订单,如 图 6 所示。

    图 6. CSR 修正客户的订单

    Madisons 屏幕截图,显现了 Customer Search 链接已被 Drop Customer Session 链接替代

  9. 现在,您能够测验从购物者的浏览器会话对同一个订单进行修正。您会看到一个过错,如 图 7 所示。过错的呈现是由于该订单已由 CSR 确认。

    图 7. 客户测验修正订单

    该图显现了 Shopping Cart 页面,其间 CSR 已增加其他物品

  10. 当您在 Internet Explorer 中完结对订单的修正时,请单击 Drop Customer Session,如 图 8 所示。

    图 8. CSR 完毕拟定

    显现在 Shopping Cart 页面上的过错,原因是客户企图修正现在由 CSR 确认的订单

    拟定被完毕,会话康复,如 图 9 所示。

  11. 导航到以购物者身份登录的 Firefox 会话,并改写购物车。您应该能够看到由 CSR 所做的修正。现在作为购物者测验修正订单。您应该能够修正订单,并下订单。

    图 9. 客户修正订单

    Madisons 截图,有一个箭头指出 'Drop Customer Session' 链接的方位

场景 2

CSR 修正客户的个人资料信息。

  1. 客户登录到商铺,在体系中没有挂起订单。
  2. CSR 登录并拟定客户。要要点留意的是,由于不存在挂起订单,CSR 无法确认订单。不过,CSR 能够履行其他活动,比方更新个人资料信息。
  3. 客户将物品增加到购物车中,并创立挂起订单。
  4. CSR 改写购物车,看到挂起订单。不过,CSR 现在不能修正订单,由于锁不是在拟定进程中取得的。假如 CSR 企图对订单履行任何修正,则会显现过错,如 图 10 所示。

    图 10. CSR 看到订单锁过错

    屏幕截图显现来自购物者的 Mozilla Firefox 浏览器会话的购物车

  5. 为了取得在这个挂起订单上的锁,CSR 需求单击 Drop Customer Session 并从头拟定客户。

安全性

CSR 是特权用户,一般在内部网上履行事务操作;也便是说,在防火墙内,可经过拜访开箱即用的事务用户东西来履行事务操作。本文中解说的特性授权 CSR 拜访店面 URL,并在互联网上运转办理指令。尽管这种拜访操控实践关于许多客户来说或许不是问题,但主张您在完结该特性之前先与您的安全团队对该特性进行评价和谈论。

Aurora

此特性也或许在 Aurora starter store 中推出。事务逻辑依然相同。不过,在 JSP 中只需求履行极少量定制。

完毕语

本文解说了在 Madisons starter store 中的客户支撑特性的开发。您还了解到怎么在 CSR 和购物者企图一起修正相同的订单时运用订单确认特性。本文关于期望运用 WebSphere Commerce 店面 UI 来展开客户事务的企业很有用。

咱们感兴趣的内容
小伙伴独爱的新闻
小伙伴还重视了以下信息
小伙伴重视的焦点

小伙伴都在重视的抢手词

芈月传 老司机玩法 萌乐网 黑科技 坐骑揭秘 三国令 铁血皇城 竞技场攻略 书剑恩仇录 披风玩法 配备强化攻略 户外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 哥们网 天书国际 奇珍商城 热血战歌 传奇瑰宝抽奖 门徒 范伟打天下 翻开方式 门徒获取玩法 三大萌宠简介 新手攻略 挂机体系简介 资料副本 大海战 鸵鸟 大黑 热情玩法 门徒战力提高 万世 强化特点 上古降魔 提高战力 配备攻略 九阴绝学 质量引荐 老干妈 激战来袭 大黑游戏 新服亮点 福利多多 画江山 资料片 玩家 九阴真经 江湖儿女 实在场景 实际 虚拟 随机副本 风色轨道 听其自然 ppwan 神助攻 武林秘药 激活八大脉门 九霄劫变 猎命格 天问 大型PVP 花千骨 激战更尽兴 网易mumu 手游玩家 安卓模拟器 安卓 单挑群战 武侠传说 女神 孙尚香专访 胸猛抱团 新游 占山为王 跨服城战 蜀山战纪 剑雨江湖 攻略 实时VR交互 七大女神代言 酷炫走江湖 国际四大杀手 玩家专访 三国经典 大制造 好玩网页游戏 盘点 世界霸主 境地玩法 莽荒纪 勇闯难关 镜像副本 荒漠霸主 配备通晓 三大战役 鹌小彦奇谈