# 平台电商
网易七鱼在 V3.2 版本中加入了平台商家企业的支持,平台商家就是类似京东,天猫一类的企业,下属很多其他的第三方商家,每个第三方商家都能够独立管理自己的客服,平台不直接管理客服的分配,绩效等日常工作。如果您不是平台商家企业,可以忽略这部分内容。
本节内容仅仅介绍平台电商接入的相关知识,所有内容是在前面内容基础上编写的,有关 SDK 接入,客服分配,UI 定制等基础知识,请先阅读前文内容。
# 分配商家
平台商家在申请客服时需要指定商家ID,需要在打开会话界面时传入的ConsultSource
中指定shopId
,shopId
为企业在管理后台创建商家时填入的商家ID。如果不指定shopId
将默认申请平台企业下的客服。
# 商家入口和最近联系商家入口
七鱼客服SDK可以在会话界面添加商家入口和最近联系商家列表入口(以下简称会话列表),商家入口位于评价按钮的左侧,会话列表入口位于消息流的右上角以浮层模式展现。
如果需要开启商家入口,需要在打开会话界面时传入的ConsultSource
中指定shopEntrance
,如果不指定将不显示商家入口。ShopEntrance
中的字段通过ShopEntrance.Builder
设置,包含如下信息
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
logo | String | 商家logo url | 图片地址 |
name | String | 商家名称 | 最多显示三个字符超出将显示“xx...” |
如果需要开启会话列表入口,需要在ConsultSource
中指定sessionListEntrance
,如果不指定将不显示会话列表入口。SessionListEntrance
中的字段通过SessionListEntrance.Builder
设置,包含如下信息
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
imageResId | DrawableRes资源id | 入口图片资源id | 建议为半透明图片,如果不设置将显示默认图片 |
position | Position枚举类型 | 入口位置 | 目前包含TOP_LEFT和TOP_RIGHT,即屏幕左上角和右上角,如果不设置将默认位于右上角 |
同时,需要在初始化 SDK 时,为YSFOptions
的onShopEventListener
赋值,用于用户点击商家入口和会话列表入口时做出响应,示例代码如下
YSFOptions options = new YSFOptions();
options.onShopEventListener = new OnShopEventListener() {
@Override
public boolean onShopEntranceClick(Context context, String shopId) {
// 点击商家入口响应
}
@Override
public boolean onSessionListEntranceClick(Context context) {
// 点击会话列表入口响应,以下为示例代码
SessionListActivity.start(context);
return true;
}
};
# 最近联系商家列表
- 获取最近联系商家列表(以下简称会话列表),可用于展示会话列表
/**
* 获取最近联系商家列表
*
* @return 最近联系商家列表
*/
List<Session> sessionList = POPManager.getSessionList();
该接口返回一个Session
列表,Session
是一个包含会话信息的接口,该接口包含的方法如下
方法 | 返回类型 | 方法说明 | 备注 |
---|---|---|---|
getContactId() | String | 获取商家ID | |
getMsgStatus() | MsgStatusEnum | 获取最后一条消息状态 | MsgStatusEnum为消息状态,包含发送中、已发送等 |
getUnreadCount() | int | 获取商家的未读消息条数 | |
getContent() | String | 获取最后一条消息的预览内容 | |
getTime() | long | 获取最后一条消息的时间戳 |
- 获取会话状态,返回值 SessionStatusEnum为会话状态,如会话中、排队中等
/**
* 获取会话状态
* @param shopId 商家ID
* @return 当前会话状态
*/
SessionStatusEnum statusEnum = POPManager.querySessionStatus(String shopId);
- 删除最近联系商家记录
/**
* 删除最近联系商家记录
*
* @param shopId 商家ID
* @param clearMsgHistory 是否同时清空消息记录
*/
POPManager.deleteSession(String shopId, boolean clearMsgHistory);
- 监听会话列表更新
/**
* 注册/注销最近联系商家列表更新监听器(添加、删除、新消息等)
*
* @param add true,注册;否则注销,请务必在关闭界面时注销此监听器
*/
POPManager.addOnSessionListChangedListener(OnSessionListChangedListener listener, boolean add);
OnSessionListChangedListener
包含会话更新和会话删除回调
/**
* 商家会话列表监听器
*/
public interface OnSessionListChangedListener {
/**
* 商家会话发生变化(更新/添加)
*
* @param updateSessionList 变化的商家会话列表
*/
void onSessionUpdate(List<Session> updateSessionList);
/**
* 删除商家会话
*
* @param shopId 商家ID
*/
void onSessionDelete(String shopId);
}
开发者需要在回调中处理会话列表更新的逻辑,以同步更新界面。
# 获取商家信息
由于七鱼SDK对会话和商家信息的管理是独立的,因此在POPManager.getSessionList()
接口返回的信息中没有包含商家信息,如果要获取商家信息,需要调用以下接口
/**
* 根据商家ID获取商家信息,如名称,logo
*
* @param shopId 商家ID
* @return 如果用户联系过该商家,返回商家信息,否则返回 null
*/
ShopInfo shopInfo = POPManager.getShopInfo(String shopId);
ShopInfo
接口包含如下方法
方法 | 返回类型 | 说明 | 备注 |
---|---|---|---|
getAccount() | String | 获取商家ID | 即查询商家信息时传入的shopId |
getName() | String | 获取商家名称 | |
getAvatar() | String | 获取商家logo | 图片地址 |