【问题标题】:Woocommerce products not in local database but from live APIWoocommerce 产品不在本地数据库中,而是来自实时 API
【发布时间】:2017-02-20 21:39:13
【问题描述】:
是否可以在本地数据库中没有 Woocommerce 产品但从 API 加载它们?
我的供应商只有一个 API,我无法下载或导入数据库,每个产品/产品列表/类别等都必须从 API 请求。
当然我可以做一些缓存,但问题是:
Woocommerce 能否处理不在本地数据库中但来自实时 API 的产品
== 编辑 ==
我必须为每 Gb 支付这个 API。所以我无法获取所有数据,这将花费每月 1000 美元。速度不是问题,有数百家商店连接到这个实时 API,而且这些商店工作正常。我同意,本地数据库中的所有产品都会更好,但是....
【问题讨论】:
标签:
wordpress
woocommerce
woocommerce-rest-api
【解决方案1】:
没有像您正在寻找的默认功能。 Woocommerce 的开发人员不可能预测每一个可能的 API 连接。这种场景的实现将是不平凡的。您必须连接到 Woocommerce 的许多部分才能使其正常工作。它可以完成(代码库中都有钩子),但这将是一项艰巨的任务。但是,在您决定继续使用它之前,请了解这样做会使您的网站速度慢得无法忍受。 Woocommerce 开始时并不是很快,但是为每个页面视图进行实时 API 调用(可能是多次调用)对于您的访问者来说将是一个糟糕的用户体验。
相反,编写一个使用 wp-cron 调用 API 并定期填充 Woocommerce 表作为后台进程的插件。这应该允许您将来自供应商的所有信息缓存在本地(如果它们曾经宕机怎么办?)并且速度会大大提高。此外,您无需在 Woocommerce 中进行任何更改。
【解决方案2】:
正如 BA_Webimax 回复的那样,这是真的,woocommerce 中不存在从 API/实时数据库中获取产品的默认功能。
我已经实现了功能,其中产品、图像、价格所有内容都从不同的 API 流出,并且我实现了从 API 在线获取所有数据并从 API 显示产品商店页面和单个产品页面运行时的功能。
但是当用户当时将产品添加到购物车中时,将带有图像/详细信息/价格的单个产品作为 woocommerce 产品添加到 woocommerce 数据库中。因此,将产品添加到 woocommerce 后,您可以在结帐、折扣、运输期间使用 woocommerce 的所有默认功能,优惠券,付款和下订单,由 woocommerce 自己管理。