mcpField
S
shipping-rate-calculator

shipping-rate-calculator

github.com/finsilabsその他6088 回インストール6 日前に更新
リポジトリ

shipping-rate-calculator について

Shopify、WooCommerce、BigCommerce、カスタムストアのチェックアウトに、リアルタイムの送料を設定するスキルです。複数配送業者の比較、料金ルール、容積重量、表示する配送 विकल्पを扱います。

主な機能

  1. 01配送業者のリアルタイム料金設定
  2. 02複数業者の料金比較
  3. 03地域別・段階別料金の設定
  4. 04容積重量の計算
  5. 05チェックアウト配送 विकल्पの管理

活用シーン

  1. 01チェックアウトで送料を即時表示
  2. 02重量や地域別の料金表作成
  3. 03大型軽量荷物の容積重量による料金算出
  4. 04国際配送地域と料金の設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill shipping-rate-calculator

インストール後、Claude Code で/shipping-rate-calculatorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

tile.json
evals/dimensional-weight-calculation/
criteria.json
task.md
evals/multi-carrier-rate-engine-with-caching-a/
criteria.json
task.md
evals/shipping-rules-and-zone-based-rate-table/
criteria.json
task.md

詳細

送料計算ツール

概要

チェックアウト時にUPS、FedEx、USPS、DHLのリアルタイムの送料を表示すると、顧客が希望するサービスを選べるようになり、送料を請求しすぎたり、請求不足になったりするのを防げます。主要なプラットフォームはすべて、標準機能またはアプリを通じて配送業者の計算による送料に対応しています。また、複数の配送業者の料金を比較するツールを使えば、最も安い選択肢を自動的に選ぶことで、送料を15~40%削減できます。

このスキルを使う場面

  • チェックアウトに配送業者のリアルタイムの送料見積もりを追加するとき
  • 複数の配送業者の送料を比較する機能を構築するとき
  • 送料無料の条件や段階制の定額送料を実装するとき
  • 配送業者の料金を正確に計算するために容積重量を算出する必要があるとき
  • 海外配送向けに配送ゾーンや送料テーブルを設定するとき

基本的な手順

ステップ 1:プラットフォームを特定し、適切な送料ツールを選ぶ
プラットフォームおすすめのツール理由
ShopifyShopify Shipping(組み込み機能)またはEasyship/ShipStationで料金を比較Shopify Shippingでは割引料金のUSPS、UPS、DHLを利用できます。Easyshipを使うと250以上の配送業者が追加され、料金を比較できます
WooCommerceWooCommerce Shipping(USPS/DHL)+カスタムルール向けのTable Rate ShippingWooCommerce Shippingでは基本的な配送業者の料金を扱えます。Table Rate Shippingを使うと、重量やゾーンに基づくルールテーブルを追加できます
BigCommerceShipperHQまたはEasyshipShipperHQは、容積重量の計算に対応したBigCommerce向けの最も強力な料金管理ツールです
カスタム/ヘッドレス配送業者のメタAPIとしてEasyPostまたはShippoどちらもUPS、FedEx、USPS、DHLを単一のAPI呼び出しに集約できるため、各配送業者を個別に直接連携するよりもはるかに簡単です
ステップ 2:配送業者の計算による送料を設定する
Shopify

Shopify Shipping(組み込み機能、無料、最初におすすめ):

  1. 設定 → 配送と配達 → 料金を管理に移動します
  2. 国内配送ゾーンで料金を追加をクリックします
  3. 配送業者またはアプリを使用して料金を計算を選択します
  4. USPS、UPS、DHL Expressから選択します
  5. 提供するサービスにチェックを入れます(例:USPS Priority Mail、USPS Ground Advantage、UPS Ground、UPS 2nd Day Air)
  6. 必要に応じて、配送業者の料金に上乗せまたは割引の割合を設定します(梱包資材費を補うのに便利です)
  7. 保存すると、注文の実際の重量と配送先に基づいて、チェックアウト時に料金が動的に表示されます

配送業者の選択肢を増やす場合(FedEx、地域の配送業者、海外配送):

  1. Shopify App StoreからEasyshipまたはShipStationをインストールします
  2. どちらもShopifyの「配送業者による送料計算」プロバイダーとして連携し、チェックアウトに標準で表示されます
  3. Easyshipの無料プランでは、チェックアウト時に50以上の配送業者のリアルタイム料金が表示されます
  4. 注:チェックアウト時の配送業者による送料計算には、ShopifyのAdvancedプラン(月額299ドル)以上が必要です。または、下位プランでは配送業者による送料計算のアドオン(月額20ドル)を購入してください

