🗞

【Shopify.dev和訳】Apps/Subscriptions/Selling plans

2021/09/17に公開

この記事について

この記事は、Apps/Subscriptions/Selling plansの記事を和訳したものです。

記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。

Shopify アプリのご紹介

Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。

https://apps.shopify.com/shopify-application-314?locale=ja&from=daniel

Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。

https://apps.shopify.com/font-picker-1?locale=ja&from=daniel

販売計画の作成と管理

販売計画は、商品の販売・購入方法を表すものです。このチュートリアルでは、2 つのユースケースを例に、アプリで販売プランを作成・管理する方法を説明します。このチュートリアルでは、2 つのユースケース、「Subscribe and save」と「Prepaid」のサブスクリプションについて説明します。

"Subscribe and save "は、"pay per delivery "とも呼ばれ、お客様が商品やサービスの代金を配送ごとに支払う販売方法です。一方、「プリペイド」とは、お客様が一度だけ前払いする販売方法です。

条件

スコープ

GraphQL ミューテーションを使用するには、アプリが Shopify ストアに対して以下のアクセススコープを要求する必要があります。

  • write_products:アプリに商品の書き込みを許可します。
  • read_customer_payment_methods: 顧客の支払い方法を読み取ることを許可します。
  • read_own_subscription_contracts:アプリに顧客の支払い方法の読み取りを許可します。アプリが所有している契約のサブスクリプション契約のミューテーションを読み取ることを許可します。
  • write_own_subscription_contracts: アプリが所有するコントラクトに対して、サブスクリプション契約のミューテーションを書き込むことを許可します。

販売計画

販売計画グループは、販売方法を表すものです。販売計画は、販売計画グループに編成されます。各販売計画グループには、製品やバリエーション、配送、請求、価格設定のポリシーが含まれています。

販売計画オブジェクトの説明

API オブジェクト 説明
販売計画グループ 販売方法を表します。例えば、「Subscribe and save」や「Prepaid」の購読など。
販売計画 製品やバリアントを購入するための代替手段を表す。販売プランは、販売プラングループにまとめられます。例えば、個々の販売プランは、「毎週お届け」や「毎月お届け」といった名前になっています。
ポリシー 各販売プランには、以下のポリシーが関連付けられています。
Billing policy: サブスクリプションに関連する請求の頻度。例えば、1 週間ごとに請求する、または 3 ヶ月ごとに請求するなど。
Delivery policy: サブスクリプションに関連する配信頻度。例えば、「毎月配信」や「隔週配信」などです。
Pricing policy: サブスクリプションに関連する価格設定のタイプ。例えば、10 ドルや 20%の割引が一定期間繰り返される場合や、サブスクリプションの期間中は固定される場合などがあります。価格設定ポリシーには次の 2 種類があります。
  ・Fixed pricing policy: 単一の価格設定ポリシーです。例えば、すべての請求サイクルで一律 15%の割引を行うことができます。初期の価格設定ポリシーは、定義された定期的なポリシーが有効になるまで適用されます。
  ・Recurring pricing policy: 最初の価格設定ポリシーが終了した後に適用される価格設定ポリシー。例えば、最初の請求サイクルでは 20%の割引を行い、その後の定期的なサイクルでは 15%の割引を行うことができます。

販売計画グループの作成

以下の例では、sellingPlanGroupCreateミューテーションを使用して販売プラングループを作成しています。

入力フィールドには、name(顧客に表示されるプラングループ名)、merchantCode(マーチャントに表示されるプラン名)、sellingPlansToCreate(作成する個々の販売プラン)、options(ストアフロントのドロップダウンリストで利用可能な販売プランのオプション)、position(オプションのソート方法)があります。

Subscribe and save

個々の販売プランの中で、請求、配送、価格のポリシーが設定されます。

  • billingPolicy: スケジュールは、週払いの配信契約に基づいています。
  • deliveryPolicy: スケジュールは、マーチャントが毎週、2 週間、3 週間に配送を提供することに基づいています。
  • pricingPolicies(fixed): 毎週配送の場合は 15%オフ、2 週間ごとの配送の場合は 10%オフ、3 週間ごとの配送の場合は 5%オフと設定されています。販売プランの価格設定ポリシーは、価格表との連携も可能です。詳しくは、「価格表 API を使って異なる価格設定モデルをサポートする」を参照してください。

Prepaid

