电商业务梳理2-导购

导购是电商业务梳理的第三篇,前两篇为

  1. 电商业务梳理

  2. 电商业务梳理1-导流

梳理过程中,想通了很多事情。很长时间没回顾,很多内容都忘记了,正好借这个机会,重新加深一下印象。

这个系列主要聊功能,配上图片与数据结构。会聊为什么需要这个功能,这个功能的演进过程,未来要如何发展,同时更新架构图。梳理完这个系列后,再聊每一部分的具体实现。

这个系列大体分为:导流、导购、商品、购物车、交易、支付、订单、监控、用户体系、搜索。

昨天看毛选,看到一个词叫“狭隘的经验主义”,说的是一些人满足于甚至仅仅满足于他们的局部经验,把它们当做到处可以使用的教条。而“非狭隘的经验主义”指最广大的有实际工作经验的同志,他们的一切有益的经验,是极可宝贵的财产,科学地把这些经验总结起来,作为以后行动中的指导,这是马克思列宁主义。

所以梳理、总结的好处是有理论支撑的,对自己也是极为有利的。

导购是为了引导用户购买。 好的导购能引起用户兴趣,能让用户方便找到想买的商品,所以需要给用户展示最重要的信息。一般涉及以下几点:活动页、首页、分类页。

活动页

活动是电商的重要组成部分,好的活动能够有效增加用户量、销量、网站知名度。

电商初期,我们以极高的频率做活动,一周一个小活动、一月一个大活动,慢慢带起热度和氛围。

那时的玩法相对单一,主要是直降、满减、满赠等。后续我们不断扩充玩法,增加了抢券、抽奖、抢购、秒杀、竞价、拼团、直播,红包、支付减免,大型活动会做配套游戏。市面上的玩法都尝试过,现在常用的都是数据证明效果不错的。

组件化

原因

活动需要占用很多人力,这些人力包括前端、服务端、测试、运营、产品等。

产品:设计活动页面、设计游戏,和研发同学沟通

运营:梳理销售目标,和产品确认活动页面是否能够满足需求

前端:开发活动页面,根据运营提供的数据进行填充

服务端:开发新的玩法、游戏,或者对已有的玩法进行配置,确保在新的活动上能正常使用

测试:测试每一个细节点,确保活动无误

这五个角色间有很多沟通,而且活动开始前运营根据具体情况,很多销售计划需要进行变更,导致前端、服务端同学跟进调整,极易引进线上问题。所以一个大型活动,至少需要提前两个月开始准备。

我们能否从这种困境中走出来呢?而不是每次活动都走重复的流程。

我们能够发现活动页面上的元素比较固定、活动玩法相对齐全,在这种情况下,特别适合组件化。

前端:只需要关注于组件开发,组件里的内容运营自己编排

服务端:沉淀玩法,将玩法配置化;运营自行配置玩法,和前端组件匹配好,玩法便上线了;服务端专注于新的功能开发

产品:将精力放在新增组件、玩法、游戏上

运营:销售目标不需要同步多方,自己能够随意编排活动内容,效率更高

测试:无需重复测试活动;精力放在自动化测试上,解放人力

可以看到,通过组件化,大家都能从重复操作中解放出来,将精力放到更高维度的事情上。对于研发人员而言,如果事情重复三次,就值得用系统化方案解决,这才是以技术推动发展的态度。

最终通过组件编排出的页面,用内容发布系统发布。

实例

活动页面之所以可以组件化,是因为静态内容相对固定,一般包含商品图片、名称、价格、描述、活动时间等。

动态内容的实现也比较简单,因为组件上配置的商品信息必有商品id。动态数据通过接口返回,根据返回的商品id做对应。不过这个接口请求量会比较大,需重点关注,可参考常用缓存技巧

图片

