checkout-payments について
チェックアウトと決済フローを実装する開発者向けのスキルです。カートと住所の検証、注文作成、MercadoPago連携、決済Webhook、注文ステータスの処理を扱います。
主な機能
- 01カートデータの検証
- 02配送先住所の検証
- 03注文の作成と管理
- 04MercadoPago決済連携
- 05決済Webhookとステータス更新
活用シーン
- 01チェックアウト時の注文作成フロー実装
- 02MercadoPagoウォレット決済の導入
- 03Webhookに基づく注文ステータス更新
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ santiagoxor/ pintureria-digital --skill checkout-paymentsインストール後、Claude Code で/checkout-paymentsを入力して読み込まれたか確認します。
詳細
チェックアウトと決済
クイックスタート
チェックアウトを実装する際は、次の手順に従います。
- 注文を作成する前にカートデータを検証します
- 配送先住所を検証します
- データベースに注文を作成します
- MercadoPago と連携します
- 決済 Webhook を処理します
- 注文ステータスを更新します
主なファイル
src/app/checkout/- チェックアウトページsrc/components/Checkout/- チェックアウトコンポーネントsrc/lib/integrations/mercadopago/- MercadoPago 連携src/lib/business/orders/- 注文ロジックsrc/hooks/useCheckout.ts- チェックアウトフック
よく使うパターン
注文を作成する
import { createOrder } from '@/lib/business/orders/order-service';
import { createPayment } from '@/lib/integrations/mercadopago';
export async function POST(request: NextRequest) {
const { items, shippingAddress, paymentMethod } = await request.json();
const order = await createOrder({
items,
shippingAddress,
status: 'pending_payment',
});
const payment = await createPayment({
transaction_amount: order.total,
description: `Orden #${order.id}`,
payer: {
email: order.customer_email,
},
});
await updateOrder(order.id, {
payment_id: payment.id,
payment_status: 'pending',
});
return NextResponse.json({ order, payment });
}
住所を検証する
import { validateAddress } from '@/lib/business/logistics/address-validation';
const validation = await validateAddress({
street: 'Av. Corrientes 1234',
city: 'Buenos Aires',
postalCode: 'C1043AAX',
country: 'AR',
});
if (!validation.isValid) {
return { errors: validation.errors };
}
MercadoPago ウォレット
import { initMercadoPago, Wallet } from '@mercadopago/sdk-react';
function CheckoutPayment() {
const [paymentData, setPaymentData] = useState(null);
useEffect(() => {
initMercadoPago('YOUR_PUBLIC_KEY');
}, []);
return (
<Wallet
initialization={{ preferenceId: paymentData?.preference_id }}
onSubmit={onSubmit}
/>
);
}
注文ステータス
pending_payment- 決済待ちpaid- 決済済みprocessing- 処理中shipped- 発送済みdelivered- 配達済みcancelled- キャンセル済みrefunded- 返金済み
コメント
Markdown 対応