API CHANGE

Customer Account API
lastIncompleteCheckout完全廃止

2026-10で古いCheckoutスキーマが消える―今すぐクエリを見直す

BEFORE 〜2026-07CustomerlastIncompleteCheckoutCheckout { id, ... }appliedGiftCardsCheckoutLineItem ...常にnullを返す2026-10AFTER 2026-10〜Customerorders購入済み履歴はここへStorefront APIカート/チェックアウトはここへlastIncompleteCheckoutフィールドは完全に存在しない代替フィールドなし (API設計変更)

Customer Account API バージョン 2026-10 より、すでに非推奨化されていた Customer.lastIncompleteCheckout フィールドおよび関連する Checkout 型サブツリーが完全に削除されます。このフィールドはこれまで常に null を返していましたが、スキーマ上は存在していました。カートや未完了チェックアウトの状態を扱うには Storefront API のカートフロー へ、購入済み履歴には Customer.orders へ移行が必要です。

WHAT'S REMOVED

01削除される型・フィールド一覧

REMOVED SCHEMA ELEMENTSFIELDCustomer.lastIncompleteCheckoutこのフィールドが起点常にnullを返していた (既に非推奨)TYPES (サブツリー全体)CheckoutCheckout.appliedGiftCardsAppliedGiftCardAvailableShippingRatesCheckoutLineItemCheckoutLineItemConnectionCheckoutLineItemEdgeShippingRate2026-10 にアップグレードする前にクエリの更新が必要MIGRATION PATH

02移行先の考え方 (Before / After)

BEFOREAFTERCustomer Account API (旧)query { customer { lastIncompleteCheckout { id appliedGiftCards { id } } ← 常にnull }}⚠ 2026-10以降このクエリはスキーマエラーになるフィールド自体が存在しない移行先 (2パターン)① 購入履歴が目的ならCustomer Account APIcustomer { orders { ... }}② カート状態が目的ならStorefront APImutation cartCreate { ... }query cart(id: $cartId) { ... }カートフローは Storefront API で管理USE CASES

03業務に活かせる具体ユースケース

課題
会員ページで「前回の未完了カート」を表示する機能が lastIncompleteCheckout で実装されており、2026-10 へのアップグレード後に画面がクラッシュする
打ち手
Storefront API の cartCreate / cart クエリを使ってカートIDをセッションまたはローカルストレージで管理し、会員ページから参照する設計に切り替える
効果
常に最新のカート状態をリアルタイムで取得でき、ギフトカード・割引コードの適用状況も正確に把握できる
技術メモ
Storefront API のカートはバイヤーIDと紐付けることで会員とのセッション連携が可能。Customer Account API と Storefront API は別エンドポイントのため、アクセストークン管理を分けて設計する
課題
マーケティングツールが「チェックアウト放棄」を検出するため lastIncompleteCheckout を定期的にポーリングしていたが、このフィールドは常に null を返しており実質機能していなかった
打ち手
Storefront API の cart クエリと Webhook (carts/update) を組み合わせてカート放棄を検出する仕組みに再設計する
効果
常に null だったデータを使っていたポーリング処理を廃止でき、APIコールの無駄を削減。より正確な放棄検知ロジックが実現できる
技術メモ
carts/update Webhook は Storefront API でカートが更新されると発火する。ただし Storefront API と Admin API のカートは別物であるため、Shopify公式ドキュメントでスコープを確認のこと
課題
カスタム会員アカウントページで「過去の注文一覧」と「未完了注文」を同一クエリで取得しようとして lastIncompleteCheckoutorders を併用している実装が存在する
打ち手
「過去の注文一覧」は引き続き Customer Account API の customer { orders { ... } } を使用する。「進行中のカート」は Storefront API に完全に分離する
効果
責務が明確に分離されることでコードの可読性が向上し、将来的な API バージョンアップグレードへの対応コストが下がる
技術メモ
元記事に「Customer Account API に代替フィールドなし」と明記されているため、Customer Account API 側でのカート取得は今後も不可。設計変更は必須
DEV NOTES

04技術者目線のポイント

🗓 対象バージョン

Customer Account API 2026-10 以降で削除。それ以前のバージョンは引き続き動作するが、フィールドは null を返すのみで実質的な意味はない。

⚠ 代替フィールドは存在しない

元記事に「There is no replacement field in the Customer Account API」と明記。Customer Account API 側でチェックアウト/カート情報を取得する方法は提供されない。

🔍 影響チェック方法

コードベースで lastIncompleteCheckoutCheckoutLineItemappliedGiftCardsAppliedGiftCardAvailableShippingRatesShippingRateCheckoutLineItemConnectionCheckoutLineItemEdge を全文検索して洗い出す。

🛒 カートは Storefront API へ

買い物客のリアルタイムなカート・チェックアウト状態は Storefront API のカートフローで管理する。バイヤートークンと紐付けることで会員ごとのカートセッションを維持できる。

📋 購入履歴は Customer.orders

完了済みの注文一覧は Customer Account API の Customer.orders フィールドで取得可能。このフィールドは今回の変更の影響を受けない。

🔄 移行タイミング

2026-10 へのアップグレード前にクエリ修正を完了させる必要がある。アップグレード後にこれらのフィールドを含むクエリを実行するとスキーマエラーになる。

「Customer Account API 2026-10 へのアップグレード前に lastIncompleteCheckout 関連クエリをすべて削除し、カートは Storefront API・購入履歴は Customer.orders へ移行することで、スキーマ破壊を回避しながら将来性の高い設計に刷新できます。」

Source: https://shopify.dev/changelog/customer-account-api-last-incomplete-checkout-and-checkout-types-removed | 公開日: 2026年7月6日