個々の販売プランの中で、請求、配送、価格のポリシーが設定されます。

  • billingPolicy: スケジュールは、12 週間のプリペイドサブスクリプションに基づいています。
  • deliveryPolicy: スケジュールは、マーチャントが毎週、2 週間、3 週間に配送を提供することに基づいています。
  • pricingPolicies(fixed): 毎週お届けの場合は 20%オフ、2 週間ごとのお届けの場合は 15%オフ、3 週間ごとのお届けの場合は 10%オフという価格設定になっています。販売プランの価格設定ポリシーは、価格表との連携も可能です。詳しくは、「価格表 API を使って異なる価格設定モデルをサポートする」を参照してください。

毎月特定の日に配信を開始するなど、より高度な配信動作を定義する必要がある場合は、API コールにアンカーを含めることができます。

販売計画 API のコンテンツガイドラインを見る

以下の販売計画 API プロパティは、Shopify 管理画面の「商品」ページや、ストアフロントの「Product」ページや「チェックアウト」に、マーチャント向けの文字列を表示します。アプリが文字列を入力します。最高のユーザーエクスペリエンスを提供するために、推奨されるガイドラインに従うことができます。

フィールド コンテントガイドライン 詳細
SellingPlan.name 3 ヶ月のプリペイド定期購読|毎週お届け
Pattern: [サブスクリプションタイプ]、[頻度]ごとの配信
お客様が選択されたプリペイド期間、タイプ、配信頻度を表示します。
Pattern: [サブスクリプションタイプ]、[頻度]ごとの配信
SellingPlanGroup.description (フィールドが設定されている場合) SellingPlanGroup.summary Shopify はSellingPlanGroup.summaryの内容を直接出力します。Customer can chooseは追加されません。
SellingPlanGroup.description (フィールドが設定されている場合) お客様が選択できる
[SellingPlan.name]
[SellingPlan.name]
Shopify はCustomer can chooseを出力し、販売計画グループの関連する販売計画をループし、SellingPlan.nameを出力します。

Request

POST /admin/api/2021-01/graphql.json

mutation {
  sellingPlanGroupCreate(
    input: {
      name: "Prepaid"
      merchantCode: "prepaid"
      options: ["Delivery every"]
      position: 2
      sellingPlansToCreate: [
        {
          name: "12 weeks of prepaid coffee, delivered weekly"
          options: "1 Week(s)"
          position: 1
          billingPolicy: { recurring: { interval: WEEK, intervalCount: 12 } }
          deliveryPolicy: { recurring: { interval: WEEK, intervalCount: 1 } }
          pricingPolicies: [
            { fixed: { adjustmentType: PERCENTAGE, adjustmentValue: { percentage: 20.0 } } }
          ]
        }
        {
          name: "12 weeks of prepaid coffee, delivered every two weeks"
          options: "2 Week(s)"
          position: 2
          billingPolicy: { recurring: { interval: WEEK, intervalCount: 12 } }
          deliveryPolicy: { recurring: { interval: WEEK, intervalCount: 2 } }
          pricingPolicies: [
            { fixed: { adjustmentType: PERCENTAGE, adjustmentValue: { percentage: 15.0 } } }
          ]
        }
        {
          name: "12 weeks of prepaid coffee, delivered every three weeks"
          options: "3 Week(s)"
          position: 3
          billingPolicy: { recurring: { interval: WEEK, intervalCount: 12 } }
          deliveryPolicy: { recurring: { interval: WEEK, intervalCount: 3 } }
          pricingPolicies: [
            { fixed: { adjustmentType: PERCENTAGE, adjustmentValue: { percentage: 10.0 } } }
          ]
        }
      ]
    }
    resources: { productIds: [], productVariantIds: [] }
  ) {
    sellingPlanGroup {
      id
    }
    userErrors {
      field
      message
    }
  }
}

JSON response

Copy
{
  "data": {
    "sellingPlanGroupCreate": {
      "sellingPlanGroup": {
        "id": "gid://shopify/SellingPlanGroup/294968"
      },
      "userErrors": []
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 10,
      "actualQueryCost": 10,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 990,
        "restoreRate": 50
      }
    }
  }
}

販売計画グループを製品バリアントに関連付ける

販売計画は、sellingPlanGroupCreate コールで既に関連付けられた製品または製品バリアントと共に作成できます。

しかし、sellingPlanGroupAddProductsまたはsellingPlanGroupAddProductVariantsミューテーションを使用して、販売プラングループを削除して再作成することなく、販売プラングループを製品または製品バリアントに関連付けるための別の呼び出しを行うこともできます。

以下の例では、セリングプラングループが製品バリアントに関連付けられています。

Request

POST /admin/api/2021-01/graphql.json

