コンテンツにスキップ
14日間無料で試す
日本語
Claudeで開く このページについて質問するChatGPTで開く このページについて質問する

APIで数量割引価格を更新/編集する

公開APIで既存の数量割引価格ルールを更新する方法です。リクエストボディの全項目リファレンスも掲載しています。

このドキュメントでは、公開APIを使って既存の数量割引価格ルールを更新する方法を説明します。


既存の数量割引価格レコードを更新するには、次のエンドポイントを使用します。

PUT https://wholesale.samita.io/api/v1/volume-pricings/{id}
  • {id}は数量割引価格レコードのIDです
  • IDはアプリの画面で確認できます(「#」記号は含めません)
  • 参考例:

PUT https://wholesale.samita.io/api/v1/volume-pricings/1

すべてのAPIリクエストに、次の必須ヘッダーを含める必要があります。

ヘッダー 説明 必須
X-SAMITA-API-KEY Wholesaleアプリで発行されたAPIキー はい
X-SAMITA-SHOP-URL xxx.myshopify.com形式のShopifyストアドメイン はい
CONTENT-TYPE application/jsonを指定する必要があります はい

必須ヘッダーが1つでも欠けている場合、リクエストは拒否されます。


_ 数量割引価格の更新に使用するデータは、JSON形式で送信する必要があります。サンプルのJSON構造は、このドキュメントの末尾に掲載しています。

_ リクエストには、更新が必要なフィールドのみを含めます。作成APIメソッドのように、すべてのフィールドを送信する必要はありません。

_ 指定しなかったフィールドは変更されません

リクエストJSONのサンプル:

{
"title": "New Volume Pricing",
"status": true,
"type": "quantity",
"apply_customer": {
"type": "all",
"tags": []
},
"exclude_customer": {
"type": "none",
"tags": []
},
"apply_product": {
"type": "all",
"product_ids": [],
"product_tags": [],
"collection_ids": [],
"apply_for_variants": false
},
"exclude_product": {
"type": "none",
"product_ids": [],
"collection_ids": []
},
"discount_for_variants": [
{
"id": 8516448190631,
"duplicated": false,
"variant_pricing": true,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
],
"variants": [
{
"id": 46747346763943,
"duplicated": false,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
]
}
]
}
],
"apply_market": {
"type": "all",
"handle": []
},
"discount_method": "variant",
"discount_groups": [
{
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"type": "percent",
"value": "10"
}
],
"active_date": {
"types": ["start date", "end date"],
"start_at": "2026-01-15T10:00:00",
"end_at": "2026-01-15T10:00:00"
}
}

  • 数量割引価格レコードを識別するための名前です
  • 文字列である必要があります
  • 最大長:255文字

  • レコードが有効かどうかを指定します
  • 次の値のみ使用できます。
値 説明
true 価格ルールが有効です
false 価格ルールが無効です

数量割引価格を、数量で計算するか金額で計算するかを指定します。

使用できる値:

  • quantity
  • amount

この価格ルールの対象となるお客様を指定します。

構造:

"apply_customer": {
"type": "all",
"tags": []
}

type

使用できる値(次のいずれか1つのみ):

  • all – すべてのお客様に適用します
  • logged – ログイン中のお客様にのみ適用します
  • non-logged – ゲストのお客様にのみ適用します
  • customer-tags – 特定のタグを持つお客様にのみ適用します

tags

  • type == customer-tagsの場合のみ必須です
  • カンマ区切りの配列である必要があります
  • 例:["wholesale","b2b"]

typeがcustomer-tagsでない場合、このフィールドは無視できます。


価格ルールから特定のお客様を除外します。

構造:

"exclude_customer": {
"type": "none",
"tags": []
}

type

  • デフォルト値:none
  • 使用できる値:
値 説明
none お客様を除外しません
customer-tags タグでお客様を除外します

tags

  • type == customer-tagsの場合のみ必須です
  • カンマ区切りの配列
  • 例:["vip","internal"]

価格ルールを適用する商品を指定します。

構造:

"apply_product": {
"type": "all",
"product_ids": [],
"product_tags": [],
"collection_ids": [],
"apply_for_variants": false
},

type

使用できる値:

  • all
  • products
  • collections
  • product-tags

product_ids

  • type == productsの場合のみ必須です
  • 商品IDのカンマ区切りリスト
  • 例:[1,2,3]

product_tags

  • type == product-tagsの場合のみ必須です
  • 例:["tag1","tag2"]

