零售EDI:OBI欧倍德EDI项目案例

OBI欧倍德公司是德国建材和家居装饰零售连锁店,在德国以及其他欧洲国家拥有众多分店,是欧洲领先的DIY(Do It Yourself)零售商之一。为了更好地处理与全球供应商之间的业务数据往来,OBI采用EDI提高其供应链的自动化水平,提高数据处理效率。

本文将从业务的角度出发,带领大家了解供应商N公司在对接OBI 的EDI项目中遇到的挑战以及相应的解决方案。

梳理需求文档

确认需要与OBI建立EDI连接之后,将会向供应商提供大量的EDI规范文档。企业需要从中提取当前项目需要使用的资料。

1.文件名中带ECOM的EDI文档是专门提供给线上平台的订单使用的,其他文件则是给Store partner 用。本次案例中,供应商N公司主要给OBI的线下门店供货,业务类型为Store partner。
2.ORDERS采购订单的规范文件有D01B和D93A两个版本,经沟通,OBI 推荐使用 D01B。
3.对接不同国家的OBI门店,需要注意区分不同的UNB ID(用于标识交易伙伴身份的代码,OBI的 UNB ID由14位数字组成),本案例对接OBI 德国,因此UNB ID需要选择德国(DE)。

供应商还可能会遇到:OBI AT、OBI PL、OBI CH、OBI CZ、OBI SK、OBI HU、OBI SI、OBI IT以及OBI BA。

AS2连接测试

梳理好需求文档之后,便可以联系OBI的EDI团队申请做AS2测试,通过附件方式提供AS2参数;

在AS2测试过程中,遇到这样的问题:N公司可以成功接收OBI发来的测试文件,但向OBI发送测试文件时会出现Timeout的报错,这是因为OBI有IP白名单限制,供应商需要和其EDI团队沟通,添加即可。

注:本项目N公司由OBI提供的WEB EDI切换至直连EDI。AS2不分测试生产,仅通过测试标识区分,一旦开始AS2测试(带测试标识的生产订单),OBI即会关闭Web EDI通道,关闭WEB EDI后,需要联系OBI,暂时通过邮件接收 PDF 订单。

EDI 业务测试
ORDERS采购订单

如何将OBI发来的ORDERS采购订单报文转换为企业内部可处理的格式呢?这里需要处理OBI报文中提供的字段信息与N公司业务系统中的字段信息之间的映射。

映射中可能会遇到的问题

在知行之桥EDI系统完成实施后,需要与OBI进行测试,需要注意以下内容:

  1. Delivery date, requested:含义为请求交货日期
  2. Payment terms : 60天付款会有3%的折扣,注意该折扣不需要计算到发票总金额中
  3. Terms of delivery:商务条款DDP,对应EDI规范中的Code是CPT = Freight, Carriage paid to destination,当订单金额低于250欧元时需要加20欧的运费
  4. Allowance or charge:样品订单或者新店开业首批订单或者店铺装修会额外包含10%折扣,并且付款周期会延长到120天
  5. ShipToGLN:OBI在EDI中仅传输GLN(若未传输GLN才会提供详细送货地址),在收到订单数据后,需要根据OBI门店列表去匹配门店地址信息
  6. InvoiceGLN:OBI在EDI订单中未传输,经和OBI确认,该值固定,客户需要自行维护在系统中
  7. LIN-GTIN:OBI某种情况下(如OBI门店绕过总部直接下单的情况)发来的订单不包含GTIN,且SupplierArticleNumber错误,这类订单需要客户做额外处理
    订单测试流程及相关注意事项
  8. 请求OBI发测试订单,OBI回复:一旦通过AS2 进行订单测试,OBI会通过AS2传输带测试文件的标识,同时会关闭WEB EDI的使用
  9. 针对不同ship to信息,订单号可能会重复。
  10. 如果订单需要变更应该如何处理?OBI答复称不支持通过EDI进行订单变更,如果需要取消订单,则必须由供应商和订货的OBI商店直接澄清和解释。
    ORDERS 采购订单切换生产流程
    EDI-ORDERS切换生产,需要客户在供应商门户网站下载“Infoboard文档”,填写并回传给OBI。注:切换时间为每个月的第一个周一

订单切换完成后,才可以继续测试DESADV/INVOIC,根据生产订单发送带有测试标识的DESADV,进行结构验证。体现在知行之桥EDI系统中,就是在EDIFACT端口下,勾选测试标识符(UNB11)。勾选后,生成的DESADV的UNB11=1,表示当前报文为测试报文。

