2026年6月25日

2026年6月25日

WooCommerceの商品バリエーション設定方法・色やサイズで在庫管理する

はじめに

「Tシャツを赤・青・白の3色、S・M・Lの3サイズで販売したい」——WooCommerceの可変商品(Variable Product)を使えば、色・サイズ・素材などの組み合わせごとに価格・在庫・SKUを個別管理できます。設定手順を順を追って解説します。

症状・原因

商品ページで「サイズを選んでください」「色を選んでください」というドロップダウンが表示されるのが可変商品です。シンプル商品のままでは1種類しか販売できないため、バリエーションが必要な場合は商品タイプを変更する必要があります。

解決手順

ステップ1:属性(Attribute)を作成する

まず「色」「サイズ」などの属性をグローバル登録します。

WooCommerce管理画面
→ 商品 → 属性
→ 「色」属性を追加(スラッグ: color)
→ 利用可能な値: 赤 | 青 | 白

WP-CLIで一括追加する場合:

wp wc product_attribute create \
  --name="色" \
  --slug="color" \
  --type="select" \
  --has_archives=true \
  --user=1

# 属性の値(ターム)を追加
wp wc product_attribute_term create 1 \
  --name="赤" --slug="red" --user=1
wp wc product_attribute_term create 1 \
  --name="青" --slug="blue" --user=1
wp wc product_attribute_term create 1 \
  --name="白" --slug="white" --user=1

ステップ2:商品タイプを「可変商品」に変更する

商品編集画面
→ 商品データ → 「可変商品」を選択
→ 属性タブ → 作成した「色」「サイズ」属性を追加
→ 「バリエーションに使用」にチェック
→ 保存

ステップ3:バリエーションを生成する

バリエーションタブ
→ 「すべての属性からバリエーションを生成」を選択
→ 「実行」ボタンをクリック
→ 全組み合わせ(例:赤S、赤M、赤L、青S…)が自動生成される

プログラムからバリエーションを操作する場合:

// バリエーションの価格・在庫を更新
$variation_id = 456; // バリエーションの投稿ID
$variation = new WC_Product_Variation( $variation_id );

$variation->set_regular_price( '3000' );
$variation->set_sale_price( '2500' );
$variation->set_stock_quantity( 10 );
$variation->set_manage_stock( true );
$variation->set_stock_status( 'instock' );
$variation->set_sku( 'TSHIRT-RED-M' );
$variation->save();

ステップ4:各バリエーションの価格・在庫を設定する

バリエーション一覧で各行を展開
→ 通常価格・セール価格を入力
→ 在庫管理:チェックON → 数量を入力
→ SKU: TSHIRT-RED-M のような形式で入力
→ 「変更を保存」

大量バリエーションの一括更新はCSVインポートが便利です:

# WooCommerce商品CSVエクスポート
wp wc product list --format=csv --fields=id,name,sku > products.csv

# 編集後にインポート
# 管理画面 → 商品 → インポート → products.csv

ステップ5:在庫切れバリエーションの表示設定

// 在庫切れバリエーションをグレーアウト(選択不可)で表示
add_filter( 'woocommerce_variation_is_purchasable', function( $purchasable, $variation ) {
    if ( ! $variation->is_in_stock() ) {
        return false; // カートに追加不可
    }
    return $purchasable;
}, 10, 2 );

// 在庫切れ時の表示文言を変更
add_filter( 'woocommerce_get_availability_text', function( $text, $product ) {
    if ( ! $product->is_in_stock() ) {
        return '現在在庫切れです';
    }
    return $text;
}, 10, 2 );

注意事項

  • バリエーション数が多い場合(50以上)はパフォーマンスに影響することがあります。WC_PRODUCT_VARIATION_THRESHOLDで制限を調整してください。
  • バリエーションを削除すると、そのバリエーションへの注文履歴が孤立することがあります。削除前にエクスポートを推奨します。
  • グローバル属性(商品→属性で作成)とカスタム属性(商品ごと)は区別して管理してください。

まとめ

WooCommerceの可変商品は「属性作成→商品タイプ変更→バリエーション生成→価格・在庫設定」の4ステップで設定できます。在庫切れ処理やSKU管理も組み合わせて、運用しやすいショップを構築してください。関連記事:WooCommerceの在庫管理を最適化する方法WooCommerceの送料設定を正しく行う方法

お気軽にご相談ください

お見積りへ お問い合わせへ