mutation {
  sellingPlanGroupAddProductVariants(
    id: "gid://shopify/SellingPlanGroup/294969"
    productVariantIds: ["gid://shopify/ProductVariant/31374109802518"]
  ) {
    sellingPlanGroup {
      id
      productVariantCount
      productVariants(first: 10) {
        edges {
          node {
            id
            title
            inventoryQuantity
            product {
              id
              title
              totalInventory
            }
          }
        }
      }
    }
    userErrors {
      field
      message
    }
  }
}

JSON reponse:

{
  "data": {
    "sellingPlanGroupAddProductVariants": {
      "sellingPlanGroup": {
        "id": "gid://shopify/SellingPlanGroup/294969",
        "productVariantCount": 1,
        "productVariants": {
          "edges": [
            {
              "node": {
                "id": "gid://shopify/ProductVariant/31374109802518",
                "title": "Type A",
                "inventoryQuantity": 7,
                "product": {
                  "id": "gid://shopify/Product/4352352387128",
                  "title": "The best coffee",
                  "totalInventory": 17
                }
              }
            }
          ]
        }
      },
      "userErrors": []
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 32,
      "actualQueryCost": 14,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 986,
        "restoreRate": 50
      }
    }
  }
}

複数の販売計画グループを製品または製品バリアントに関連付ける

複数の販売計画グループを 1 つの製品または製品バリアントに関連付けたい場合は、 productJoinSellingPlanGroups または productVariantJoinSellingPlanGroups ミューテーションを使用できます。

以下の例では、2 つの販売計画グループが 1 つの商品に関連付けられています。

POST /admin/api/2021-01/graphql.json

mutation {
  productJoinSellingPlanGroups(
    id: "gid://shopify/Product/4353554710550"
    sellingPlanGroupIds: [
      "gid://shopify/SellingPlanGroup/294968"
      "gid://shopify/SellingPlanGroup/491542"
    ]
  ) {
    product {
      id
    }
    userErrors {
      field
      message
    }
  }
}

JSON response:

Copy
{
  "data": {
    "productJoinSellingPlanGroups": {
      "product": {
        "id": "gid://shopify/Product/4353554710550"
      },
      "userErrors": []
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 10,
      "actualQueryCost": 10,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 990,
        "restoreRate": 50
      }
    }
  }
}

次の例では、2 つの販売プラングループが 1 つの製品バリアントに関連付けられています。

POST /admin/api/2021-01/graphql.json

mutation {
  productVariantJoinSellingPlanGroups(
    id: "gid://shopify/ProductVariant/31374835974166"
    sellingPlanGroupIds: [
      "gid://shopify/SellingPlanGroup/294968"
      "gid://shopify/SellingPlanGroup/491542"
    ]
  ) {
    productVariant {
      id
    }
    userErrors {
      field
      message
    }
  }
}

JSON response

{
  "data": {
    "productVariantJoinSellingPlanGroups": {
      "productVariant": {
        "id": "gid://shopify/ProductVariant/31374835974166"
      },
      "userErrors": []
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 10,
      "actualQueryCost": 10,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 990,
        "restoreRate": 50
      }
    }
  }
}

サブスクリプションでのみ販売する製品の設定

productUpdateのミューテーションでrequestsSellingPlanフィールドを true に指定することで、どの製品をサブスクリプションで販売するかを設定することができます。次の例では、製品はサブスクリプションでのみ販売されます。

Request

POST /admin/api/2021-01/graphql.json

mutation {
  productUpdate(input: { id: "gid://shopify/Product/1", requiresSellingPlan: true }) {
    product {
      id
      requiresSellingPlan
    }
    userErrors {
      field
      message
    }
  }
}

JSON response

{
  "data": {
    "productUpdate": {
      "product": {
        "id": "gid://shopify/Product/1",
        "requiresSellingPlan": true
      },
      "userErrors": []
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 10,
      "actualQueryCost": 10,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 990,
        "restoreRate": 50
      }
    }
  }
}

販売計画グループの編集

sellingPlanGroupUpdateミューテーションを呼び出して、セリングプラングループに関連する属性を編集することができます。次の例では、「Subscribe and save」という販売プラングループの名前が「Pay per delivery」に変更されています。

Request

POST /admin/api/2021-01/graphql.json

mutation {
  sellingPlanGroupUpdate(
    id: "gid://shopify/SellingPlanGroup/294969"
    input: { name: "Pay per delivery" }
  ) {
    sellingPlanGroup {
      id
      name
    }
    userErrors {
      field
      message
    }
  }
}

JSON response:

