在 WooCommerce 上运行 Tumblr
在 WooCommerce 上运行 Tumblr
Tumblr 最近发布了一些功能,供创作者通过他们的艺术谋生。每当您打开这些功能时,我们都会提供一个完整的 WordPress 网站,并配有 WooCommerce(和 WooCommerce Payments)插件以方便计费。这篇文章解释了原因(以防不明显)。
Your new WooCommerce is hiding behind this toggle
当我不在这个网站上写博客文章时,我在 WordPress.com 工作(实际上,这家公司叫 自动的 ) 上 帮助创作者谋生 不牺牲艺术自由。当我们购买 Tumblr 时,我们也想将这个选项扩展到 Tumblr 创作者。只是,Tumblr 没有运行 WordPress。
或者是吗?
在 Automattic,我们还致力于 WooCommerce——网络上最具扩展性的电子商务平台。为什么不将它扩展到支持 Tumblr 功能呢?实际上,有很多理由不这样做,但我们还是这样做了。
它是如何工作的?
每当您启用 Tumblr 获利功能时,我们都会:
- 在 WordPress.com 基础架构上创建一个新的 WordPress 站点以用作支付后端
- 安装 WooCommerce 和 WooCommerce-Subscriptions 插件以支持支付
- 通过 WooCommerce-Payments 为您创建一个 Stripe 帐户
- 使用您在 Tumblr 上设置的价格点在该网站上创建产品
- 将该后端站点链接到您的 Tumblr 博客
从现在开始,您的 Tumblr 博客将使用该网站作为其计费 API。
A design I originally drew many months ago, still accurate.
为什么?
在 Automattic,我们喜欢吃我们的狗粮。并吃狗粮碗。并吃下提供狗粮的桌子。这只狗是如何活下来的,真是令人惊讶。
从数据的角度来看,上述设计肯定是低效的: 是的 ,我们确实有一些重复。 是的 ,每次有人决定尝试在 Tumblr 上打赏时,我们都会创建 38 个新的 SQL 表。
但它是 非常 从组织的角度来看是有效的。我们已经为每个要求准备了可组合的部分。即使任何一件不完全正确,我们也必须 让它这样 .
WordPress.com (WPCOM)
WordPress.com 是一个巨大的多站点(它是一个运行所有博客的 WordPress 安装 - 阅读有关多站点的更多信息 )。我们的系统团队让它在裸机上运行,有效地将 WordPress 转变为“无服务器”。新的 WordPress 网站对我们来说有边际成本。使用 WooCommerce 的问题稍微多一些,但无论如何这是我们必须解决的问题。
WooCommerce
WooCommerce 是一个基于 WordPress 作为插件分发的电子商务平台。它的设计考虑到了可扩展性以适应任何用例,包括我们的计费系统(称为“Tumblrpay”)。
Checkout is the only interface of WooCommerce that we expose
数百名开源贡献者和我们的同事正在确保 WooCommerce 可靠、安全,并且是任何与支付相关的用例的完美解决方案。 它为蓬勃发展的扩展生态系统提供动力 尽管某些用例比其他用例更容易,但这使它完全按照您的意愿行事。
到目前为止,我们工作的最大挑战是让它在 WordPress.com 的巨大多站点上运行。我们必须提高安全性、可靠性、稳定性和数据处理能力。我们正在简化数据库结构和插件 API,并修复仅在这种规模下才被发现的错误。
WooCommerce 付款
WooCommerce Payments 是 Automattic 拥有的基于 Stripe 的支付网关。它利用 Automattic 的基础设施和大规模运行 WooCommerce 的经验,为任何 WooCommerce 支付方式提供最便捷的商家体验。
我们的团队正在监控欺诈行为,关注支付流程和一套流程,以确保支付端的安全、稳定和维护。
但我们让它处理 Tumblr 网络支付和续订的主要原因是因为它是 完全垂直整合 我们的其他业务和现有工作流程。
替代设计
我非常有信心,这不是你想象的 Tumblr 货币化功能的运作方式。该设计有以下目标:
- 使用现有生态系统的每个组成部分来发挥其优势。
- 找出其中的差距,改进每个组件,以便其他工作(包括开源用户)受益。
- 留下最小的足迹。没有新的仪表板,没有新的系统。
理想情况下,每个后续计费需求都应该是配置,而不是要维护的自定义项目。
我们讨论的替代架构不符合这些目标:
- 所有 Tumblr 博客的组合后端,在 Stripe Connect 之上运行(明显的类似 SAAS 的架构,具有 4-5 个更大的表):
- 不利用我们的基础设施
- 不参与其他产品
- 需要针对欺诈、系统和会计团队的自定义管理 UI 和新仪表板
- 使用应用内购买产生问题
- 运行“One Big WooCommerce”——这种设计在底层仍然是 WooCommerce,但付款汇总在一个商店,而不是每个商家:
- 无法使用 WooCommerce Payments,需要自定义支付网关
- 要求我们编写自定义逻辑以在“商家”之间分配收入
应用内购买
与我们在应用程序中启用应用程序内购买所必须执行的体操相比,运行数十万个 WooCommerce 网站很容易。
我们在 Apple IAP API 之上有效地运行了一个 Marketplace,这并不容易。我将在单独的帖子中描述它——订阅以知道它在哪里准备好了:
你最好的电子邮件
你神话般的名字
请稍等,我们正在联系信鸽……
感谢您注册!现在请前往您的收件箱以确认您的电子邮件地址。
一些经验教训
这是我们随机学到的各种经验教训:
- 仅仅因为你找到了一个聪明的方法来做到这一点,它并不总是值得的。您必须进行设计以方便将来维护
- 真正的问题是组织结构图问题。一切技术问题都是可以解决的,但组织问题更难解决。
- Chekhov 的函数:如果你将一个函数部署到一个共享代码库,很可能有人会在没有像你一样的预防措施的情况下使用它。清理您的输入。
- 它始终是缓存。
- Tumblr 用户真的很想分享色情内容,而 Apple 和 Stripe 真的不希望这样。
- 每分钟运行 80 000 次数据库更新是个坏主意。
- 复杂性以指数速度增长。如果您有 3 个未经测试的功能,那么当出现问题时,您不知道可以依赖什么。即使你建立在一个稳定的基础上,最好一次只做一个故事。
- 当你的
wp_users
表大于 3 亿,而不是创建拥有超过 100 000 个站点的用户。作为每个站点上的角色存储为用户元
,那个巨大的条目将创建缓存超时。 - Composer 自动加载器文件名与 WordPress 编码标准不兼容。
- WooCommerce 引导顺序是一头精致的野兽。
- 你的工作是让自己脱离工作
荣誉
我想向我出色的队友致以巨大的荣誉,他们使这个具有挑战性的架构成为现实:
整个产品团队使用这个基础设施来构建惊人的功能,比如 螃蟹 ,所以你可以把螃蟹送给其他 Tumblr 用户。和他们一起工作很愉快。
帖子 在 WooCommerce 上运行 Tumblr 首先出现在 阿图尔·皮泽克 .
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明