obi-edi-case1.png

DESADV 发货通知

映射中可能会遇到的问题

  1. DeliveryNoteNumber:该值必须和线下的发货通知单据保持一致。The DESADV document number should be the delivery note number of the paper delivery note.
  2. Delivery date (estimated):预计交货日期
  3. SSCC相关:不传输,因此EDI-DESADV中不包含PACLoop

obi-edi-case2.png

4.LIN-GTIN:当ORDERS中未传GTIN时,回传的DESADV要和订单保持一致

发货通知测试流程及相关注意事项

先发送带有测试标识的EDI文件,进行EDI结构测试;接下来会进入content测试,供应商需要向OBI发送正式发货的DESADV,OBI物流团队会检查数据,待OBI检查完成后会通知客户切换生产。

OBI检查注意事项:

  1. OBI要求在到货前收到ASN
  2. ASN 中的delivery note number 不能重复
  3. 检查DESADV数据与实际收货数据是否一致

在OBI物流团队完成检查后,会邮件通知供应商将DESADV切换到生产。

INVOIC 发票信息

映射中可能会遇到的问题

  1. FTX-Segment:要体现出发票存在折扣协议以及免税
    示例代码如下:
FTX+AAK+1+ST3'
FTX+REG+1+IGL::246'

AAK = Prize conditions ,ST3表示存在折扣或者奖金
REG = Registration information,IGL = tax free inner community delivery (for DE/AT),246 = GS1 Germany (for DE)

2.Delivery date/time (actual):实际交货日期

3.Message line item for not invoiced units included in assortment不涉及到

obi-edi-case3.png

4.带整单折扣的情况

Header中需要体现折扣金额和折扣百分比,ALC-Qualifier为A,表示津贴

ALC+A+++1+DI'
PCD+3:10:13'
MOA+8:129.26'

5.带明细折扣的情况

LIN+2++88888****:EN'
PIA+1+AD.*******:SA'
PIA+1+81*****:BP'
IMD+F++:::M*****e'
IMD+F++:::Gr. S'
QTY+47:1:PCE'
QTY+46:1:PCE'
QTY+192:1:PCE'
MOA+203:80.241'
PRI+AAB:114.63:::1:PCE'
PRI+AAA:80.24:::1:PCE'
ALC+A+++1+DI'
PCD+3:30'
MOA+8:34.389'

6.带整单折扣和明细折扣的情况

Header中需要体现折扣金额和折扣百分比,ALC-Qualifier为A,表示津贴

ALC+A+++1+DI'
PCD+3:10:13'
MOA+8:122.6541'

明细部分需要有ALC段表示折扣信息

LIN+2++88888****:EN'
PIA+1+AD.*******:SA'
PIA+1+81*****:BP'
IMD+F++:::M*****e'
IMD+F++:::Gr. S'
QTY+47:1:PCE'
QTY+46:1:PCE'
QTY+192:1:PCE'
MOA+203:80.241'
PRI+AAB:114.63:::1:PCE'
PRI+AAA:80.24:::1:PCE'
ALC+A+++1+DI'
PCD+3:30'
MOA+8:34.389'

汇总时需要减去整单折扣金额

UNS+S'
MOA+79:1226.541'
MOA+77:1103.8869'
MOA+124:0.00'
MOA+125:1103.8869'
MOA+131:-122.6541'

7.带运费的情况:

Header中需要体现运费总金额,ALC-Qualifier为C,表示收费

ALC+C+++1+FC'
MOA+8:20.00'

8.发票中金额的计算逻辑

MOA+79:1292.60'
MOA+77:1163.34'
MOA+124:0.00'
MOA+125:1163.34'
MOA+131:-129.26'

TotalLineItemsAmount:1292.60,所有Item明细中的产品金额之和

  • TotalMonetaryAmount:1163.34,发票总金额=应税金额+税额
  • TotalTaxableAmount:1163.34,总的应税金额=总行金额+所有折扣或运费的总金额(TotalLineItemsAmount + TotalAmountOfAllowancesAndcharges)
  • TotalAmountOfAllowancesAndcharges:总津贴或收费金额= 所有的折扣和运费的总金额,注意:如果只有折扣,那么该值为负的,如果只有运费该值则为正的,运费折扣都有则需要计算,若运费大于折扣则为正值,若运费小于折扣则为负值
  • TotalTaxAmount:总税额=应税金额*税率,注意:该项目税率为0,所以总税额也为0

发票测试流程及相关注意事项

