对商品分类系统的若干问题的思考

news2024/11/16 7:53:25

   科学研究的目的就是研究事物的特征,并根据共同的特征加以分类

        商品分类是商业,制造业中最普遍的活动,几乎所有的企业,电商平台都要对销售的商品,使用的原材料(BOM)进行分类和编号。

       商品分类貌似没有多少技术含量,它是数字化转型的重要基石。一个不合理的分类方法会导致混乱和难以使用。

现有商品分类系统遇到的问题

各种标准化组织和机构提出了分类系统,它们包括:

  •  UNSPSC
  •   GS1
  • ETIM
  • ECL@SS
  • IEC 61360

      它们有的是公开免费的,有的是收费服务的。分类方式也各不相同。使用这些分类标准面临各种挑战。

      我们以gs1为例,讨论现有商品分类中遇到的问题。

       GS1全球商品分类标准(Global Product Classification, GPC)不断扩展更新,每年发布两个新版本。GPC分类代码按照大类(Segment)、中类(Family)、小类(Class)、细类(Brick)来划分,并细分为具体的商品核心属性类型和属性值。商品数据交换中,通常采用第4级代码,即细类代码。

    但是这种4级分类仍然不够细。进一步细分只能依靠属性(attributes)来分类了。例如服装的分类如下

Segment 67000000服装

Segment67000000 服装
    Family67040000内衣
    Family67010000服装
        Class67010800上半身服装或上衣
            Brick10001361上半身服装、上衣组合装
            Brick10001350夹克、外套、羊毛衫、马甲
            Brick10001351毛衣、套头毛衣
            Brick10001352长袖衬衫、女式衬衫、马球衫、T恤

显然这样的分类不够的,需要进一步细分 ,比如男女,风格,材料等。

属性,特征和特性区别

      在讨论信息模型时,经常提到属性(attribute),特征(Property)和特性(Feature),有的地方使用attribute ,有的地方使用特征(Property)或者特性(Feature) ,那么它们到底有什么区别呢?

      我们知道,模型是事物的简单描述。模型描述了事物的特征(Property)以及与其它事物的关系(Relationship)。

        从分类的视角看,事物是通过某些主要特征来分类的,主要特征相同的商品被分为一类。这主要特征称为属性(attribute),我们能够体会属性与特征的不同,用于分类的特征是属性。

       在某些分类系统中,属性是类别中默认的。而商品的描述中包含了某些特征(Property),而在一些分类系统中不仅规定了类别,又定义了属性

     例如服装的性别,gs1 提供了属性和属性值

        而Feature (特性)是增加功能或吸引力的独特方面或品质。这些方面通常作为卖点进行推广或突出显示。它们是旨在带来特定优势或功能的元素,使产品从竞争对手中脱颖而出。特性可以理解为独特的特征。

     例如:毛衣的属性及性别的属性值

Brick10001351毛衣、套头毛衣
    Attribute20000045消费者年龄段
    Attribute20001131性别
        Attribute Value30004039男性(雄性)
        Attribute Value30003891女性(雌性)
        Attribute Value30002518尚未确定的
        Attribute Value30002515未分类的
        Attribute Value30004340中性的
    Attribute20003164是否带帽
    Attribute20001141是否保暖
    Attribute20001941服装袖长
    Attribute20000794材料类型
    Attribute20001942毛衣、套头毛衣类型

     笔者主张在产品分类系统中只有类别,不包含属性。而在商品描述中包含特征(Property)。这样更加清晰一点。而Feature 更多地包含的宣传文档中。

 分类系统的挑战

常见的分类系统有下列几种:

GS1ETIMECL@SSUNSPSC
SEGMENTGroupSegmentsSegment
FAMILYClassMain GroupsFamily
CLASSGroupsClass
BRICKCommodity classesCommodity
Business Function

     但是它们之间的分类方式是不同的。

        比如:医疗设备。 在GS1 中是一个Brick,而在ECL@SS 中是一个Segment,这就意味着在ECL@ 中,医疗设备分的更细 。

 相比ECL@SS 而言,gs1 的分类过于宽泛。

分类系统的颗粒度

        到底分类到多细才合适呢?这也许没有明确的答案,侧重点不同,分类的颗粒度也不同,在笔者看来,分类系统的颗粒度与产品属性的颗粒度有关。最底层的项目,应该具有相同的属性。

        某种意义上讲,属性也是一种分类。可以将分类变成属性例如:性别。你可以将服装分类为男性服装,女性服装,儿童服装,成人服装和老年服装。当然你也可以在服装中,定义:适应性别,适应年龄段属性。

