Shopify 应用程序计费 API:如何提供多种计费计划?

问题描述 投票:0回答:1

Shopify 最近的 2020 年 7 月 API 更新允许应用按年计费,因此我一直在尝试向我的应用添加在按月计费和按年计费之间进行选择的选项。

我一直在尝试通过修改创建计费计划的 GraphQL 调用来实现此目的。

我一直在尝试几种不同的选项,但最合乎逻辑的选项似乎是添加一个额外的行项目。这可以将两个计划呈现到计费审批屏幕,但仍然无法在计划之间进行实际选择(显示两个计划的详细信息,但只有后一个选项实际上有效。

这是我一直在使用的代码:

  const query = JSON.stringify({
    query: `mutation {
      appSubscriptionCreate(
          name: "Basic Plan"
          trialDays: 7
          returnUrl: "${process.env.HOST}"
          lineItems: [
          {
            plan: {
              appRecurringPricingDetails: {
                  price: { amount: 4.99, currencyCode: USD }
              }
            }
            plan: {
              appRecurringPricingDetails: {
                  price: { amount: 49.99, currencyCode: USD }
                  interval: ANNUAL
              }
            }
          }
          ]
        ) {
            userErrors {
              field
              message
            }
            confirmationUrl
            appSubscription {
              id
            }
        }
    }`
  });

如果有任何建议,我会很高兴。

非常感谢!

shopify billing shopify-app shopify-api
1个回答
0
投票

您不能在 appSubscriptionCreate 突变中同时包含 每月

年度
计划。

您应该将可用的计划(每月每年)存储在数据库中,并显示计划页面供客户选择。

如果客户选择每月,您可以创建具有每月计划的应用程序订阅:

const query = JSON.stringify({
  query: `mutation {
    appSubscriptionCreate(
        // other fields
        lineItems: [
          {
            plan: {
              appRecurringPricingDetails: {
                  price: { amount: 4.99, currencyCode: USD }
              }
            }
          }
        ]
      ) {
          userErrors {
            field
            message
          }
          confirmationUrl
          appSubscription {
            id
          }
      }
  }`
});

如果客户选择年度,您可以使用年度计划创建应用程序订阅:

const query = JSON.stringify({
  query: `mutation {
    appSubscriptionCreate(
        // other fields
        lineItems: [
          {
            plan: {
              appRecurringPricingDetails: {
                price: { amount: 49.99, currencyCode: USD }
                interval: ANNUAL
              }
            }
          }
        ]
      ) {
          userErrors {
            field
            message
          }
          confirmationUrl
          appSubscription {
            id
          }
      }
  }`
});

请不要忘记包含年度计划的折扣。

© www.soinside.com 2019 - 2024. All rights reserved.