collection_ids

  • type == collectionsの場合のみ必須です
  • 例:[1,2,3]

apply_for_variants

  • 割引をバリエーションごとに設定できるかどうかを指定します
  • 使用できる値:trueまたはfalse
  • デフォルト値:false

ルールから除外する商品を指定します。

構造:

"exclude_product": {
"type": "none",
"product_ids": [],
"collection_ids": []
},

type

  • デフォルト:none
  • 使用できる値:
値 説明
none 商品を除外しません
products 特定の商品を除外します
collections 特定のコレクションを除外します

その他のフィールドは、選択したtypeに応じてのみ必須になります。


**商品レベルまたはバリエーションレベル(あるいはその両方)**の割引設定を指定します。

  • apply_product.apply_for_variants == falseの場合、このフィールドは空のままにします。
  • apply_product.apply_for_variants == trueの場合、このフィールドは必須です。
  • 構造は商品設定の配列である必要があります。

構造:

"discount_for_variants": [
{
"id": 8516448190631,
"duplicated": false,
"variant_pricing": true,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
],
"variants": [
{
"id": 46747346763943,
"duplicated": false,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
]
}
]
}
],

i.1. id(必須)

  • 商品IDです。
  • 既存の商品と一致している必要があります。

i.2. duplicated

商品に複数の数量/金額の範囲があるかどうかを示します。

使用できる値:

  • true
  • false

ルール:

  • trueの場合:商品に複数の数量/金額の範囲があります。
  • falseの場合:商品の数量/金額の範囲は1つのみです。

i.3. from_qty / from_amount

範囲の開始数量または開始金額です。

ルール:

  • 最初の項目は空にできます(デフォルトは1)。
  • 2番目以降の項目はすべて必須です。

i.4. to_qty / to_amount

範囲の終了数量または終了金額です。

ルール:

  • 空にできます(次の項目のfromの値から1を引いた値として自動的に計算されます)。
  • 指定する場合は、次の項目のfromの値より小さい必要があります。

例:

  • 項目1:0–10 → 項目2:11–20
  • 項目1:0–空欄 → 項目2:10–空欄
  • 項目1:空欄–10 → 項目2:11–空欄

i.5. discount_groups(商品レベル)

商品レベルで、数量/金額の範囲ごとの割引設定を指定します。

  • variant_pricing == falseの場合は必須です。
  • variant_pricing == trueの場合は空のままにします。
  • 設定したapply_customer.typeに対応する割引オブジェクトの配列である必要があります。

構造:

{
"name": "all",
"type": "percent",
"value": "10"
}

+ name

使用できる値:

  • all(apply_customer.type == allの場合)
  • logged(apply_customer.type == loggedの場合)
  • non-logged(apply_customer.type == non-loggedの場合)

それ以外の値を指定した場合は顧客タグとして扱われ、apply_customer.tagsで定義されたタグのいずれかと一致している必要があります。

+ type

割引の種類を指定します。

使用できる値:

  • percent – パーセント割引
  • amount – 価格から差し引く固定金額
  • fixed-amount – 最終的な固定価格

+ value

  • 数値である必要があります
  • 0より大きい必要があります
  • type == percentの場合、valueは100未満である必要があります

i.6. variant_pricing

割引をバリエーションレベルで適用するかどうかを示します。

使用できる値:

  • true
  • false

i.7. variants

バリエーションレベルの割引設定を指定します。

  • variant_pricing == trueの場合は必須です
  • variant_pricing == falseの場合は空のままにします
  • バリエーション設定の配列である必要があります

構造:

{
"id": 46747346763943,
"duplicated": false,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
]
}

+ id(必須)

  • バリエーションIDです。

+ duplicate

バリエーションに複数の数量/金額の範囲があるかどうかを示します。

使用できる値:

  • true
  • false

ルール:

  • trueの場合:バリエーションに複数の範囲があります。
  • falseの場合:バリエーションの範囲は1つのみです。

+ from_qty / from_amount

開始数量または開始金額です。

ルール:

  • 最初の項目は空にできます(デフォルトは1)。
  • 2番目以降の項目はすべて必須です。

+ to_qty / to_amount

終了数量または終了金額です。

ルール:

  • 空にできます(次の項目のfromから1を引いた値として自動計算されます)。
  • 指定する場合は、次の項目のfromの値より小さい必要があります。

例:

  • 項目1:0–10 → 項目2:11–20
  • 項目1:0–空欄 → 項目2:10–空欄
  • 項目1:空欄–10 → 項目2:11–空欄