[
    {
        "image":"https:\/\/i01.appmifile.com\/v1\/MI_18455B3E4DA706226CF7535A58E875F0267\/pms_1647422910.83341748.png",
        "is_cos":false,
        "is_bigtap":false,
        "is_damiao":false,
        "name":"Redmi 10 Caribbean Green 4GB+64GB",
        "id":"4221100013",
        "sku":"38796",
        "is_sale":true,
        "market_price":"14999",
        "market_price_num":"14999",
        "price":"10999",
        "price_num":"10999",
        "style_name":"Caribbean Green",
        "commodity_id":"3221100013",
        "product_name":"Redmi 10",
        "currency":"\u20b9",
        "is_presale":false,
        "presale_cos":true,
        "has_packet":false,
        "has_recommend":true,
        "tag":"redmi-10",
        "needSubscribe":false,
        "status":0,
        "status_name":"",
        "status_url":"",
        "diff":0,
        "pb_start":0,
        "goods_dealer":"Xiaomi Technology India Private Limited",
        "manufacturer_details":"Manufactured For: Xiaomi Technology India Private Limited, Building Orchid, Block E, Embassy Tech Village, Marathahalli-Sarjapur Outer Ring Road, Devarabisanahalli, Bengaluru, Karnataka-560103",
        "importer_details":"Not Applicable",
        "country_origin":"India",
        "manufacturer_by":"Manufactured By: As set out on the MRP label of the Product",
        "price_mrp":"10 999.00",
        "market_price_mrp":"14 999.00",
        "cat_name":"Phones",
        "not_for_sale":false,
        "product_id":"5527"
    },
    {
        "image":"https:\/\/i01.appmifile.com\/v1\/MI_18455B3E4DA706226CF7535A58E875F0267\/pms_1647422887.78266649.png",
        "is_cos":false,
        "is_bigtap":false,
        "is_damiao":false,
        "name":"Redmi 10 Pacific Blue 4GB+64GB",
        "id":"4221100010",
        "sku":"38789",
        "is_sale":true,
        "market_price":"14999",
        "market_price_num":"14999",
        "price":"10999",
        "price_num":"10999",
        "style_name":"Pacific Blue",
        "commodity_id":"3221100010",
        "product_name":"Redmi 10",
        "currency":"\u20b9",
        "is_presale":false,
        "presale_cos":true,
        "has_packet":false,
        "has_recommend":true,
        "tag":"redmi-10",
        "needSubscribe":false,
        "status":0,
        "status_name":"",
        "status_url":"",
        "diff":0,
        "pb_start":0,
        "goods_dealer":"Xiaomi Technology India Private Limited",
        "manufacturer_details":"Manufactured For: Xiaomi Technology India Private Limited, Building Orchid, Block E, Embassy Tech Village, Marathahalli-Sarjapur Outer Ring Road, Devarabisanahalli, Bengaluru, Karnataka-560103",
        "importer_details":"Not Applicable",
        "country_origin":"India",
        "manufacturer_by":"Manufactured By: As set out on the MRP label of the Product",
        "price_mrp":"10 999.00",
        "market_price_mrp":"14 999.00",
        "cat_name":"Phones",
        "not_for_sale":false,
        "product_id":"5527"
    }
]

数据

活动页面通过内容发布系统发布,自然需要做SEO。活动需要做好预热,正好与电商业务梳理1-导流关联起来。

活动过程中,需要收集各种数据情况,如热点图、GMV、点击率等信息,有了这些信息才能优化系统,也能帮助商家及时发现问题。所以活动也需要和数据中心做打通。

发展

组件化对当前业务是可用的,但不是终点。业界有更成熟的方案,如阿里的天马、京东通天塔、字节跳动的万象等。对于活动的玩法,可以参考尽在双11:阿里巴巴技术演进与超越第3章里的[会场,小二与商家共同打造的购物清单]。

为什么我们没有演进到更高的阶段?

我觉得一是大家闷头苦干,缺乏技术是生产力的意识,也缺少一些系统性思考,所以有时候停下脚本,从更高的维度来看待问题,是极有益的。

二是必要性。系统提供的能力和业务情况是匹配的,不是说别人有的系统我一定需要。这也是为什么我建议刚毕业的同学去大公司,因为大体量的业务,往往需要更高级的系统支撑,在演进过程中,自己能够学到很多东西,慢慢的成为这方面的专家。

除了组件化外,活动页面也没有做推荐,没有做到千人千面,这也是可以提升的地方。

首页

首页最为大家熟知,也最重要的页面。比起临时性的活动,首页是永久存在的,它给用户带来第一印象。所以首页能否引起用户的兴趣、能够给用户提供便捷的服务,对电商发展有重要影响。在启动APP到达首页过程中,还有启动页等小型导购功能,见缝插针是一门艺术。

组件化

原因

最开始电商只有PC和M,使用PHPCMS,通过配置固定模块,运营可以在模块内配置相应的商品。后来增加APP、IOS,首页发布时除了发布H5页面,同时将首页数据以json格式存储,APP通过接口获取首页数据进行渲染。

这种方案的最大缺点为模块不能编排,前端页面需要硬编码PHPCMS里的模块,所以位置都已确定,缺乏灵活性。解决方案还是组件化。

