Skip to content

比价(抢 Buy Box)

比价(抢 Buy Box) 页面截图

自动盯住别的卖家在 Takealot 上同款商品卖多少钱,再帮你算出「我们卖多少能抢到 Buy Box(商品页上那个默认『加入购物车』的黄金位)」。重点:现在整页是「影子模式」——只看、只算、只记录,绝对不会真的去改你 Takealot 上的售价(真改价功能还没做出来)。所以这页现在等于一台「监视器 + 试算器」,不是会自动改价的机器人。

谁会用到:Nate(业主)/ 比价运营人员。用来观察竞品价、给商品设比价规则(底价/上限/开关),以及导出导入 CSV 批量设规则。

🧠 这一页的原理(白话)

运作铁则是「听 → 算 → 最后才推」。① 听:一台跑在南非 VPS(远端服务器)上的采集器,每 20 分钟匿名逛 Takealot 公开商品页、抄下竞品价,回传给系统(走独立密钥,碰不到你的卖家钥匙、不碰库存订单主链路)。② 算:系统按你设的「底价~上限」算一个建议价(F17 规则引擎,纯算不改);铁律是绝不低于底价(防两个机器人互砍亏本卖),且只要已经赢了任一 Buy Box 位(最低价或最快)就守价不降。③ 推:把建议价真送去改 Takealot 价格这一步(代号 T6b)目前还没做,整页零真实改价。每个商品默认「关」,由人决定何时开。它比第三方比价工具强在「用真实可卖库存感知」——库存太低会自动暂停调价,防止把快卖光的货再降价超卖。

🖱️ 画面上的东西(分页 / 按钮 / 栏位)

