# 平台电商

网易七鱼在 V3.2 版本中加入了平台商家企业的支持,平台商家就是类似京东,天猫一类的企业,下属很多其他的第三方商家,每个第三方商家都能够独立管理自己的客服,平台不直接管理客服的分配,绩效等日常工作。如果您不是平台商家企业,可以忽略这部分内容。

本节内容仅仅介绍平台电商接入的相关知识,所有内容是在前面内容基础上编写的,有关 SDK 接入,客服分配,UI 定制等基础知识,请先阅读前文内容。

# 分配商家

平台商家在申请客服时需要指定商家ID,需要在打开会话界面时传入的ConsultSource中指定shopIdshopId为企业在管理后台创建商家时填入的商家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 时,为YSFOptionsonShopEventListener赋值,用于用户点击商家入口和会话列表入口时做出响应,示例代码如下

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 图片地址