发送带有测试标识的EDI文件,目前的发票都不含税,税率相关情况可以参考以下表格。

business modelship fromship tojudgetax rate
商业模式发货地收货地判断条件运用税率
B2BNLNLNL21%B2B,当收=发,取收货国税率,否则为0
B2BNL非NL国家00%
B2BDEDEDE19%
B2BDE非DE国家00%
B2BFRFRFR20%
B2BFR非FR国家00%
B2B……00%
B2CNLNLNL21%B2C,税收跟随收货国税率
B2CNLDEDE19%
B2CDEDEDE19%
B2CDENLNL21%
B2CFRDEDE19%
B2CFRNLNL21%
B2CFRFRFR20%

2.先进行EDI结构测试,再进行content测试

上线前:EDI-INVOIC需要和线下的PDF发票并行发送,OBI会检查发票数据对比,待OBI确认完成后才会通知客户上线,上线后只发送EDI-INVOIC,不再发送PDF发票。

RECADV 汇款通知

汇款通知测试流程及相关注意事项

联系OBI通过AS2发送汇款通知,OBI会在每周三、周四发送。

REMADV 中除了有客户发送的发票外,还会反馈 Credit Notes的信息,通过DOC+381的方式直接扣减对应的金额。

DOC+381+92668'
MOA+77:54845.68'
MOA+52:0'
MOA+79:54845.68'
DTM+137:20240709:102'

但汇款通知中并不反馈关于Credit Notes扣减的明细信息。对供应商而言,财务部分将无法确认扣款原因。

经过和业务沟通,了解到除了供应商发出的INVOIC之外,OBI目前会给发送以下三种类型的发票给客户:

  1. invoice:OBI主动找供应商收活动广告费
  2. credit note:OBI减少对供应商的收款,如广告费算错,冲销广告费
  3. debit note:OBI减少向供应商付款,如延期交付罚款,OBI主动debit note冲减应付金额

可以通过这些发票来获取扣款的详细信息。

了解更多 EDI 信息,请参阅: EDI 是什么?

阅读原文

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于微信小程序的宠物服务平台(系统源码+lw+部署文档+讲解等)

文章目录 目录 详细视频演示 系统详细设计截图 微信小程序系统的实现 1.1系统前台功能的实现 2.1微信小程序开发环境搭建 2.2微信开发者工具 2.3程序应用相关技术和知识 2.3.1小程序目录结构以及框架介绍 2.3.2 Java技术 2.3.3 MySQL数据库 2.3.4 SSM框架 源码获…

Pygame制作简单的跑酷游戏

今天我们来看看如何使用Pygame框架制作一个简单的跑酷游戏。这个游戏包含了基本的游戏元素,如玩家角色、障碍物、背景、音效等,可以作为入门Pygame游戏开发的一个不错的示例。 游戏概述 这是一个简单的横版跑酷游戏,玩家控制一个忍者角色,通过跳跃来躲避迎面而来的各种障碍物…

【研发日记】嵌入式处理器技能解锁(二)——TI C2000 DSP的SCI(串口)通信

文章目录 前言 背景介绍 SCI通信 Transmitter Receiver SCI中断 分析和应用 总结 参考资料 前言 见《【研发日记】嵌入式处理器技能解锁(一)——多任务异步执行调度的三种方法》 背景介绍 近期使用TI C2000 DSP做的一个嵌入式系统开发项目中,在使用它的SCI&…

Pytorch系列-张量的类型转换

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 张量转换为NumPy数组 使用Tensor.numpy()函数可以将张量转换为ndarray数组 # 1.将张量转换为numpy数组 data_tensortorch.tensor([2,3,4]) # 使用张量对象中的numpy函数进行转…

c++STL中list介绍,模拟实现和list与vector对比

目录 前言 : 1. list的介绍及使用 1.1list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modifiers 1.2.6 list的迭代器失效 2. list的模拟实现 3. list与vector的对…

串行并行数据转换

前言 串行数据传输通常在数据传输距离较远时使用,而并行数据传输适用于短距离、高速数据交换。通过转换,可以根据实际需求选择合适的传输方式,以优化数据传输效率和速度。串行数据传输在长距离传输中可以减少信号的干扰和失真,因为…

springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice

一、 背景 因为项目中需要使用word转pdf功能,因为转换速度原因,最后选用了libreoffice,原因及部署请参考 linux ubuntu环境安装libreoffice,word转pdf 远程调用的话可选docker部署,请看2.3.1 二、springboot整合libr…

达梦数据库的系统视图v$mem_pool