{
  "data": {
    "sellingPlanGroupUpdate": {
      "sellingPlanGroup": {
        "id": "gid://shopify/SellingPlanGroup/294969",
        "name": "Pay per delivery"
      },
      "userErrors": []
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 10,
      "actualQueryCost": 10,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 990,
        "restoreRate": 50
      }
    }
  }
}

販売計画グループからの製品やバリアントの削除

販売計画グループから製品の関連付けを解除したい場合は、sellingPlanGroupRemoveProductsミューテーションを使用することができます。販売計画グループから製品バリアントを削除するには、sellingPlanGroupRemoveProductVariantsミューテーションを使用することができます。この例では、販売計画グループから製品が削除されています。

POST /admin/api/2021-01/graphql.json

mutation {
  sellingPlanGroupRemoveProducts(
    id: "gid://shopify/SellingPlanGroup/294968"
    productIds: ["gid://shopify/Product/4353554710550"]
  ) {
    userErrors {
      field
      message
    }
    removedProductIds
  }
}

JSON response:

{
  "data": {
    "sellingPlanGroupRemoveProducts": {
      "userErrors": [],
      "removedProductIds": []
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 10,
      "actualQueryCost": 10,
      "throttleStatus": {
        "maximumAvailable": 1000.0,
        "currentlyAvailable": 990,
        "restoreRate": 50.0
      }
    }
  }
}

支払い情報の収集

販売プラングループを作成した後、お客様はサブスクリプションで製品を購入し、カートに追加することができます。ストアフロントのリキッド プロパティの実装について詳しくは、「商品ページでの販売プラングループと販売プランの表示」を参照してください。

カスタマー ペイメント メソッドを使用すると、マーチャントは、お客様がいるかいないかにかかわらず、新しい請求を開始できます。チェックアウトが完了すると、カスタマー ペイメント メソッドがお客様に関連付けられます。

注文に定期購入商品が含まれている場合、支払い方法は定期購入の契約に関連付けられます。これにより、定期購入アプリは、定期的な支払いに使用する支払方法を知ることができます。

サブスクリプションの高度な配信動作

サブスクリプションに対して、より高度な配信動作を定義する必要がある場合は、アンカーを使用することができます。アンカーは以下のような場面で役立ちます。

  • マーチャントが毎月特定の日にフルフィルメントを開始する場合
  • マーチャントは、四半期ごとに 1 日に請求書を発行したいと考えています。
  • お客様が毎週火曜日に配送を希望されている場合

アンカーは、マーチャントがフルフィルメントを完了した日、または所定のタイムサイクルで顧客への配送が発生した日を定義します。また、お客様がこのサイクルに入ることができるカットオフを定義し、カットオフ期間内にサブスクリプションを開始したお客様に対する望ましい動作を定義することができます。

アンカーの詳細については、リファレンストピック「SellingPlanRecurringDeliveryPolicy」を参照してください。プリペイドサブスクリプションに関連する注文と履行を管理する方法については、「プリペイドサブスクリプションの注文を管理する」を参照してください。

意図する結果とアンカーバリューの例を見る

意図した結果 価値観
アンカーの日付で購入、カットオフなし(すぐに) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: すぐに
first_billing_date: 2020 年 1 月 15 日
first_delivery: 2021 年 1 月 15 日
next_delivery: 2020 年 2 月 15 日
next_billing_date: 2020 年 2 月 15 日
アンカーの日付で購入、カットオフなし(次) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: 次
first_billing_date: 2020 年 1 月 15 日
first_delivery: 2021 年 1 月 15 日
next_delivery: 2020 年 2 月 15 日
next_billing_date: 2020 年 2 月 15 日
アンカーの日付前に購入する、カットオフなし (すぐに) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: すぐに
first_billing_date: 2020 年 1 月 9 日
first_delivery: 2021 年 1 月 9 日
next_delivery: 2020 年 2 月 15 日
next_billing_date: 2020 年 2 月 15 日
アンカーの日付の前に購入、カットオフなし(次) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: 次
first_billing_date: 2020 年 1 月 9 日
first_delivery: 2021 年 1 月 15 日
next_delivery: 2020 年 2 月 15 日
next_billing_date: 2020 年 2 月 15 日
アンカーの日付以降に購入すると、カットオフなし(すぐに) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: すぐに
first_billing_date: 2020 年 1 月 24 日
first_delivery: 2021 年 1 月 24 日
next_delivery: 2020 年 2 月 15 日
next_billing_date: 2020 年 2 月 15 日
アンカーの日付後の購入、カットオフなし(次) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: 次
first_billing_date: 2020 年 1 月 24 日
first_delivery: 2021 年 2 月 15 日
next_delivery: 2020 年 3 月 15 日
next_billing_date: 2020 年 3 月 15 日
締め切り日内に購入、締め切りなし(すぐに) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: すぐに
first_billing_date: 2020 年 1 月 12 日
first_delivery: 2021 年 1 月 15 日
next_delivery: 2020 年 2 月 15 日
next_billing_date: 2020 年 2 月 15 日
インサイド・カットオフで購入、カットオフなし(次) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: 次
first_billing_date: 2020 年 1 月 12 日
first_delivery: 2021 年 2 月 15 日
next_delivery: 2020 年 3 月 15 日
next_billing_date: 2020 年 3 月 15 日
締切日前に購入、締切なし(すぐに) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: すぐに
first_billing_date: 2020 年 1 月 9 日
first_delivery: 2021 年 1 月 9 日
next_delivery: 2020 年 1 月 15 日
next_billing_date: 2020 年 1 月 15 日
カットオフ前に購入、カットオフなし(次) delivery_anchor:毎月 15 日
delivery_anchor_intent: フルフィルメント
delivery_anchor_cutoff:0
delivery_anchor_pre_cutoff_behavior: 次
first_billing_date: 2020 年 1 月 9 日
first_delivery: 2021 年 1 月 15 日
next_delivery: 2020 年 2 月 15 日
next_billing_date: 2020 年 2 月 15 日