我们的研究更倾向在gs1 的基础上进一步细分,将gs1与ecl@ss 结合起来。构建6 级分类系统

  • Segnment
  • Family
  • Brick
  • Main Group
  • Group
  • Commodity

这样的安排的好处

  •   商品分类的颗粒度更细,符合商业分类的习惯
  •   有利于引用ECL@SS 的属性
  •   有利于gs1和ECL@SS 的映射和转换
  •   采用12位分类编码,能够细分更多的商品,前三层对应gs1编码,后三层对应ECL@SS 的MainGroup,Group和Commodity

  

商品的特征

商品的模型是由商品的特征(Property)组成的。分类系统与商品特征结合在一起,形成了如下分层结构。

  • Segnment
  • Family
  • Brick
  • Main Group
  • Group
  • Commodity
    • Property
      • Property
        • Property

     这种方式在gs1 的BRICK 基础上进一步细分,商品特征描述提供了商品信息模型。

分类系统与产品信息管理系统的关系

       分类系统的主要用途是商品的信息管理(PIM),确切地讲,分类系统是产品的模型,而商品是产品模型的实例及其组合。需要将分类系统和PIM 系统区分开来,分类数据库中每一项对应一个商品类型,而产品数据库中的每一项是一个产品的SKU(库存量单位)。SKU 包含了无包装单元,单品,包装和托盘。无包装单元对应GS1 中的一个类。而单品,包装箱和托盘包含了SKU 的其它一些信息。比如SKU 的名称,图片,重量,价格等等。

        商品的基本属性与SKU 的属性是不同的,如果将所有的SKU 信息包含到分类系统中,会引起混乱。将它们分开视乎更合理。

   分类系统的项目是无包装单元的属性

BMEcat

  BMEcat 是一个目录交换标准,创建于 1999 年,由德国 BME - Bundesverband Materialwirtschaft, Einkauf und Logistik e. V.. 协会开发。该标准基于 XML,完全开放且不收取任何费用,其最新版本是 BMEcat 2005。 

        供应链中的所有合作伙伴(制造商、批发商、供应商)都在交换越来越多的数据,而不同的数据格式使流程复杂化。通过使用 BMEcat 标准化信息系统之间的通信,大大降低了所有参与公司的成本。

PIM的数据模型

  •  产品模型
  • 机构模型
  • 测量单位

产品模型 

{
    "ID":"产品ID"
   "Name":"商品名称",
   "Type":["无包装单元","单品","包装箱","托盘"],
    "Items":[{
        "Code":"单元的编码",
        "Type":"单元类型",
        "Number":1
    }] 
  "Supply":{
    "Name":"供应商名称",
    "Id":"供应商ID",
   }
   "Brand":"品牌",
   "Measurement":{
      "Length":"长度",
      "Width”:"宽度",
      "Height":"高度"
   },
   "Images":[{
     }]
   "Documents":[{
  }] 
"Price":"价格"
 }

结论

  分类系统是数字化转型的重要基石。同时它也是十分费时的辛苦工作。也许chatGPT AI 工具能够提升构建分类系统的效率。本文提出了目前几种分类系统存在的问题,并且提出了自己的看法。下一步我们将问题进一步的细化。从中发现更多的问题和解决方法。

   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2151085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】下

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 子系统开发内核 轻量系统内核(LiteOS-M) 轻量系统内核&#…

前端自动化测试框架:如何选择最适合你的方案

前端自动化测试是指使用代码或工具来模拟用户在浏览器上的操作,以检验网页或应用程序的功能和性能是否符合预期。前端自动化测试可以提高开发效率,减少人工错误,保证软件质量和用户体验。 但是,在众多的前端自动化测试框架中&…

鸿蒙应用开发:视频播放

AVPlayer API同样适用于视频播放,与音频播放的区别仅在于是否提供surfaceId(相当于给视频播放选择一个容器)。鸿蒙官网描述,surfaceId指视频窗口ID,只允许在initialized状态下设置,在视频播放时要指定窗口进…

破损shp文件修复

大家中秋节快乐! 介绍 半年前写过破损shp文件修复的内容,当时写了一个简陋的小工具。 现在重新讲讲这方面的内容,这篇文章也主要围绕以下两个方面进行展开: 1、当时是怎么实现破损shp文件修复 2、现在怎么把这个功能集成到rs…

LINUX网络编程:TCP(1)

目录 1.认识Tcp的报头 2.确认应答机制(ACK) 序号与确认序号 捎带应答 3.超时重传机制 4.Tcp连接管理 三次握手 为什是三次握手 四次挥手 理解TIMEWAIT 1.认识Tcp的报头 源端口和目的端口号没什么说的 32位的序号和确认序号,之后会介…

