mcpField
C
checkout-payments

checkout-payments

github.com/santiagoxor開発69 回インストール
リポジトリ

checkout-payments について

チェックアウトと決済フローを実装する開発者向けのスキルです。カートと住所の検証、注文作成、MercadoPago連携、決済Webhook、注文ステータスの処理を扱います。

主な機能

  1. 01カートデータの検証
  2. 02配送先住所の検証
  3. 03注文の作成と管理
  4. 04MercadoPago決済連携
  5. 05決済Webhookとステータス更新

活用シーン

  1. 01チェックアウト時の注文作成フロー実装
  2. 02MercadoPagoウォレット決済の導入
  3. 03Webhookに基づく注文ステータス更新

インストール

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

$npx skills add https://github.com/santiagoxor/pintureria-digital --skill checkout-payments

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

詳細

チェックアウトと決済

クイックスタート

チェックアウトを実装する際は、次の手順に従います。

  1. 注文を作成する前にカートデータを検証します
  2. 配送先住所を検証します
  3. データベースに注文を作成します
  4. MercadoPago と連携します
  5. 決済 Webhook を処理します
  6. 注文ステータスを更新します

主なファイル

  • 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 - 返金済み

コメント