根据历史情况分析,整理出指定组件,通过组件化技术,运营可随意编排。APP内部有组件解析方案,只要按照规则进行解析即可。

实例

下图为首页截图,轮播图中的数据在json结构中。组件化的一个关键点在于确定好具体元素。

图片

{
    "assembly_id":"1",
    "assembly_key":"slider_with_nav",
    "background_color":"",
    "title":"",
    "count_down":"0",
    "extended":"{\"nav_list\":[{\"title\":\"Smartphones\",\"go_to_url\":\"https://in.event.mi.com/in/smartphone-store\",\"image_url\":\"https://i02.appmifile.com/712_operator_in/16/03/2022/9d0058b593101950aa8d01b20f5457bf.gif\"},{\"title\":\"Laptops\",\"go_to_url\":\"https://in.event.mi.com/in/laptop-store\",\"image_url\":\"https://i02.appmifile.com/770_operator_in/16/03/2022/b9dced5d3149a0ce0b6f800aeb4571ca.gif\"},{\"title\":\"TVs\",\"go_to_url\":\"https://in.event.mi.com/in/tv-store\",\"image_url\":\"https://i02.appmifile.com/913_operator_in/16/03/2022/5e02f69d5255f6009127dea31d040273.gif\"},{\"title\":\"Audio\",\"go_to_url\":\"https://in.event.mi.com/in/audio-store\",\"image_url\":\"https://i02.appmifile.com/550_operator_in/16/03/2022/9fee7c6ed50412cc74c5d8109814e1ec.gif\"},{\"title\":\"Lifestyle\",\"go_to_url\":\"https://in.event.mi.com/in/lifestyle-store\",\"image_url\":\"https://i02.appmifile.com/715_operator_in/16/03/2022/8ee4b229cd1406390236612be7b47b63.gif\"},{\"title\":\"Smart Home\",\"go_to_url\":\"https://in.event.mi.com/in/smart-home-store\",\"image_url\":\"https://i02.appmifile.com/888_operator_in/16/03/2022/c11aca9aedd351f94e0d372ebf6f1446.gif\"}]}",
    "background_img":"",
    "more_url":"",
    "title_color":"",
    "count_down_color":"",
    "copy_color":"",
    "number_color":"",
    "number_background_colr":"",
    "assembly_info":[
        {
            "view_id":"0e57098d0318a954d1443e2974a38fac+128_1_0_920_0_e_omega_xiaomi12pro5gtheshowstopper",
            "image_url":"https://i02.appmifile.com/132_operator_in/01/04/2022/740a4b5f075ef1131b01e4d91c0df624.jpg",
            "go_to_url":"https://in.event.mi.com/in/xiaomi12pro5gtheshowstopper?viewId=0e57098d0318a954d1443e2974a38fac+128_1_0_920_0_e_omega_xiaomi12pro5gtheshowstopper\u0026pageId=homepage+1648795009404",
            "title":"",
            "price":"",
            "origin_prince":"",
            "icon":"",
            "name":"",
            "description":"",
            "video_url":"",
            "star":"",
            "funded":"",
            "funded_ratio":"",
            "supporters_btn_text":"",
            "supporters_number":"",
            "days":"",
            "days_value":"",
            "extended":"",
            "discount":"",
            "background_color":"",
            "background_img":"",
            "title_color":"",
            "discovery_number":"",
            "button_title":"",
            "button_color":"",
            "description_color":"",
            "icon_text":"",
            "icon_head":"",
            "type":"banner",
            "page_id":"homepage+1648795009404",
            "hide_currency_label":false,
            "origin_price":"",
            "commodity_id":"",
            "frm_track":{
                "element_name":"3822",
                "element_title":""
            },
            "product_id":"",
            "tag":"",
            "product_list":null,
            "cates":null
        }
    ],
    "timestamp":0,
    "virtual_name":"",
    "virtual_item_name":"",
    "auto_play_interval":4000,
    "end_time":631132200,
    "primary_id":920,
    "daily_pick_activity":null,
    "start_time":0,
    "data_source":0,
    "cmp_track":{
        "c":"1524",
        "module_pos":"1",
        "module_title":""
    },
    "sub_title":""
}

千人千面

最开始首页数据完全通过运营配置,这有很多问题。

  1. 每个用户看到的是相同数据,很难完全匹配每一个用户的喜好

  2. 运营维护能力有限,有些商品因售罄、下架等问题,无法及时发现更新,浪费坑位

所以需要数据中心的推荐能力,能够做到千人千面。