类型名称是什么点了 / 用了会怎样⚠️ 注意
badge标题「比价 · 抢 Buy Box」+ 副标页面顶部固定标题,副标写「监控竞品价、在底价~上限内算建议价抢 Buy Box · 影子模式(当前只算不真实改价)」纯显示,不可点
button⟳ 自动采集中(灰色禁用)告诉你抓价的采集器已经在另一台服务器上每 20 分钟自动跑了永远是灰的、点不动。鼠标移上去提示「采集器已部署 VPS(阶段 B),每 20 分自动采集——无需手动触发」。点了什么都不会发生。
button⬆ 导入规则 CSV把填好的 Excel 模板批量传回来设规则弹出选档窗 → 选一个 .csv → 程式只挑出有填「底价」或「启用」的行,其余跳过 → 批量送后端建/改规则(单次最多 250 行,超过前端自动分批)。完成后顶部出现「✓ 导入完成:成功 N 行」,失败的列出前 3 个原因(简体中文)。
POST /api/repricer/rules/bulk
写入资料库(批量建/改规则),但绝不改线上价。每行单独检查底价合法性,某行错不影响其他行,且每行都写 audit 日志。
button⬇ 导出 CSV下载一个 Excel 模板,里面是「有竞争」的商品 + 现价 + 竞品价 + 两个 Buy Box 位 + 现有规则栏点了从后端下载 CSV(档名类似 repricer-takealot-NN.csv)。下载后顶部提示你在 Excel 填好 min_price/max_price/enabled 再用「导入规则 CSV」传回。若采集器还没抓到任何竞争,导出可能是空的(代表现在没有需要比价的对象)。
GET /api/repricer/export.csv
纯读取下载,无写入。
button⚙ 设置(蓝色主按钮)打开「比价设置」弹窗点了打开弹窗(见下方『设置弹窗』),但弹窗里的开关目前都不保存。
badgeCSV 操作结果横幅(蓝色)+「知道了」按导入/导出后出现,显示处理中或成功/失败讯息处理中显示「处理中…」,完成显示结果。右侧「知道了」点了关掉横幅。
button比价总开关(勾选框)+「已启用/已暂停」看起来像全站比价的总闸⚠️ 纯前端摆设:勾或不勾只改这行画面上的字(已启用/已暂停),不送后端、不影响任何 SKU 是否真比价,刷新页面会跳回原样。真正决定某商品比不比价的,是每个商品自己『规则设定』里的「启用此规则」开关。无(点了不会有任何真实后果)
field下拉「模式」:影子(只看不改)/ 真改(实际改价)看似切换『只算』和『真的改价』⚠️ 纯前端摆设:默认「影子」。选「真改」只是让画面上的影子横幅消失、设置弹窗里高亮变化——后端没有任何真改价逻辑被触发(真改价功能未建),此刻选「真改」也不会真的改任何线上价格。名字看着危险,但当前点了不改价。真改价功能将来做好后,第一次开务必只挑 3-5 个商品 + 先影子对照两天,切勿一上来批量真改。
field下拉「采集间隔」:6 分 / 10 分 / 20 分看似设定采集器多久抓一次⚠️ 纯前端摆设:默认「10 分」。改它只改画面数字,不会真的改变远端采集器的实际间隔(采集器实际固定 20 分,由 VPS 排程决定)。概念上要懂:从 20 分起步试探平台容忍度,确认没被当机器人挡再缩短;不是越快越好。
badge徽章「上次采集 · X 分钟前 / 采集器未运行」+ 小圆点采集器最后一次抓到竞品价是多久前——这是真实数据,不是装饰圆点绿色=抓过价(亮绿);灰色=从未抓到。文字根据后端回传的真实最后信号时间算。从未抓到时显示「采集器未运行」。
GET /api/repricer/skus(回传 last_signal_at)
button平台切换段「全部 / Takealot / amazon」切换看哪个平台的数据默认「全部」高亮。「全部」和「Takealot」效果一样(都查 Takealot)。切「amazon」表格会变空并显示「Amazon 比价尚未开放——需另接官方竞品通知,目前仅 Takealot」。
badge影子模式安全横幅(蓝色)+「切换为真改…」按钮只在模式=影子时出现,提醒「系统按规则计算建议价、但不会真实改价,上线初期建议保持」右侧「切换为真改…」点了把模式切成真改(同样只改前端,不会真改线上价)。无(按了不改价)
button分区「全部 / 🟢 在比价 / ⚪ 未比价」+ 各自数字一眼分开『系统正在管的(🟢 在比价=已开启用此规则的商品数)』和『还没管的(⚪ 未比价)』点哪个就筛哪类。「全部」数字=纳入比价 SKU 总数;「在比价」=已启用规则的真实笔数;「未比价」=总数减已启用。
GET /api/repricer/skus?zone=on/off
badgeKPI 格「纳入比价 SKU」在 Takealot 上架且有 PLID(商品页编号)可比价的总数(实测约 1.7 万)纯显示,不可点。脚注「在 Takealot 上架 · 有 PLID 可比价」。
badgeKPI 格「需要比价 · 有货有竞争」有竞争对手且有库存的商品数(没货的不烦恼)纯显示。采集器没跑过时显示「—」,脚注「待采集器跑后才知道」;跑过后显示数字 + 「另 N 无货免烦恼」。这是设计,不是漏单。
badgeKPI 格「今日调价」今天真的改了几次价永远显示「—」,脚注「真改价未启用(影子)」。因为根本没有真改价功能,所以这格永远是空的。
badgeKPI 格「输 Buy Box」我们挂牌价高于竞品最低价的商品数(真实价格比较,跟有没有开规则无关)纯显示。脚注带「位置两输 N」(两个 Buy Box 位都不是我们的数量)。注意:即使一个规则都没开,这数字照样会显示几百个,因为它说的是真实价格关系,不是『系统在管的数量』。
GET /api/repricer/skus(priceLosing 计数)
badgeKPI 格「缺货暂停」因库存低于阈值被自动暂停调价的商品数纯显示。脚注「库存低于阈值 · 自动暂停」。
tab筛选标签页(7 个):全部 / 需要比价 / 输 Buy Box / 已最低 / 已锁价 / 缺货暂停 / 未启用按不同条件筛选主表,每个标签右边有后端真实计数点哪个就筛哪种,并回到第 1 页。「输/已最低」用规则无关的真实价格比较(影子阶段也准)。
GET /api/repricer/skus(status / priceLosingOnly / priceWinningOnly / competingOnly)
field搜索框「搜索 SKU / 商品 / WMS Code…」按商品名 / 平台 SKU / WMS 编号搜输入后等 0.3 秒自动送后端搜索(不用按 Enter)。
GET /api/repricer/skus?q=
button⭐ 审核优先一键把『该处理的』排到最前点了排序切成「有货 + 有竞争 + 我们价高 + 价差大」排最上、没货沉底,方便逐个人工确认。选中时变蓝色。上线前逐个核对最省事。
GET /api/repricer/skus?sort=priority
button分页:第 X–Y / 共 N + 上一页/下一页箭头 + 页码主表翻页(每页 50 笔)点箭头翻页,到头/到尾对应箭头变灰。
column表头排序(商品/我们价/竞品最低/Buy Box 价/库存/建议价)可点的表头,点了切升/降序、旁边出现 ▲▼点一下排序、再点一下反向;没数据的「—」自动排到最后。
field最左勾选框(表头 + 每行)看似可勾选做批量操作⚠️ 目前没接任何功能:勾了不会触发批量操作(程式里没有处理逻辑,纯摆设)。
column「商品」栏商品名称(粗体)+ 下方平台 SKU纯显示
column「平台」栏平台小徽章(Takealot / amazon)纯显示
column「我们价」栏我们目前在平台的售价;来自卖家 API 的挂牌价没数据显示「—」(要先做过一次回填才有,不是 R0 也不是 bug)。状态是「已最低」时绿色,否则深色。
column「利润」栏利润率永远显示「—」(Nate 决定不显示利润,成本/平台费留空)。
column「竞品最低」栏竞争对手里最低的价采集器跑过、且有别家在卖才有值,否则「—」。
column「竞品最快」栏竞品『最快到货』位的价(灰色字)没值显示「—」。
column「Buy Box 价」栏当前 Buy Box(最低价位)的价没值「—」。
column「库存」栏真实物理可卖库存(来自防超卖公式算出的 broadcast_qty)≤0 显示红色「缺货」;<5 显示橙色警告图示+数字;正常显示数字;无数据「—」。
column「建议价」栏系统算出『该改到多少』的建议(只显示,不会自动改)输 Buy Box 且有建议价→绿色向上箭头+数字;已最低→「—」;已锁价→锁图示+我们价;缺货暂停→「⏸ 暂停」。这只是建议。
badge「状态」栏(彩色 Pill 徽章)该商品现在的处境红「输 Buy Box」(我们价>竞品最低) / 绿「已最低」(我们价≤竞品最低) / 蓝灰「已锁价」(有手动锁价) / 橙「缺货暂停」(库存低于阈值) / 蓝灰「未启用」(没开比价规则——影子阶段绝大多数落这里) / 蓝灰「待数据」(还没抓到竞品价或没有我们价)。
column「Buy Box 位」栏我们赢了哪个赢家位绿色「最低价 ✓」/「最快 ✓」(赢最快是靠送货速度、不用降价);两个都没赢显示「两输」;没竞品价「—」。看到「两输」的才是真正需要你降价出手的。
button「操作」栏:⚙ 齿轮 + 🔒/锁 图示每行两个小按钮⚙ 齿轮(规则设定)和 🔒 锁图示『点了都只是打开该商品的详情抽屉』——锁图示当下不会真的锁价,提示文字依状态显示「锁价」或「解锁」。整行任意处(除勾选框/操作栏)点击也会打开抽屉。
badge空状态文字没资料时表格中间的提示依情况:「加载中…」/「加载失败」/「Amazon 比价尚未开放」/「暂无『有竞争』SKU——采集器跑过、抓到别家在卖同款后才会出现」/「暂无可比价 SKU——需先跑『补全 PLID』回填」/「无匹配的 SKU」。
modal设置弹窗:运行模式 / 比价间隔 / 库存感知暂停 / 事件告警 Email看似全局参数设定,副标「全局参数 · 影响所有纳入比价的 SKU」⚠️ 整个弹窗目前纯前端摆设、不保存:运行模式(影子/真改)、比价间隔(6/10/20)、库存感知暂停开关、三个事件告警 Email 开关(失去 Buy Box/触及底价红线/缺货自动暂停)切了都不送后端,也不会真的发邮件。底部「取消」和「保存设置」两个按钮都只是关掉弹窗——『保存设置』不保存任何东西。无(切了不生效,别误以为已设定)
modalSKU 详情抽屉 - 面板「竞争格局 · Buy Box 位」(价格阶梯图)点商品行从右侧滑出。一条价格刻度轴,标出「我们」「竞品最低」两点、谁在 Buy Box 位插旗、距底价还有多少缓冲有我们价+竞品价时画图并给一句话(赢了→『你的价已≤竞品最低·距底价还有 RN 缓冲』;输了→『竞品最低 RN 比你低·降至 R(N-1) 可抢回』)。缺数据时显示「暂无价格数据」。纯显示。
modalSKU 详情抽屉 - 面板「竞品价历史」(折线图)竞品最低价 + 建议价随时间的两条曲线有历史时画图(采集器跑越久越完整);没有时「暂无历史(采集器跑后逐步累积竞品价)」。
GET /api/repricer/:wms/detail
modalSKU 详情抽屉 - 面板「全部对手 · N 个卖家」采集器这一轮抄到的每个卖家:价格、卖家名(我们的标『我们』并高亮)、是否在 Buy Box 位、有货标记有 offers 资料才出现,按价格由低到高排。纯显示。
fieldSKU 详情抽屉 - 规则设定『最低价(底价)』输入框红线,绝不低于此价⚠️ 启用比价前必填正整数 Rand(如 250),否则保存被后端挡下,回简体中文错误「启用比价前必须设置正整数底价(最低价,单位 Rand)」。占位字「必填」。这是防两个机器人互砍亏本卖的核心安全闸,不能不填。
fieldSKU 详情抽屉 - 规则设定『最高价(上限)』输入框上调时的上限可空(占位「可空」)。有填必须是正整数 Rand 且不得低于底价,否则回错误「上限价不得低于底价」。
fieldSKU 详情抽屉 - 规则设定『抢哪个位』下拉选抢 Best Price 最低价 还是 Fastest 最快到货默认抢最低价(最快位靠物流,改价控制不了)。
fieldSKU 详情抽屉 - 规则设定『赢过竞品』输入框 + 单位下拉压过对手的幅度,可填 R 金额或 %必须是非负数。例如填 1 + 「R 金额」=比对手最低便宜 R1(固定金额,不是随机)。
fieldSKU 详情抽屉 - 规则设定『启用此规则』开关这个商品到底要不要参与比价(这才是真正生效的开关)默认关。关=此商品不比价。影子阶段建议保持关或只开少数测试。开启前底价必填,否则保存被挡。
badgeSKU 详情抽屉 - 底部预览横幅(三选一)当前会怎么处理这个商品缺货暂停→橙色『库存仅 N 件—已自动暂停调价以防超卖,补货后自动恢复』;有竞品价+有建议价→蓝色『影子预览:竞品 RX → 建议改 RY · 影子模式·不会真改』;否则→蓝色『尚无竞品价—采集器跑后会算出建议价(始终影子、不真改)』。
buttonSKU 详情抽屉 - 底部『取消』/『✓ 保存规则』抽屉里唯一真的会写资料库的地方『取消』关闭抽屉不存。『✓ 保存规则』把底价/上限/抢位/幅度/开关存进 repricer_rules 表,写 audit 日志,成功后抽屉关闭、列表刷新。填错(底价空着想启用/不是整数/上限低于底价)会跳简体中文提示。
PUT /api/repricer/:wms/rule
写入资料库(存规则),但这是『存规则』不是『改线上价』——存完不会有任何价格被推到 Takealot。是本页最实质的动作,但仍然安全(只动自己的规则表)。