+ discount_groups(バリエーションレベル)

バリエーションレベルで、数量/金額の範囲ごとの割引設定を指定します。

ルール:

  • apply_customer.typeが次の場合:
    • all
    • logged
    • non-logged
      → 配列には1つの項目のみを含める必要があります。
  • apply_customer.type == customer-tagsの場合
    → 配列には複数の項目(顧客タグごとに1つ)を含める必要があります。

name

使用できる値:

  • all
  • logged
  • non-logged

それ以外の値を指定した場合は顧客タグとして扱われ、apply_customer.tagsで定義されたタグと一致している必要があります。

type

使用できる値:

  • percent
  • amount
  • fixed-amount

value

  • 数値である必要があります
  • 0より大きい必要があります
  • type == percentの場合、valueは100未満である必要があります

ルールを適用するShopifyのマーケットを指定します。

構造:

"apply_market": {
"type": "all",
"handle": []
}

type

使用できる値:

  • all
  • specific-market

handle

  • type == specific-marketの場合のみ必須です
  • マーケットハンドルのカンマ区切りリスト
  • 例:["japan","us"]

使用できる値:

  • variant → 同じバリエーション
  • across_group → バリエーションを混在
  • within_each_group → 商品を混在

これらは、アプリで選択できるオプションに対応しています。

例:

"discount_method": "variant",

数量/金額の範囲と割引の値を指定します。

from_qty / from_amount

to_qty / to_amount

検証ルールは上記と同じです。

使用できる「type」の値:

  • percent
  • amount
  • fixed-amount

value:

  • 0より大きい必要があります
  • percentの場合 → 100未満である必要があります

構造:

"discount_groups": [
{
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"type": "percent",
"value": "10"
}
],

割引の種類と値に関するルールは、上記と同じです。


価格ルールの開始日時と終了日時を設定します。

構造:

"active_date": {
"types": ["start_date", "end_date"],
"start_at": "2026-01-15 10:00:00",
"end_at": "2026-01-15 10:00:00"
}

types

  • 任意
  • 使用できる値:start_date、end_date
  • 一方または両方を、カンマ区切りで指定できます
  • 例:["start_date","end_date"]

start_at

  • typesにstart_dateが含まれる場合は必須です
  • 形式:YYYY-MM-DD HH:MM:SS

end_at

  • typesにend_dateが含まれる場合は必須です
  • 形式:YYYY-MM-DD HH:MM:SS

401 – Unauthorized(認証エラー)

考えられる原因:

  • ストアURLが指定されていない
  • APIキーが指定されていない
  • ストアURLが無効
  • APIキーが無効
  • APIキーがストアと一致しない

403 – This action is unauthorized(この操作は許可されていません)

  • APIキーにUpdate権限がない
  • 各APIキーには、View、Create、Update、Deleteの権限を設定できる
  • このAPIにはUpdate権限が必要
  • 指定されたIDが存在しない場合にも返される

429 – Too Many Requests(リクエストが多すぎます)

レート制限を超過した場合:

  • 最大5分あたり1リクエスト
  • 最大1日あたり50リクエスト

200 – API Success(成功)

  • 数量割引価格レコードが正常に更新される
  • レスポンスはJSON形式で返される

レスポンスJSONのサンプル:

{
"id": 1,
"title": "New Volume Pricing",
"status": true,
"type": "quantity",
"apply_customer": {
"type": "all",
"tags": []
},
"exclude_customer": {
"type": "none",
"tags": []
},
"apply_product": {
"type": "all",
"product_ids": [],
"product_tags": [],
"collection_ids": [],
"apply_for_variants": false
},
"exclude_product": {
"type": "none",
"product_ids": [],
"collection_ids": []
},
"discount_for_variants": [
{
"id": 8516448190631,
"duplicated": false,
"variant_pricing": true,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
],
"variants": [
{
"id": 46747346763943,
"duplicated": false,
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
]
}
]
}
],
"apply_market": {
"type": "all",
"handle": []
},
"discount_method": "variant",
"discount_groups": [
{
"from_qty": "0",
"from_amount": "0",
"to_qty": "10",
"to_amount": "0",
"type": "percent",
"value": "10"
}
],
"active_date": {
"types": [],
"start_at": "",
"end_at": ""
},
"created_at": "2026-01-15T10:00:00",
"updated_at": "2026-01-15T10:00:00"
}

このページは役に立ちましたか?