我们现在能够做到运营配置兜底,多种算法同时运行,运营可根据需求随时切换算法,这也意味着系统支持了AB功能。下面这张图就是根据算法动态推荐而来。

图片

数据

数据对于首页的重要性不言而喻。像各种算法、各坑位带来的收益,要能实时显示。首页往往是漏斗图的开始位置,这些都能辅助运营优化销售策略。

首页的相关数据应该收集到数据中心,因为推荐来自数据中心,这些数据指标能够让数据中心优化自己的算法。另外,数据中心有用户画像,可以扩展用于AB测试。目前的AB方案是业务层自己做的,思路也比较简单,根据用户尾号区分,业务层无法做的更加深入。

发展

首页的发展与活动页有很多相似性。除此之外APP对组件的解析方案可以优化。需要达到的目标是无论今后组件如何增加,各个版本的APP都有能力解析。

分类页

分类页存在感不高,但其实很重要。分类的目的是为了方便用户查找,很多用户往往只知道自己需要买某个品类,但对于具体型号却不甚了解,此时分类页的作用便体现出来。

如用户想买手机,进入分类页后很容易看到有哪些新品、手机分几大类、每个大类里分哪些型号。

分类页的大小类别需要用心梳理,方便用户查找和比较。用户点击具体图标后,或者跳转到商品页,或者跳转到列表页,用户可在列表页做各种排序。

分类页是商品类目的延伸,实际使用中,分类页未必和类目完全一致。

最开始也是使用PHPCMS管理分类页,后来在运营后台搭建分类页配置系统,终端通过接口返回数据进行渲染。

分类页也需要关注数据,用户点击能够说明很多信息。分类页面不需要千人千面,但新品需要能够及时更新到分类页中,毕竟商品更新频繁的情况下,运营可能忘记更新分类页。

图片

{
    "id":"10",
    "name":"Smartphones",
    "childs":[
        {
            "id":"",
            "name":"",
            "type":"ad",
            "image_url":"https://i02.appmifile.com/488_operator_in/26/01/2022/90d97648850223f9cfd46f9c409b1b1f.png",
            "link":"https://mobile.mi.com/in/compare/",
            "list":[

            ],
            "ot_module_id":""
        },
        {
            "id":"144",
            "name":"Recently Launched",
            "type":"products",
            "image_url":"",
            "link":"",
            "list":[
                {
                    "group_id":"144",
                    "product_id":"1366",
                    "name":"Redmi 10",
                    "link":"https://mobile.mi.com/in/redmi-10?RNType=product\u0026product_id=redmi-10",
                    "image":"https://global.appmifile.com/v1/MI_18455B3E4DA706226CF7535A58E875F0267/pms_1647422917.29671293.png",
                    "custom_name":"",
                    "highlight":"",
                    "goods_id":""
                },
                {
                    "group_id":"144",
                    "product_id":"1364",
                    "name":"Redmi Note 11 Pro+ 5G",
                    "link":"https://mobile.mi.com/in/redmi-note-11-pro-plus-5g?RNType=product\u0026product_id=redmi-note-11-pro-plus-5g",
                    "image":"https://global.appmifile.com/v1/MI_18455B3E4DA706226CF7535A58E875F0267/pms_1646677552.54578474.png",
                    "custom_name":"",
                    "highlight":"",
                    "goods_id":""
                },
                {
                    "group_id":"144",
                    "product_id":"1363",
                    "name":"Redmi Note 11 Pro",
                    "link":"https://mobile.mi.com/in/redmi-note-11-pro?RNType=product\u0026product_id=redmi-note-11-pro",
                    "image":"https://global.appmifile.com/v1/MI_18455B3E4DA706226CF7535A58E875F0267/pms_1646677693.81045222.png",
                    "custom_name":"",
                    "highlight":"",
                    "goods_id":""
                }
            ],
            "ot_module_id":"367"
        }
    ],
    "cate_type":"0",
    "ot_module_id":"0"
}

总结

其实搜索也能算导购,不过不知道是怎么做的,等找到相关资料再补一下。在梳理的过程中,大家能够发现,数据中心的作用越来越大。

本次的架构图为:https://www.processon.com/view/link/6235717b1e085306f8c26f5f

图片

最后


大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:https://shidawuhen.github.io/

往期文章回顾:

  1. 设计模式

  2. 招聘

  3. 思考

  4. 存储

  5. 算法系列

  6. 读书笔记

  7. 小工具

  8. 架构

  9. 网络

  10. Go语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员麻辣烫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值