⚠️ 注意事项 / 别踩的坑

  • 最大认知地雷:页面顶部的『比价总开关 / 模式 / 采集间隔』和整个『设置』弹窗(含保存设置按钮、库存感知暂停、事件告警 Email),目前全是纯前端摆设——切了不保存、刷新跳回、不影响真实行为、也不会真的发邮件。真正生效的设定只在每个商品的『规则设定』抽屉里。
  • 三个名字看着危险但当下不会改价:控制条『真改』模式、影子横幅『切换为真改』、操作栏『锁价』图示——此刻点了都不会真的改线上价格(真改价 T6b 未建)。
  • 全页零真实改价:后端注释明确写『零改价路径』『真改价 T6b 未建』。这页不碰库存防超卖主链路,最坏也只是『比价暂停更新』,不会害店铺被封或拖累库存订单同步。
  • 唯二真的写资料库的动作:① 详情抽屉『保存规则』、② 顶部『导入规则 CSV』(批量存规则)。两者都只存规则、不改价,且都写 audit。
  • 大量『—』是正常的不是 bug:我们价要先做过『补全 PLID/回填』才有;竞品价/Buy Box 价要采集器真抓过且该商品真有别家在卖才有;建议价要有竞品价+有规则才算得出。
  • 『输 Buy Box / 已最低』算的是真实价格比较,跟你有没有开规则无关——所以即使一个规则都没开,这两个数字照样显示几百个,别因此困惑。
  • Buy Box 有两个赢家位(最低价、最快),赢了『最快』就不该降价(送货速度靠仓库物流、不是降价能控的);只有『两输』才需要在底价内降价抢最低价位。
  • 采集间隔不是越快越好:要从 20 分起步试探平台容忍度,抓太密集可能让采集器那台服务器 IP 被暂时挡(但只影响竞品价更新,不影响卖货)。
  • 底价必须填整数 Rand(R299 就填 299,不能填 299.50 或 29900);上限不得低于底价,否则保存被后端挡下。
  • 你手动去 Takealot 后台改了价,这页不会自动跟,要等下一轮采集(每 20 分)才会更新显示。
  • 页面顶部 Amazon 分页是空的并显示『Amazon 比价尚未开放』——目前只支援 Takealot。
  • 代码里有一处过时注释(routes/repricer.ts 第 19 行写『未掛載到 index.ts=休眠』),但实际路由已挂载、页面确实在用——只是注释陈旧,不影响运行。