定額送料と送料無料のルールを設定する場合:

  • Shopify Shippingでは、配送業者による送料計算に加えて、またはその代わりに、定額料金のオプション(標準配送5.99ドル、速達配送14.99ドル)を作成できます
  • 送料無料の条件と組み合わせるには、最低注文金額の条件を指定して送料無料の料金を追加します(@free-shipping-thresholds スキルを参照)
WooCommerce

WooCommerce Shipping(USPS + DHL、無料):

  1. WooCommerce Shipping プラグイン(無料、WooCommerce 提供)をインストールします
  2. 地域ごとに WooCommerce → Settings → Shipping → Add shipping zone に移動します
  3. 各ゾーンで Add shipping method をクリックし、USPS または DHL Express を選択します
  4. チェックアウト時に表示するサービス(Priority Mail、Ground Advantage など)を設定します
  5. 正確な料金を計算できるよう、商品に梱包サイズと重量を追加します

WooCommerce Table Rate Shipping(重量区分やカスタムゾーンなどの複雑なルール向け):

  1. WooCommerce.com から WooCommerce Table Rate Shipping 拡張機能を購入します
  2. 料金表を作成します。例:0~1lb = $4.99、1~5lb = $7.99、5~20lb = $12.99
  3. 国内ゾーンと国際ゾーンで別々の料金表を作成します

ShipStation for WooCommerce(複数の配送業者の料金比較):

  1. ShipStation for WooCommerce プラグインをインストールします
  2. ShipStation は、契約済みの配送業者料金を使用するよう設定でき、WooCommerce の配送方法 API を通じてチェックアウト時に表示できます
  3. 注:ShipStation の料金は ShipStation のダッシュボードに表示され、顧客のチェックアウト画面に直接表示されない場合があります。WooCommerce のチェックアウト画面での料金表示機能については、ShipStation のドキュメントを確認してください
BigCommerce

ShipperHQ(BigCommerce で最も高機能な選択肢):

  1. BigCommerce App Marketplace から ShipperHQ をインストールします
  2. UPS、FedEx、USPS、DHL のアカウントを ShipperHQ に接続します(または ShipperHQ に組み込まれた配送業者アカウントを使用します)
  3. ShipperHQ は商品のサイズに基づいて容積重量を自動的に計算します
  4. 料金比較ルールを設定します:「最安の選択肢を表示」「すべての選択肢を表示」「配送所要日数ごとに最安の選択肢を表示」
  5. 追加料金ルールを設定します。例:取扱手数料として発送ごとに +$2、または FedEx の全料金から -15%割引

BigCommerce 組み込みのリアルタイム料金:

  1. Store Setup → Shipping → Add a shipping zone に移動します
  2. ゾーンでリアルタイムの配送業者方式(UPS、FedEx、Endicia 経由の USPS)を追加します
  3. 配送業者アカウントの認証情報を入力します
  4. BigCommerce はチェックアウト時に配送業者のリアルタイム料金を表示します
Custom / Headless

EasyPost または Shippo をメタ API として使用すると、すべての配送業者の料金を一度の呼び出しで取得できます。UPS、FedEx、USPS、DHL を個別に連携するよりもはるかに簡単です:

import EasyPost from '@easypost/api';
const easypost = new EasyPost(process.env.EASYPOST_API_KEY);

// Get multi-carrier rates for a shipment
async function getShippingRates(params: {
  originZip: string;
  destinationZip: string;
  destinationCountry: string;
  weightOz: number;
  lengthIn: number;
  widthIn: number;
  heightIn: number;
}): Promise<{ carrier: string; service: string; rateCents: number; estimatedDays: number }[]> {
  const shipment = await easypost.Shipment.create({
    from_address: {
      zip: params.originZip,
      country: 'US',
    },
    to_address: {
      zip: params.destinationZip,
      country: params.destinationCountry,
    },
    parcel: {
      length: params.lengthIn,
      width: params.widthIn,
      height: params.heightIn,
      weight: params.weightOz, // EasyPost uses oz
    },
  });

  return shipment.rates.map(rate => ({
    carrier: rate.carrier,
    service: `${rate.carrier} ${rate.service}`,
    rateCents: Math.round(parseFloat(rate.rate) * 100),
    estimatedDays: rate.est_delivery_days ?? 5,
  })).sort((a, b) => a.rateCents - b.rateCents);
}