通話例

次の例では、API 呼び出しにおけるanchorsの使用方法を示しています。この例では、フルフィルメントおよび請求書発行日を毎月 15 日と定義しています。

POST /admin/api/2021-01/graphql.json

mutation {
  sellingPlanGroupCreate(
    input: {
      name: "Every month delivery"
      options: ["Delivery Every"]
      sellingPlansToCreate: {
        name: "15th of the month"
        options: ["15"]
        deliveryPolicy: {
          recurring: {
            anchors: { day: 15, type: MONTHDAY }
            preAnchorBehavior: ASAP
            intent: FULFILLMENT_BEGIN
            interval: MONTH
            intervalCount: 1
          }
        }
        pricingPolicies: {
          fixed: { adjustmentType: PERCENTAGE, adjustmentValue: { percentage: 10 } }
        }
        billingPolicy: {
          recurring: { interval: MONTH, intervalCount: 1, anchors: { day: 15, type: MONTHDAY } }
        }
      }
    }
    resources: { productVariantIds: ["gid://shopify/ProductVariant/1"] }
  ) {
    sellingPlanGroup {
      name
      sellingPlans(first: 10) {
        edges {
          node {
            name
            options
          }
        }
      }
    }
    userErrors {
      code
      field
      message
    }
  }
}

JSON response:

{
  "data": {
    "sellingPlanGroupCreate": {
      "sellingPlanGroup": {
        "name": "Every month delivery",
        "sellingPlans": {
          "edges": [
            {
              "node": {
                "name": "15th of the month",
                "options": ["15"]
              }
            }
          ]
        }
      },
      "userErrors": []
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 22,
      "actualQueryCost": 13,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 987,
        "restoreRate": 50
      }
    }
  }
}

Selling plans 関連の Webhook

アプリは、以下の販売計画関連の Webhook を購読できます。webhook を設定して消費する方法については、「webhook を設定する」を参照してください。

selling_plans_group/create

selling_plans_group/create

詳細

販売計画グループが作成されたときに発せられます。

ペイロード

{
     admin_graphql_api_id,
     id,
     name,
     merchant_code,
     admin_graphql_api_app,
     app_id,
     description,
     options,
     position,
     summary,
     selling_plans,
     product variants,
     products
}

必要なアクセス

read_own_subscription_contracts

selling_plans_group/update

詳細

販売計画グループが更新されたときに発行されます。

ペイロード

{
    admin_graphql_api_id,
    id,
    name,
    merchant_code,
    admin_graphql_api_app,
    app_id,
    description,
    options,
    position,
    summary,
    selling_plans,
    product variants,
    products
}

必要なアクセス

read_own_subscription_contracts

selling_plans_group/dehlete

詳細

販売計画グループが削除されたときに発行されます。

ペイロード

{
    admin_graphql_api_id,
    id
}

必要なアクセス

read_own_subscription_contracts

次のステップ

Shopify アプリのご紹介

Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。

https://apps.shopify.com/shopify-application-314?locale=ja&from=daniel

Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。

https://apps.shopify.com/font-picker-1?locale=ja&from=daniel

Discussion

ログインするとコメントできます