✅ 怎么操作(步骤)

  1. 教学一·给单一商品设比价规则(目前唯一会真正保存生效的操作):第1步——在主表用搜索框找到商品,或按『⭐ 审核优先』让该处理的排前面。
  2. 第2步——点那一行,右边滑出『详情抽屉』,先看上半部:竞争格局图(谁在 Buy Box、距底价多少)、竞品价历史曲线、全部对手清单。
  3. 第3步——拉到『规则设定』填:最低价(底价,必填正整数 Rand)、最高价(可空)、抢哪个位、赢过竞品幅度、启用此规则开关(默认关)。
  4. 第4步——点『✓ 保存规则』。成功则抽屉关闭、列表刷新,并留下一条 audit 操作记录;填错会跳简体中文提示告诉你哪里要改。验证成功=再点开同一商品,规则栏保留你填的值,状态变成对应状态。
  5. 教学二·批量设规则(用 CSV):第1步——点右上『导出 CSV』,下载一个已带好现价/竞品价/Buy Box 位的『需要比价商品』模板。
  6. 第2步——用 Excel 打开,逐行填 min_price(底价,整数 Rand,必填才能启用) / max_price(可空) / enabled(要启用填 1)。
  7. 第3步——回页面点『导入规则 CSV』选填好的档上传。系统只处理你填了底价或开关的行,每行单独检查底价护栏,某行错不影响其他行。完成后显示成功几行、失败几行(简体中文原因)。单次最多 250 行,前端自动分批。
  8. 重要提醒:以上两个教学都只是『定好策略 + 记录』,在真改价功能上线前,保存规则不会真的改你 Takealot 的店铺价。

与 6/21 上线测试有关

这页在 6/21 上线测试里『不会真改 Takealot 价格』——真改价(T6b)整段未建,全页是影子模式。6/21 这页能做的只有三件:① 显示采集器(VPS,已上线、每 20 分钟)听到的真实竞品价;② 按规则引擎算建议价(影子);③ 让你设规则(底价/上限/开关)、导入导出 CSV 模板。所谓『推送虚拟库存』是另一条线(连接器/库存页),不是这页。这页若将来要进入『真改价』,必须先单独建 T6b、且 Nate 明确开关,并严格分阶段灰度:先从约 1.7 万筛出需比价的→只测 3-5 个→平台后台 + CC WMS 双重验证约 2 天→才批量开。绝对不要一上来批量启用全部去真改价(两个机器人互砍会把价格砍穿成本亏本卖)。安全保证:抓竞品价的采集器跑在另一台服务器、匿名逛公开商品页(跟普通买家看到的一样)、不登入你的卖家账号、不碰那把改库存/抓订单的官方钥匙、走不同网络出口,所以最坏只是『比价暂停更新』,不会害店铺。