达梦数据库的系统视图v$mem_pool 达梦数据库的V$MEM_POOL视图主要用于显示所有内存池的信息。通过查询这个视图,用户可以监控数据库中各个内存组件的使用状况,包括内存池的大小、使用情况等。这有助于用户判断内存池是否空闲或紧张,从而进行…

【机器人学】6-4.六自由度机器人运动学参数辨识-机器人精度验证【附MATLAB代码】

前言 前两个章节以及完成了机器人参数辨识。 【机器人学】6-1.六自由度机器人运动学参数辨识-辨识数学模型的建立 【机器人学】6-2.六自由度机器人运动学参数辨识-优化方法求解辨识参数 标定了工具端、基座以及机器人本身的DH参数。那么我们的机器人精度如何呢?机…

Unity射击游戏开发教程:(31)制造一定追踪行为的敌人

在本文中,我们将介绍如何在两种敌人行为之间切换。本文是前两篇文章的延续,分别介绍了敌人躲避玩家射击以及敌人不断旋转并向玩家射击的情况。我只是介绍如何在这两种行为之间进行转换。 这种新的敌人行为的目标: 当不开火时,敌人可以躲避玩家的射击。射击时,敌人无法躲避…

谷粒商城实战笔记-137-商城业务-首页-整合dev-tools渲染一级分类数据

文章目录 一,使用热加载工具spring-boot-devtools1,引入devtools依赖2,ctrlshiftf9 编译静态资源 二,thymeleaf原理三,渲染一级分类 一,使用热加载工具spring-boot-devtools 因为我们采用的前后端一体的开…

全国首例 腾讯《穿越火线》协助破获DMA外挂案

据腾讯游戏安全中心公告,腾讯旗下的游戏《穿越火线》协助警方破获了首例DMA外挂案件。DMA即Direct Memory Access(直接内存访问),原本是一种读写数据的计算机技术。 DMA外挂则通过特殊的软硬件工具直接访问电脑内存,读…

MIMO技术入门(通俗易懂)

MIMO技术的思路 形象地形容就是,从原来的一个人在搬砖,转变成多个人在搬砖。 MIMO/SIMO/MISO示意图 MIMO用专业一点的词形容,就是发射端和接收端都有多个天线,这里的多天线并不是指有多个天线板,对于基站来说&#…

基于Raft算法的分布式KV数据库:六、常见问题及解答

CPPRaft系列-常见问题及解答 】 目前项目中还有很多地方可以优化,欢迎大家参与吼吼吼。 地址在: https://github.com/youngyangyang04/KVstorageBaseRaft-cpp 在前面的系列文章中,我对这个项目提出了很多问题,但是发现没有解答…

科普文:微服务之全文检索ElasticSearch忝删改查详细操作说明

一、Restful简介 RESTFul:Representational State Transfer,中文意思:表现层状态转化。变现层指的是资源的表现层,这里的资源是指网络上的信息,比如一张图片,一段文本,一步电影,那么…

Python | Leetcode Python题解之第326题3的幂

题目: 题解: class Solution:def isPowerOfThree(self, n: int) -> bool:return n > 0 and 1162261467 % n 0

[Git][分支设计规范]详细讲解

目录 0.概览1.master分支2.release分支3.develop分支4.feature分支5.hotfix分支 0.概览 以下是常用的分支和环境的搭配,可视情况而定不同的策略 分支名称适用环境master主分支生产环境release预发布分支预发布/测试环境develop开发分支开发环境feature需求开发分支本…

systemd-manage系统服务图形化管理工具使用教程

1. systemd-manage介绍 systemd-manage是一个开源的基于systemd服务管理的图形化工具,使用qt图形库进行开发,可以提供服务管理,用户会话,配置文件修改,日志查询,性能分析,进程管理等功能。图形…

AGV一体式ARM智能控制主机如何替代传统PLC、工控机等方案

工业自动化的不断发展,AGV(自动导引车)作为一种重要的物流搬运设备,在各个领域得到了广泛的应用。而 AGV 的控制主机是其核心部件之一,直接影响着 AGV 的性能和稳定性。传统的 AGV 控制主机通常采用 x86 工控机交换机i…

HTTPS协议讲解

HTTPS协议讲解 HTTPS是什么理解加密什么是加密为什么要加密 常见的加密方式对称加密非对称加密 数据摘要/数据指纹HTTPS的工作过程探究方案一,只使用对称加密方案二,只使用非对称加密方案三,双方都是用非对称加密方案四,非对称加密…