SKUはラベルではない。それはあなたの全オペレーションのプライマリキーである — そしてほとんどの店舗は、一度に1つの製品発売ごとに、偶然にそれらを設計している。
3PLのオンボーディングコールは、マスターSKUファイルを求められるまで順調に進んでいます。カタログをエクスポートし、CSVを開き、見知らぬ人が見るであろう方法でそれを見ます:8oz-amber、AMBER CANDLE 8、candle_amber_8oz_new、00123、そしてAmber 8oz (2024 restock)。5つの命名時代、1つの製品。あなたはどれがどれかを知っています。地球上の他の誰も知りません — 結果として、あなたが接続しようとしているソフトウェアの半分でさえも。
そこで「SKU命名ベストプラクティス」を検索すると、同じアドバイスがページに表示されます:一貫性を保つ、説明的にする、短くする。すべて真実ですが、どれも役に立ちません。なぜなら、それらの投稿がスキップする質問こそが、本当の質問だからです。SKUは何かを意味すべきですか? 何が独自のSKUに値しますか? いつ実際のバーコードが必要になりますか? そして誰も答えない質問:3年間の販売履歴が古い名前に添付されている場合、悪いスキームをどのように修正しますか?
なぜSKUの衛生管理がハウスキーピングではなくインフラストラクチャなのか
ほとんどの店舗が従っている嘘はこれです:「SKUは単なる内部ラベルにすぎない — 任意のユニークな文字列でよく、後でいつでもクリーンアップできる。」
それは真実のように感じられます。なぜなら、1つのシステム内では、それは真実だからです。Shopifyは、あなたのSKUにスペースや絵文字が含まれていることを気にしません。問題は、2番目のシステムが関与した瞬間に発生します — そしてスケールでは、常にさらに多くのシステムがあります。あなたのプラットフォームは販売を記録します。あなたの倉庫または3PLはそれに基づいてピッキングします。あなたの在庫ソフトウェアはそれをカウントします。あなたの会計同期はそれを投稿します。それらのシステムはどれもデータベースを共有していません。それらを結びつける唯一のものは、SKU文字列であり、文字ごとに一致します。
それはSKUをあなたのオペレーションのプライマリキーにし、プライマリキーにはラベルにはないルールがあります:永遠にユニーク、永遠に安定、チェーン内のすべてのシステムで保存および照合可能。「後でクリーンアップする」は高価な部分です — プライマリキーのリネームは、それに参照されていたすべての結合を壊します。これはまさに、私たちが取り組むことになる移行の問題です。
SKU命名ベストプラクティス:生き残るスキームの設計
正直な哲学は2つあり、まとめ記事は通常1つしかないふりをします。
構造化SKUは、カテゴリ、製品ライン、属性、サイズといった意味をエンコードします。ピッキングリストを読む人間は、CDL-AMB-08が8オンスのアンバーキャンドルであることを一目で確認でき、スキャナーなしで誤った選択を検出できます。その代償は脆さです。製品の再分類、ライン名の変更、属性コードの文字枯渇など、現実がエンコーディングからずれるたびに、名前変更の必要性を感じるでしょう。名前変更は最大の罪です。
連番SKUは何もエンコードしません:10041、10042、10043。何も主張しないため、嘘をつくことも、ずれることも、名前変更を必要とすることもありません。代償は人間が読めないことであり、精度は完全にスキャンに依存します。倉庫レベルのオペレーションは連番を問題なく実行しますが、キッチンテーブルで注文を梱包する創業者は間違いを犯すでしょう。
実践的なルール:決して変更されないものだけをエンコードし、それ以外はルックアップしてください。カテゴリと1つか2つのID属性は通常安全です。サプライヤー、倉庫の場所、価格帯、季節、年 — これらは決して安全ではありません。これらは変動する事実であり、SKUに「焼き込まれる」のではなく、SKUに「キー付けされた」製品フィールドに属するものです。サプライヤーをエンコードするSKUは、サプライヤーを変更した日に嘘となり、誤解を招くコードか壊滅的な名前変更かの選択を迫られることになります。
どちらの哲学を選択するにしても、フォーマットのルールは交渉の余地がありません。なぜなら、それらはCSVインポート、API呼び出し、バーコードスキャンのすべてを生き残るものに関するものだからです:
- 大文字、数字、ハイフンのみ。それ以外は不可。スペースは一貫なくトリミングされ、スラッシュ、アンパサンド、引用符は最終的にどこかでURLやCSVの解析を壊します。
- ケース(大文字・小文字)で2つのSKUを区別することに頼らないでください。一部のシステムはケースセンシティブですが、そうでないシステムもあります —
abc-1とABC-1は、あるツールでは2つの製品ですが、別のツールでは衝突します。 - 先頭のゼロは使用しないでください。スプレッドシートはそれらをサイレントに削除し、SKUパイプラインの半分はどこかの時点でスプレッドシートを経由します。
- 文字O(ゼロと混同するため)を禁止し、I(イチと混同するため)も検討してください。誰かがいつか手でSKUを入力する可能性があり、O/0の混同はファントム製品を生み出します。
- 20文字未満にしてください。フィールドの制限はシステムによって異なり、切り捨てられたSKUはサイレントな名前変更です。
- 廃止されたSKUを別の製品に再利用しないでください。履歴レポートは、その文字列で永遠に結合されます。
これがどのように適用されるかを示します。架空の家庭用品ブランド、Alder & Ashの、変更前と変更後です:
| 製品 | 変更前(5つの推測の時代) | 変更後(CATEGORY-LINE-SIZE) |
|---|---|---|
| アンバーキャンドル、8オンス | 8oz-amber |
CDL-AMB-08 |
| アンバーキャンドル、16オンス | AMBER CANDLE 16 |
CDL-AMB-16 |
| シダーキャンドル、8オンス | candle_cedar_8oz_new |
CDL-CDR-08 |
| マッチ、標準箱 | 00123 |
MCH-STD-01 |
| ウィックトリマー | Trimmer (2024) |
TLS-TRM-01 |
3つのセグメント、すべて大文字、変動するものはエンコードせず。このスキームは賢くありません。それがポイントです — 賢いスキームは18ヶ月後に名前変更が必要になるものです。
バリアント爆発問題
ストレスを最も受けるのは、サイズと色の組み合わせです。Tシャツ1種類でサイズ6種類、色8種類だとSKUは48個になりますが、10種類だと480個になります。ここで、店舗はカタログを肥大化させるか、分割しすぎるかのどちらかになり、どちらも損失につながります。
それを解決するルール:バリアントが個別にカウント、ピッキング、購入、または価格設定される場合は、独自のSKUを持つべきです。 大きな青いTシャツと小さな黒いTシャツは、異なる棚にある異なる物理ユニットであり、SKUは別々で議論の余地はありません。しかし、ギフト包装、刻印テキスト、保証の追加などはどうでしょうか?それらは注文ラインのオプションであり、在庫ユニットではありません。それらにSKUを割り当てると、下流のすべてのカウントが汚染されます。
2つの帰結があります。実際に在庫していないバリアントのSKUを作成しないでください。理論上の色は、すべての同期とマッピングジョブを遅くするカタログの肥大化です。そしてバンドル:1つのユニットとして事前に組み立てられ、ピッキングされるキットは実際のSKUですが、仮想バンドルは代わりにコンポーネントSKUを減らすべきです。在庫ツールがその区別をうまく処理できるかどうかは、IMSで重要な評価基準の1つです。
バーコードはSKUではない
これらは常に混同されがちですが、スケールアップするにつれてその違いは重要になります。
あなたのSKUは内部的なものです。あなたがそれを発明し、あなたがそれを所有し、それは無料であり、あなたのビジネス内部でのみ意味を持ちます。バーコード—UPCまたはEAN(どちらもGTINファミリーのメンバー)—は、GS1システムを通じて発行される製品のグローバル識別子であり、誰がそのアイテムを販売しても同じ意味を持ちます。
登録済みのコードが実際に必要なのはいつでしょうか?3つのドアがあり、厳格さの順に並んでいます。マーケットプレイス:主要なマーケットプレイスでは、通常、製品をリストするためにGTINが必要です(プライベートラベル商品にはブランド登録と免除のパスがあります)。また、GS1自身の記録に対してコードを検証する方向に進んでいます。そのため、サードパーティの再販業者からの安価なUPCブロックは、後で検証に失敗する可能性がある偽の経済性です。小売:チェーンバイヤーがレジであなたの製品をスキャンする場合、登録済みのコードは必須です。3PL:ほとんどすべてが各ユニットにスキャン可能なバーコードを必要としますが、小売やマーケットプレイスに販売していない場合は、独自のSKUのCode 128バーコードを喜んで受け入れるところが多く、費用はかかりません。
したがって、正直な順序は次のとおりです。まずSKUをクリーンにし、常に。倉庫がスキャンする必要がある場合はSKUベースのバーコード。マーケットプレイスまたは小売業者がドアを強制する場合は登録済みのGTIN。要件と料金は変更されます。購入する前に、現在のGS1要件と各チャネルのリスティングルールを確認してください。
履歴を壊さずにSKUをリネームする
さて、難しい問題です。カタログを見直し、クリーンなスキームに移行したいと考えています。問題は、実行しているすべてのシステムが古い文字列で結合されていることです。売上速度履歴、再注文ポイント、倉庫の棚割り当て、会計マッピング—インプレースで名前を変更すると、それらの結合はすべてサイレントに壊れます。さらに悪いことに、システムは名前の変更が何であるかについてさえ意見が異なります。一部のシステムではSKUフィールドを編集して製品の履歴を保持できますが、他のシステムでは変更されたSKUを履歴のないまったく新しいアイテムとして扱います。何かを変更する前に、各システムの動作を把握してください。
継続性を維持する移行パターン:
- まずクロスウォークテーブルを構築します — 旧SKU、新SKU、日付、製品名。このファイルは永続的です。これにより、2024年のレポートと2027年のレポートで同じ物理製品を説明できます。
- クリーンな境界で切り替えます — 棚卸しの直後、月末など。棚ラベルとシステムレコードは同時に切り替える必要があり、棚卸しはその両方を信頼できる唯一の時点です。
- ウィンドウをすべてのシステムで同時に調整します:プラットフォーム、在庫ツール、3PL(リードタイムが必要で、在庫の再ラベリングに料金がかかる場合があります)、および会計同期の製品マッピング。移行途中の週 — 新しいSKUが販売され、倉庫が古いSKUをピッキングしている状態 — は、どちらの状態よりも悪いです。
- システムがサポートしている場合はエイリアスを使用します。これにより、移行中に古いSKUが新しいSKUに解決され、エラーが発生しなくなります。
- 古いSKUは廃止します。削除したり再利用したりしないでください。それらはあなたの履歴を保持しています。カタログが大きい場合は、カテゴリごとに段階的に移行します — グローバルな間違いよりも、限定的な間違いの方が良いです。
1つのSKU、5つのシステム — 書籍を含む
上記のすべてをテストします:文字列CDL-AMB-08は、ShopifyまたはWooCommerce、3PLの倉庫システム、在庫ツール、会計ファイルで同じ物理的なキャンドルを意味する必要があります。それらの間のすべての統合は、文字通り一致します。一致が失敗した場合、何も通知されません — 注文は同期され、ピッキングは行われます。それは単に間違って行われるだけで、棚卸しの時点または月末に判明します。
会計帳簿でこれが財務的に具体化されるため、この投稿で提供する必要があるのはこの1つの橋渡し段落です。製品ごとの会計 — 集計された収益だけでなく、SKUごとの利益を知ること — は、各SKUがQuickBooksの特定のアイテムにマッピングされている場合にのみ機能します。そのSKUレベルの製品マッピングは、LedgerPortのような同期ツールが各製品の収益を正しい場所にルーティングする方法であり、その自動マッピング機能は、カタログをSKUまたは製品名でQuickBooksアイテムに一致させます — つまり、クリーンなスキームは一度でマッピングされますが、5つの時代のカタログは手動マッチングとフォールバックの集計を意味します。ツールはあなたの衛生状態を継承します。それを作成することはできません。そのマッピングが可能にするもの — 実際の製品レベルのコストと利益の可視性 — は、QuickBooksのShopifyセラー向けのCOGSガイドで説明されています。
地味な成果
命名規則のために始めたのに、データベーススキーマ — SKU作業の実際の内容 — を設計することになりました。その成果は設計上見えません:説明を必要としないマスターファイル、数ヶ月ではなく数日で完了する在庫移行、各行が1つの実際の意味を持つ製品利益レポート。
Alder & Ashの移行前後のテーブルは、設計に午後、移行に1ヶ月の月末を要しました — そして、今後ブランドが追加するすべてのシステムは、クリーンなバージョンを継承します。それがトレードオフです:今、1回の意図的な午後、将来のすべての統合に対する複利税。
同じプライマリキーは、最終的にはカウントだけでなくドルも運び、ドル側には独自の衛生規則があります。その半分に備える準備ができたら、電子商取引会計の完全ガイドから始めてください。
