Absolute Antibody Ltd于2012年在英国牛津成立,是抗体测序、工程和重组制造方面的专家。他们的任务是将治疗级抗体带入研究和诊断市场。这个任务导致了一个极其复杂的产品目录。
在过去的一年中,Electric Studio与Absolute Antibody合作重新设计了他们的网站。主要目标是改善客户体验并减少网站上重复信息的数量。这意味着他们必须了解他们的产品目录,没有相关的专业知识就没法完成!每种抗体产品都基于特定的克隆,并且每种抗体产品以各种尺寸和具有不同价格点的缀合物出售。

根据以前的经验,Electric Studio选择使用WooCommerce实现解决方案。并结合使用WooCommerce的原生分组和可变产品,以与Absolute Antibody产品结构相匹配的方式表示目录。
他们将网站与ElasticSearch集成在一起,以提高搜索和类别页面的速度。使用Elastic Cloud的托管解决方案并利用ElasticPress对产品数据建立索引,并通过一些额外的自定义来限制对分组产品的响应。这改善了产品目录的导航,帮助人们更快地找到他们需要的抗体。
网站上的产品页面旨在允许在正确的时间显示所有相关信息,而无需重复。它基于分组产品,并使用Ajax调用来提取不同级别的产品信息,用户可以根据给定克隆在抗体产品之间轻松切换。买家可以快速查看并选择合适的尺寸和所需的共轭。

同步工具:从8小时到20分钟
当然,产品目录已经包含超过4500种抗体产品,分为800多种克隆,每种产品有多达15种不同 – 共有约50000种不同的产品。编辑器无法手动将这些产品添加到新网站中!需要同步工具。
Absolute Antibody已经为他们以前的网站提供了同步工具。但是,它是在WooCommerce REST API可用之前构建的,并且是为完全不同的站点结构而构建的。所以决定从头开始重写该工具,以利用WooCommerce API的最新改进。产品数据当前存储在Microsoft SQL Azure数据库中,Absolute Antibody已经安装了Dreamfactory,以便与Salesforce建立接口。
Electric Studio决定使用Laravel和WooCommerce API库编写新的同步工具,并利用当前的Dreamfactory安装来安全地访问数据。他们将数据提取到本地数据库中,这使Electric Studio能够在添加特定于Web的详细信息 – 例如,存储产品ID并计算产品类别。然后,通过WooCommerce API将这些数据推送到网站 – 在添加变体之前首先创建变体产品,然后在为所有子产品提供产品ID后创建分组产品。
Electric Studio还构建了一个小的附加API,允许将产品的图像数据(包括字幕)同步到网站。此API备份到WooCommerce Rest API身份验证,使调用更安全。可以像往常一样将图像上传到网站上的媒体库,并且API仅在图像存在时才添加数据。

显然,对于50000个产品,同步的速度非常重要:同步速度越快,运行频率越高,网站保持最新状态的效果越好。之前的同步花费了8到12个小时来运行完整的产品同步,这显然不是可以定期运行的。
同步速度越快,运行频率越高,网站保持最新状态的效果越好。
Electric Studio在代码的效率方面投入了大量的工作,从Dreamfactory API查询的结构,最好地操纵产品数据,甚至优化批量大小以推送到WooCommerce等方面查看所有相关内容。新工具可以在四到六个小时内完成完整的产品同步 – 大约是旧同步时间的一半!这是一个很大的改进,但仍然有相当一段时间……
通过将数据拉入中间数据库,Electric Studio能够标记自上次同步以来哪些产品已更改。这意味着可以进行增量同步,这可能只需要20分钟 – 具体取决于更改的数量。这是一个可以一天运行多次的同步,以使产品保持最新。
未来
Absolute Antibody不断发展,有新办公室和更多产品。使用WordPress和WooCommerce,他们现在拥有一个可以与他们一起成长的干净网站。Electric Studio期待继续与他们合作。