跳到正文
在线
zh-Hansv0.46.1 · 1d135e2
活跃

Karuselle

一个精选二手设计师时装的多语言交易平台:在不断增长的Laravel代码库上实现语义搜索、灵活的卖家佣金、欧盟税务申报和新的支付方式。

Karuselle首页:精选设计师时装转售平台,通栏展示一只银色手提包,配有“Sell with us”按钮、按品牌和类别划分的菜单、搜索及语言切换

挑战

这个多语言时装交易平台拥有众多卖家和多个外部销售渠道,需要在一套老化的代码库上继续成长:更智能的搜索、公平灵活的佣金、欧盟税务申报、更多支付方式,同时还要让商店保持快速和安全。

方案

作为唯一的开发者工作了三年:

  • 框架升级: 两周内连同所有依赖包完成Laravel 5.8 → 6 → 7 → 8 → 9 → 10 → 11以及PHP 7.4 → 8.x的升级,并迁移到新服务器。
  • 四种语言的语义搜索: 自托管的嵌入服务和向量数据库、通过队列增量同步索引、带熔断器的普通搜索降级、无需部署即可在管理后台切换的开关、确定性的颜色/类别/材质过滤,以及同义词和诊断命令。
  • 商品目录与店铺前台: 抽屉式实时AJAX筛选并显示筛选计数、换算为欧盟及各国尺码体系、折扣和卖家筛选、SEO友好的URL、卡片、页眉、页脚和超级菜单的全面重新设计,以及可拖放管理的首页横幅和轮播。
  • 出价(Make an offer): 顾客可以提出价格,管理员即使面对访客也能通过电子邮件还价,并支持每人限额、过期时间和防重复点击。
  • 结账与支付: 在购物车、结账、邮件和增值税发票中统一计算Buyer Protection费用;优惠券、按国家计算运费;支持3D Secure的Stripe、Apple Pay和Google Pay、PayPal REST,以及带金额校验的Paysera。
  • 卖家与资金: 拥有独立佣金和发票的销售渠道、同一订单中每位卖家单独开票、卖家结算日期、XML格式的欧盟DAC7税务报告、在数据库锁下生成的发票编号,以及Commission Rules模块:统一解析器、按渠道费率、按上架时长的规则、预览、拖动排序和变更日志。
  • 商品源与营销: Google Merchant、Facebook、CSV格式的合作交易平台商品源、Mailchimp电商同步、consent mode v2。
  • SEO与GEO: 商品、面包屑和FAQ的结构化数据,仅对已有译文设置canonical和hreflang,分面页面noindex,面向AI爬虫的robots规则和llms.txt,每日生成的站点地图和SEO检查命令。
  • 语言: LT、EN、PL和RU,保存时自动翻译,并有每周同步命令。
  • 管理与运维: 带工作进程心跳的队列和任务面板、后台导出、保留已输入文字的会话恢复,以及清理被遗弃的草稿商品。
  • 安全: 一次安全审查堵上了访问控制和文件访问方面的漏洞,增加了按账号和按IP的登录限流,修改密码后终止会话,并限制了可上传的文件类型。
  • 测试: 测试套件从0个增加到239个,并有防止在生产环境中运行测试的保护。

成果

  • 50件商品的佣金计算:数据库查询从101次降到2次。
  • 出价列表:每页查询169 → 121;一件有35个出价的商品:92 → 64。
  • 商品缩略图:每张136 KB → 20 KB(每个类别页60张);单件商品的图片2.5 MB → 0.5 MB。
  • 销售记录中的卖家收入现在显示实际收取的金额:发现并修复了一个影响大部分历史记录的错误。
  • 语义搜索在生产环境中覆盖约9,000件商品。

截图