// Apply store-level rules on top of carrier rates
function applyShippingRules(params: {
  carrierRates: { carrier: string; service: string; rateCents: number; estimatedDays: number }[];
  cartSubtotalCents: number;
  freeShippingThresholdCents: number;
}): { label: string; rateCents: number; estimatedDays: number }[] {
  const rates = [...params.carrierRates];

  // Add free shipping option if eligible
  if (params.cartSubtotalCents >= params.freeShippingThresholdCents) {
    rates.unshift({ carrier: 'store', service: 'Free Shipping', rateCents: 0, estimatedDays: 7 });
  }

  // Show max 3 options to avoid choice paralysis:
  // 1. Free (if available)
  // 2. Cheapest paid option
  // 3. Fastest guaranteed option
  const freeOption = rates.find(r => r.rateCents === 0);
  const cheapestPaid = rates.filter(r => r.rateCents > 0).sort((a, b) => a.rateCents - b.rateCents)[0];
  const fastest = rates.filter(r => r.estimatedDays <= 2).sort((a, b) => a.estimatedDays - b.estimatedDays)[0];

  return [freeOption, cheapestPaid, fastest]
    .filter(Boolean)
    .filter((r, i, arr) => arr.findIndex(x => x?.service === r?.service) === i) // deduplicate
    .map(r => ({ label: r!.service, rateCents: r!.rateCents, estimatedDays: r!.estimatedDays }));
}
Step 3: 容積重量の計算を設定する

配送業者は、実重量と容積重量のうち大きい方に基づいて料金を請求します。必ず設定してください。

Shopify:

  • 各商品バリエーションに梱包サイズを入力します(Products → [Product] → Shipping セクション)
  • Shopify は配送業者の料金を計算する際に、容積重量を自動的に計算します

WooCommerce:

  • WooCommerce の商品 Shipping タブに寸法(長さ、幅、高さ。インチまたは cm)を入力します
  • WooCommerce Shipping プラグインは、DHL と USPS の容積料金にこれらの寸法を使用します

ShipperHQ:

  • ShipperHQ には高度な容積重量の梱包シミュレーション機能があります。複数の商品が実際の箱のサイズにどのように収まるかを判定し、商品の重量を合計するのではなく、梱包後の箱に基づいて料金を計算します

容積重量の手動確認:

  • DIM 係数(米国内):1 ポンドあたり 139 立方インチ
  • 計算式:(L × W × H) / 139 = DIM 重量(ポンド)
  • DIM 重量が実重量を上回る場合、配送業者は DIM 重量に基づいて料金を請求します
Step 4: チェックアウト時に適切な数の選択肢を表示する

配送方法の選択肢が多すぎると、チェックアウトの途中離脱につながります。おすすめの方法は次のとおりです。

  1. 最安の選択肢 — 必ず表示します(多くの場合、「Ground」または「Standard」)
  2. 送料無料 — カートが条件を満たす場合は、ページ上部に目立つように表示します
  3. 最速の選択肢 — 配送の速さを重視する顧客向けに、1 日または 2 日の航空便を表示します

その中間の選択肢(3 日、5 日など)はすべて削除します。顧客に 6 つもの選択肢は必要ありません。

ShipperHQ では「Rate Filters」を使って、特定の配送サービスレベルだけを表示します。Easyship では「Checkout Rules」を設定して、表示する選択肢を制限します。

ベストプラクティス

  • 配送業者の API には必ずタイムアウトを設定する — 配送業者の料金 API は応答に 2~5 秒かかることがあります。時間内に応答がない場合は、キャッシュ済みの料金や一律料金を代替として表示します
  • 料金をリクエストする前に住所を検証する — 無効な住所は料金エラーやチェックアウトの失敗につながります。ほとんどの配送業者は住所検証 API を提供しています(Shippo には組み込みのものがあります)
  • 荷物の重量は切り上げる — 配送業者は重量を次の整数ポンド/kg に切り上げます。実際に顧客へ請求される料金より低い料金を表示しないよう、料金計算でも同様に切り上げます
  • 配送業者の料金を割り引くのではなく、別の選択肢として送料無料を提供する — 配送業者の掲載料金を変更するのではなく、「送料無料(5~7 日)」として表示します
  • カートの内容が変わったら料金を再計算する — 商品の追加、数量の変更、配送先住所の更新時に料金を再取得します

よくある落とし穴

問題解決策
有効な住所に対して配送業者の API が料金を返さない住所が私書箱かどうかを確認します(UPS/FedEx は私書箱に配達しません)。私書箱の場合は USPS に切り替えます
チェックアウト時の送料が、注文合計で請求された金額より低いカート時だけでなく、注文確認ロジックでも最終的な送料を再計算します。カートからチェックアウトまでの間に料金が変わることがあります
大きくて軽い商品に高額な料金が適用される容積重量計算を有効にします。ほとんどの配送業者は大型の箱に容積重量を適用します。ShipperHQ ではこれが自動的に処理されます
料金リクエストによってチェックアウトが遅くなる(3 秒以上)個別の配送業者 API ではなく、配送業者集約サービス(EasyPost/Shippo)を使用します。集約サービスのほうが応答時間に優れています

関連スキル

  • @free-shipping-thresholds
  • @international-shipping
  • @order-fulfillment-workflow
  • @checkout-flow-optimization
  • @dropshipping-integration

コメント