一、实物租赁的 "灵魂拷问" :我的相机到底在哪?
想象一下这个场景:
你经营一家自行车租赁公司,有50辆山地车分散在两个门店。客户A上周在A店租了一辆,说今天还到B店。你打开Excel表格,找了半天也没搞清楚这辆车现在到底在哪、有没有按时归还、有没有损坏。更糟的是,另一组客户已经在B店等着租这辆车了……
这就是实物租赁(Physical Rental Products) 的管理噩梦——东西是看得见摸得着的,会移动、会损坏、会丢失,必须精准追踪。
Odoo 19 的 Rental 应用 + Inventory 应用联手,为你打造了一套完整的实物租赁管理方案:从库存追踪、多门店调度,到取货发货、归还收货,全程自动化。
二、前置配置:先搭好 "租赁基础设施"
必须安装的应用
| 应用 | 作用 |
|---|---|
| Rental(租赁) | 创建和管理租赁产品、订单 |
| Inventory(库存) | 库存追踪、发货/收货单据、多仓库管理 |
全局设置:逾期费用 + 缓冲时间 + 租赁转移
进入 租赁 → 配置 → 设置(Rental → Configuration → Settings)
Default Delay Costs(默认逾期费用)
| 字段 | 说明 | 示例 |
|---|---|---|
| Per Hour | 逾期每小时加收 | $0.00 |
| Per Day | 逾期每天加收 | $50.00 |
| Apply after | 逾期多少小时后触发 | 2 hours |
| Product | 限制特定产品(留空=全部) | 留空 |
> 小贴士:全局设置是 "默认值" ,单个产品表单上的 Hourly Fine、Daily Fine 可以覆盖全局设置,实现更精细控制。
Default Padding Time(默认缓冲时间)
- Padding:两次租赁之间的间隔时间
- 作用:归还后维护、清洁、检查的时间窗口
> 示例:设置为 00:30(30分钟),客户10:00归还,10:30之前这件产品不可被预订。
Rental Transfers(租赁转移)
- 勾选后:系统自动创建发货单(取货时)和收货单(归还时)
- 核心作用:建立完整的库存流转记录,追踪高价值产品
库存流转路径:
WH/Stock(仓库库存) → Customer/Rental(客户租赁中) → WH/Stock(归还回仓库)
> ⚠️ 重要警告:启用 Rental Transfers 后,系统会自动创建内部默认位置Customer/Rental。不要修改这个位置,否则会破坏库存追踪!
三、创建新的实物租赁产品:六步搞定
第一步:进入产品创建页面
- 进入 租赁 → 产品 → 产品(Rental → Products → Products)
- 点击 New
第二步:General Information(基本信息)标签页
| 字段 | 设置 | 说明 |
|---|---|---|
| Rental | ✅ 默认已勾选 | 标记为租赁产品 |
| Product Type | Goods | 实物类型 |
| Track Inventory | ✅ By Quantity | 按数量追踪库存 |
| Category | Goods | 产品分类 |
| Sales Price | $98.00 | 销售价格(如买断价) |
| Sales Taxes | 6% | 销售税 |
| Cost | $900.00 | 成本价 |
| Quantity On Hand | 500.00 Units | 当前库存数量 |
> 示例:双人自行车(Tandem bike),库存500辆,租赁单价$98。
第三步:Attributes & Variants(属性与变体)标签页
需要启用 Inventory 应用的 Variants 功能才会显示此标签页。
- 点击 Add a line
- 从 Attribute 下拉菜单选择属性(如 Size、Color)
- 或输入新属性名称,点击 Create and edit… 配置属性和值
示例:自行车变体
| 属性 | 值 |
|---|---|
| Size | Small / Medium / Large |
| Color | Red / Blue / Black |
第四步:Rental prices(租赁价格)标签页
Pricing 区域:设置租赁周期价格
- 点击 Add a price
- 选择或创建 Period(租赁周期)
创建新周期:
- 输入周期名称(如 "2 hrs")
- 点击 Create and edit
- 在弹窗中填写:
- Name:2 hrs
- Duration:2
- Unit:Hours
- 点击 Save
- 返回 Rental prices 标签页,输入 Price
- 选择 Pricelist(可选,如VIP价、促销价)
示例:双人自行车租赁定价
| Period | Pricelist | Price |
|---|---|---|
| Hourly | - | $20.00 |
| 2 hrs | - | $35.00 |
| Daily | - | $160.00 |
> 定价策略:2小时$35(比2×$20=$40便宜),鼓励客户租更长时间!
Reservations 区域:逾期罚款 + 缓冲维护
| 字段 | 设置 | 说明 |
|---|---|---|
| Hourly Fine | $20.00 | 逾期每小时罚款 |
| Daily Fine | $160.00 | 逾期每天罚款 |
| Reserve product | 02:00 hours | 归还后缓冲时间 |
> 示例:双人自行车很抢手,设置逾期罚款$20/小时、$160/天,确保客户按时归还。缓冲2小时用于清洁检查。
第五步:Inventory(库存)标签页
配置库存追踪方式:
| 追踪方式 | 适用场景 | 配置方法 |
|---|---|---|
| By Quantity | 大批量相同产品 | Track Inventory → By Quantity |
| By Lots | 按批次追踪 | Track Inventory → By Lots |
| By Unique Serial Number | 高价值单品逐一追踪 | Track Inventory → By Unique Serial Number |
> 高价值产品(如专业相机、高端自行车)建议用 By Unique Serial Number,每台设备都有唯一身份。
第六步:保存产品
- 点击顶部的 Save manually(手动保存) 图标
- 产品创建完成!
四、配置产品追踪:从 "数量" 到 "序列号" 的精细化管理
按数量追踪(By Quantity)
- 适合:大批量、低价值、不易区分的商品
- 示例:普通雨伞、折叠椅
- 库存显示:500 Units
按批次追踪(By Lots)
- 适合:同一批次产品需要一起追踪
- 示例:同一批采购的50辆自行车
- 库存显示:Batch #2024-A: 50 Units
按唯一序列号追踪(By Unique Serial Number)
- 适合:高价值、需要逐一追踪的单品
- 示例:专业单反相机、无人机、高端笔记本电脑
- 库存显示:SN101、SN102、SN103……每台独立追踪
配置步骤:
- 创建产品时,Track Inventory 选择 By Unique Serial Number
- 每次发货/收货时,扫描或输入具体序列号
- 完整追踪每台设备的位置、租赁历史、维护记录
五、多门店管理:让客户 "就近取、就近还"
启用多位置管理
第一步:启用 Rental Transfers
- 进入 租赁 → 配置 → 设置
- 勾选 Rental Transfers
第二步:启用 Storage Locations
- 进入 库存 → 配置 → 设置(Inventory → Configuration → Settings)
- 在 Warehouse 区域
- 勾选 Storage Locations
- 点击 Save
创建新位置
- 进入 库存 → 配置 → 位置(Inventory → Configuration → Locations)
- 点击 New
| 字段 | 设置 | 示例 |
|---|---|---|
| Location Name | 位置名称 | Bay Bridge Store |
| Parent Location | 父位置 | WH |
| Location Type | 位置类型 | Internal |
- 点击 Save manually
示例:自行车租赁公司有两个门店
| 位置名称 | 说明 |
|---|---|
| WH/Bay Bridge | 海湾大桥店 |
| WH/Pier 39 | 39号码头店 |
| Customer/Rental | 客户租赁中(系统自动创建,勿修改) |
> 客户可以在A店取车、B店还车,系统自动追踪库存位置变化。
六、取货(Pickup):产品 "出门" 的瞬间
操作步骤
- 打开对应的租赁订单
- 点击 Pickup 按钮
- 系统显示仓库发货单(Delivery Order)
发货单信息:
| 字段 | 示例 |
|---|---|
| Delivery Address | Gus McGusset |
| Operation Type | pstest-fast-bikes: Delivery Orders |
| Source Location | WH/Bay Bridge |
| Scheduled Date | Nov 14, 5:15 PM |
| Product Availability | Available |
产品明细:
| 产品 | 需求 | 数量 | 序列号 |
|---|---|---|---|
| Bike (S) | 1.00 | 1.00 | SN101 |
| U lock & keys | 1.00 | 1.00 | L6 |
| Garmin GPS | 1.00 | 1.00 | G6 |
| Handel bar bags | 1.00 | 1.00 | - |
| Bike helmets (S) | 1.00 | 1.00 | - |
- 确认所有产品可用
- 点击 Validate
- 订单状态变为 Done
- 租赁订单上显示 Pickedup 状态横幅
七、归还(Return):产品 "回家" 的时刻
操作步骤
- 打开对应的租赁订单
- 点击 Return 按钮
- 系统显示仓库收货单(Receipt)
收货单信息:
| 字段 | 示例 |
|---|---|
| Receive From | Gus McGusset |
| Operation Type | pstest-fast-bikes: Receipts |
| Destination Location | WH/Bay Bridge |
| Scheduled Date | Nov 14, 8:00 PM |
产品明细:
| 产品 | 需求 | 实际归还数量 | 序列号 |
|---|---|---|---|
| Bike (S) | 1.00 | 1.00 | SN101 |
| U lock & keys | 1.00 | 1.00 | L6 |
| Garmin GPS | 1.00 | 1.00 | G6 |
| Handel bar bags | 1.00 | 0.00 | - |
| Bike helmets (S) | 1.00 | 0.00 | - |
> 注意:Handel bar bags 和 Bike helmets 归还数量为 0.00,说明客户没有归还这两件。系统清晰记录缺失物品!
- 输入实际归还数量
- 如有序列号,填入 Serial Numbers 列
- 点击 Validate
- 订单状态变为 Done
- 租赁订单上显示 Returned 状态横幅
八、打印取货/归还收据:给客户一份 "凭证"
操作步骤
- 打开租赁订单
- 点击 Actions(操作) 图标(齿轮/三个点)
- 悬停在 Print(打印) 选项上
- 选择 Pickup and Return Receipt(取货和归还收据)
收据内容:
- 租赁产品清单
- 当前状态(已取货/已归还)
- 序列号信息
- 取货/归还时间
- 客户签名区域
> 实战用途:客户取货时签字确认,归还时核对物品,避免纠纷。
九、总结:实物租赁的 "全生命周期管理"
| 阶段 | 操作 | 系统动作 |
|---|---|---|
| 产品创建 | 设置Goods类型、租赁价格、追踪方式 | 建立产品档案 |
| 客户预订 | 创建租赁订单 | 锁定库存、生成预留 |
| 客户取货 | 点击Pickup → Validate | 库存从WH→Customer/Rental |
| 租赁期间 | 系统自动计时 | 追踪逾期、计算罚款 |
| 客户归还 | 点击Return → Validate | 库存从Customer/Rental→WH |
| 归还检查 | 核对数量、序列号 | 记录缺失/损坏 |
| 打印收据 | Actions → Print → Pickup and Return Receipt | 生成PDF凭证 |
记住:实物租赁的核心不是 "把东西借出去" ,而是 "精准知道每件东西在哪、状态如何、何时回来" 。 Odoo 19的实物租赁管理,就是帮你实现这个目标的 "超级管家" !