仓库里常把“先进先出”和“先效期先出”混着说,结果效期近的还压在里面,先进来但效期更长的反而先被拣走。FEFO和FIFO的区别,在于出库排序键不同:FEFO按失效日期(或剩余效期)优先,FIFO按入库时间优先。一个管的是商品还能卖多久,一个管的是货物来的先后。

下面用同一套维度对照,不把其中一种写成普遍更好。通天晓的仓储软件可以配置两种策略,不改变“策略要匹配品类”这个判断。
一句话定义,再看排序键
FIFO(First In First Out)按入库时间或收货批次先后出库,先收的先走。FEFO(First Expired First Out)按失效日期或剩余保质期出库,先到期的先走。如果所有批次同一天生产、同一天入、效期相同,两种规则结果会接近;快消、日化、食品一旦出现不同生产日或不同剩余效期,结果就会分叉。
| 对照维度 | FIFO | FEFO |
| 排序键 | 入库时间 / 收货顺序 | 失效日期 / 剩余效期 |
| 要回答的问题 | 哪批货来得早 | 哪批货先不能卖 |
| 主数据依赖 | 收货时间即可 | 必须有可靠失效日期或生产日期+保质期 |
| 典型适用 | 无保质期或效期极长、强调库龄周转 | 食品、乳饮、日化、药品等有明确效期 |
| 典型失效条件 | 后入但更临期的货会被压住 | 效期数据错,会故意拣错批次 |
| 和库位的关系 | 常配合深位先进先出的物理摆放 | 即使后入的放在外面,也应先拣更临期的 |
分别用在哪:看有没有“不能卖的那天”
适用边界可以写成三条。商品有法定或渠道要求的失效日,用FEFO,FIFO只能当辅助(例如同效期再按入库先后)。商品没有效期、只关心积压和库龄,用FIFO或按库龄预警,上FEFO没有键可排。同一SKU既有活动装又有长保常规装,要先分包装版本,再在版本内套FEFO,不能把两个版本当成一个排序池。
日化、化妆品、食品仓经常“口头FIFO、系统却没记效期”,盘点时才发现里面压着临期。这不是员工不遵守先进先出,是规则选错了键。反过来,五金配件没有效期却要填失效日,现场会编造日期,FEFO变成假规则。
系统里怎么避免两种规则互相打架
WMS要把策略写在SKU或货主参数上,而不是写在组长习惯里。拣货任务应按策略指定批次和库位,不允许随手扫一个近处库存就过。FEFO还要有拦截:低于可售剩余天数的批次不能进入正常出库,应进冻结或促销处理。
通天晓的通天晓仓储管理系统可以按品类配置出库策略,并在扫码时校验批次。它不自动知道你的商品有没有效期,主数据错了,策略再严也会错拣。快消多渠道时,订单分配层若已指定批次,仓内策略要与通天晓OMS系统的占用口径一致,避免一层FEFO、一层又按入库乱占。
FAQ
FEFO是FIFO的升级版吗?
不是。键不同,解决的风险不同。有效期用FEFO,无有效期用FIFO或库龄,不存在普遍升级关系。
没有生产日期能不能做FEFO?
没有失效日期或等效字段,就不能做真实FEFO。只有入库日时,你实际在做FIFO,只是名字叫错了。
物理货架已经按先进先出摆了,还要系统FEFO吗?
摆放能降低远深位被遗忘的概率,不能处理“后收入但更临期”的批次。效期品仍要以系统批次为准,货架只是辅助。
通天晓默认哪一种?
按项目配置,没有适合所有仓的默认值。上线前要按SKU清单标明策略,并抽查临期批次是否被优先派到任务里。
总结
FEFO和FIFO的区别是排序键:一个看失效日期,一个看入库先后。有“不能卖的那天”的商品用FEFO,只关心来货顺序和库龄的商品用FIFO。主数据不可靠时,两种规则都会变成形式。需要把出库策略配进仓储执行时,可在通天晓官网了解通天晓仓储的批次与策略能力,并以你的SKU效期字段是否齐全作为前提。