如何使用ssm实现毕业生学历证明系统+vue

TOC ssm651毕业生学历证明系统vue 绪论 1.1 课题背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不可跨域的鸿沟&#xff0…

Linux C# DAY3

作业 1、 #!/bin/bash mkdir -p ~/dir/dir1 mkdir ~/dir/dir2 cp ./* ~/dir/dir1 cp ./*.sh ~/dir/dir2 cd ~/dir/ tar -cvJf dir2.tar.xz ./dir2 mv dir2.tar.xz ~/dir/dir1/ cd ~/dir/dir1/ tar -xvf dir2.tar.xz 2、 #!/bin/bash head -5 /etc/group | tail -1 sudo mkdi…

Docker安装mysql并配置主从,超详细

简介: 本文使用docker安装mysql,并创建master节点,slave节点用于实现主从。废话不多说,直接开始。 1.docker下载镜像,这里我以5.7版本为例。 docker pull mysql:5.7 2.在宿主机上新建如下目录,进行文件挂…

Lichee NanoKVM基本使用环境

Lichee NanoKVM基本使用环境 本文章主要记录一些自己在初期的使用,以及自己的一些经验 ,非常感谢sipeed NanoKVM官方使用教程 外观(博主自己的是lite版本,非常感谢sipeed) Lichee NanoKVM 是基于 LicheeRV Nano 的 I…

专为GOA TFT-LCD面板设计的16ch水平移位器-iML7272A

GOA是Gate on Array的简写,简单可以理解为gate IC集成在玻璃上了,面板就可以不用gate ic了,窄边框面板大多数都用了GOA技术。随着窄边框设计的日益流行,面板设计的周边空间被逐渐压缩,在传统的GOA电路设计中&#xff0…

Python学习——【3.1】函数

文章目录 【3.1】函数一、函数的定义二、函数的参数三、函数的返回值(一)函数返回值的定义(二)None类型 四、函数的说明文档五、函数的嵌套调用六、函数中变量的作用域(一)局部变量(二&#xff…

(数组) LeetCode 1184. 公交站间的距离

原题链接 一. 题目描述 环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 (i 1) % n 的车站之间的距离。 环线上的公交车都可以按顺时针和逆时针的方向行驶。 …

解决:The play() request was interrupted by a call to pause().报错

前言: 最近在公司中实现进入页面之后点击单词直接播放音频的时候,发现音频并不会播放声音,并且控制台报错: 研究之后找到了解决方案,与小伙伴们进行分享 原因: 首先看这句话的意思: 在调用 …

【C++】C++ STL探索:Priority Queue与仿函数的深入解析

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与Queue 这篇文…

中国数据中心服务器CPU行业发展概述

2024中国服务器CPU行业概览:信创带动服务器CPU国产化 AA体系是一种基于ARM指令系统和Android操作系统的体系结构,主要用于移动设备。与Wintel体系不同,AA体系中CPU厂商对芯片或系统厂商进行指令系统或IP核授权,操作系统厂商提供基…

Ansbile-变量

文章目录 一、Ansible的常量(内置的变量)有哪些???????????????&#xff1…

八、explicit关键字在C++中的用法

使用方法:修饰单参构造函数 作用:explicit修饰构造函数,禁止类型转换 使用Date d2 19; 这样的方式来进行d2对象的实例化。 在程序上是可以进行下去的,但不符合语法、也不合逻辑。 class Date { public:Date(int day)…

sqlite数据库设计工具

下载 开发环境 VS2022 + Qt5.14.2 CMake修改 add_subdirectory(sqlite3-cmake) include_directories(${CMAKE_SOURCE_DIR}/sqlite3-cmake/src) target_link_libraries(${PROJECT_NAME} sqlite3) 效果 参考 https://github.com/sqlitebrowser/sqlitebrowser

Java之封装

文章目录 1.封装1.1 什么是封装1.2 访问限定符1.3 包1.3.1 什么是包1.3.2 导包1.3.3 自定义包 2. static2.1 static 修饰成员变量2.2 static 修饰成员方法2.3 static成员变量初始化 3. 代码快3.1 普通代码块3.2 实例代码块3.3 静态代码块 4. 对象的打印 1.封装 1.1 什么是封装…

【JPCS出版】第四届电气工程与计算机技术国际学术会议(ICEECT 2024,9月27-29)

会议信息 会议官网:www.iceect.com 2024 4th International Conference on Electrical Engineering and Computer Technologywww.iceect.com 时间地点:2024年9月27日-29日 | 线上(ZOOM) 最终截稿时间:9月23日 主办…