メインコンテンツへスキップ

PrestaShop プラグイン

Omiseを使用してPrestaShopストアで支払いを受け付けます。PrestaShop Marketplaceからの簡単なインストールで、すべての主要決済方法に対応しています。

概要

  • PrestaShop 1.7.x サポート
  • Marketplace または手動インストール
  • すべての Omise 決済方法
  • 複数通貨サポート
  • 自動払い戻し
  • モバイル最適化

インストール

PrestaShop Marketplace から

  1. PrestaShop 管理画面にログイン
  2. モジュールモジュール マネージャーに移動

PrestaShop 管理画面モジュール ナビゲーション

  1. 「Omise」を検索

検索結果に Omise を表示

  1. インストールをクリック
  2. 設定をクリック

Omise モジュール用設定ボタン

手動インストール

# GitHub からダウンロード
wget https://github.com/omise/omise-prestashop/releases/latest/download/omise.zip

# PrestaShop 管理画面経由でアップロード
モジュール → モジュール マネージャー → モジュールをアップロード → omise.zip を選択
  1. モジュールモジュールとサービスに移動

モジュールとサービスへのナビゲーション

  1. モジュールをアップロードボタンをクリック

モジュール アップロード ボタンの位置

  1. ダウンロードされた ZIP ファイルを選択

アップロード用ファイル選択ダイアログ

設定

API キー セットアップ

モジュール設定:
- 環境: サンドボックス(テスト)/ 本番(ライブ)
- 公開キー: pkey_test_xxxxx
- 秘密キー: skey_test_xxxxx

モジュール設定ページ

決済方法を有効化

クレジット カード:

✓ カード決済を有効化
✓ 3D Secure: 有効化
✓ カードを保存: オプション

その他の方法:

✓ インターネット バンキング
✓ TrueMoney Wallet
✓ Rabbit LINE Pay
✓ ShopeePay
✓ 分割払い(最小: 3,000 タイバーツ)

Webhook 設定

Webhook URL:
https://yourstore.com/module/omise/webhook

Omise ダッシュボードで設定:
設定 → Webhooks → webhook URL を追加

テスト

テスト カード:
カード: 4242 4242 4242 4242
有効期限: 12/28
CVV: 123

テスト フロー:
1. 商品をカートに追加
2. チェックアウトに進む
3. Omise 決済を選択
4. テスト支払いを完了
5. 注文ステータスを確認

注文管理

支払い詳細を表示:

  • 注文 → 注文を選択 → 支払いタブ
  • Omise チャージ ID が表示される
  • トランザクション詳細が表示される

払い戻しを処理:

  1. 注文を開く
  2. 「部分払い戻し」または「標準払い戻し」をクリック
  3. 金額を入力
  4. 「Omise 経由で払い戻し」を選択
  5. 払い戻しを確認

高度な設定

マルチストア セットアップ

複数の PrestaShop ストアを実行している場合:

  1. マルチストア モードを有効化

    詳細パラメーター → マルチストア → マルチストアを有効化
  2. ストアごとに設定

    - 上部ドロップダウンからストアを選択
    - ストアごとに API キーを設定
    - 地域ごとに異なる決済方法を有効化
  3. 共有設定

    - すべてのストアに同じ webhook URL を使用
    - webhook ハンドラーが正しいストアに自動的にルーティング

Webhook 設定(詳細)

ステップ1: Webhook URL を取得

webhook URL フォーマット:
https://yourstore.com/module/omise/webhook

マルチストア:
https://yourstore.com/en/module/omise/webhook(英語ストア)
https://yourstore.com/th/module/omise/webhook(タイ語ストア)

ステップ2: Omise ダッシュボードで設定

1. dashboard.omise.co にログイン
2. 設定 → Webhooks に移動
3. 「Webhook エンドポイントを追加」をクリック
4. webhook URL を入力
5. イベントを選択:
✓ charge.complete
✓ charge.update
✓ refund.create
✓ transfer.update
6. エンドポイントを保存

ステップ3: Webhook を確認

1. PrestaShop でテスト支払いを実行
2. Omise ダッシュボード → Webhooks → Deliveries を確認
3. ステータスが「200 OK」であることを確認
4. 失敗した場合、PrestaShop エラー ログを確認

決済方法設定

クレジット カード設定

モジュール設定 → クレジット カード:

✓ クレジット カード決済を有効化: はい
✓ 3D Secure: 有効化(推奨)
✓ 自動キャプチャ: はい(即座に支払い)
✓ カードを保存: はい(既存顧客向け)
✓ 受け入れるカード ブランド:
- Visa
- Mastercard
- JCB
- American Express

分割払い設定

モジュール設定 → 分割払い:

✓ 分割払いを有効化: はい
✓ 最小金額: 3,000 タイバーツ
✓ 利用可能な期間:
- 3 ヶ月
- 4 ヶ月
- 6 ヶ月
- 10 ヶ月
✓ 商品ページに表示: はい
✓ 月額を表示: はい

デジタル ウォレット設定

モジュール設定 → デジタル ウォレット:

✓ TrueMoney Wallet: はい
✓ Rabbit LINE Pay: はい
✓ ShopeePay: はい
✓ Touch 'n Go(マレーシア): はい
✓ GrabPay: はい

カスタマイズ

決済方法の表示

表示順序を設定:

モジュール → モジュール マネージャー → Omise → 設定

決済方法の並び順:
1. クレジット カード(位置: 1)
2. TrueMoney Wallet(位置: 2)
3. 銀行振込(位置: 3)
4. 分割払い(位置: 4)

決済方法のタイトルをカスタマイズ:

// テーマの翻訳ファイルでオーバーライド
// themes/yourtheme/modules/omise/translations/en.php

<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{omise}prestashop>omise_credit_card'] = 'クレジット カードで支払う';
$_MODULE['<{omise}prestashop>omise_truemoney'] = 'TrueMoney Wallet で支払う';
$_MODULE['<{omise}prestashop>omise_installment'] = '分割払いで支払う';

カスタム支払いアイコン

カスタム アイコンをアップロード:
1. 移動先: modules/omise/views/img/
2. アイコン ファイルを置き換え:
- visa.png
- mastercard.png
- jcb.png
- truemoney.png
3. 推奨サイズ: 60x40px(PNG フォーマット)
4. アップロード後にキャッシュをクリア

カスタム CSS スタイリング

/* themes/yourtheme/assets/css/custom.css */

/* 支払いオプション コンテナ */
.omise-payment-option {
border: 2px solid #FF5722;
border-radius: 8px;
padding: 15px;
margin: 10px 0;
transition: all 0.3s;
}

.omise-payment-option:hover {
border-color: #E64A19;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* 支払い方法アイコン */
.omise-payment-icons {
display: flex;
gap: 10px;
margin-top: 10px;
}

.omise-payment-icons img {
height: 30px;
width: auto;
}

/* クレジット カード フォーム */
.omise-card-form {
background: #f5f5f5;
padding: 20px;
border-radius: 6px;
margin-top: 15px;
}

.omise-card-form input {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
margin-bottom: 10px;
}

/* 分割払い計算機 */
.omise-installment-info {
background: #E3F2FD;
padding: 15px;
border-radius: 6px;
margin-top: 10px;
}

.omise-installment-amount {
font-size: 18px;
font-weight: bold;
color: #1976D2;
}

カスタム フィールド

PrestaShop hooks を使用してカスタム データを請求に追加:

// modules/omise/override/controllers/front/payment.php

public function postProcess()
{
$cart = $this->context->cart;
$customer = new Customer($cart->id_customer);

// カスタム メタデータを追加
$metadata = array(
'store_name' => Configuration::get('PS_SHOP_NAME'),
'customer_id' => $customer->id,
'customer_email' => $customer->email,
'cart_id' => $cart->id,
'language' => $this->context->language->iso_code,
'currency' => $this->context->currency->iso_code
);

// メタデータが請求に含まれます
$charge = $this->createCharge($token, $amount, $metadata);
}

パフォーマンス最適化

OpCache を有効化

// php.ini 設定
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

支払いアイコン用 CDN

// modules/omise/omise.php
public function getIconsPath()
{
// 高速読み込み用に CDN を使用
return 'https://cdn.omise.co/assets/payment-methods/';
}

データベース インデックス

-- より高速な注文検索のためにインデックスを追加
ALTER TABLE `PREFIX_omise_charge`
ADD INDEX `idx_charge_id` (`charge_id`),
ADD INDEX `idx_order_id` (`order_id`),
ADD INDEX `idx_created_at` (`created_at`);

トラブルシューティング

モジュールが表示されない

問題: モジュール マネージャーに Omise モジュールが表示されない

解決方法:

# 1. ファイル権限を確認
chmod 755 modules/omise
chmod 644 modules/omise/*.php

# 2. キャッシュをクリア
rm -rf var/cache/*

# 3. モジュール リストを再生成
php bin/console prestashop:module:reset omise

# 4. 必要に応じて再インストール
php bin/console prestashop:module:uninstall omise
php bin/console prestashop:module:install omise

# 5. エラー ログを確認
tail -f var/logs/$(date +%Y%m%d)_*.log

支払いが失敗

問題: 支払いが正常に完了していない

診断ステップ:

  1. API キーを確認
// 接続をテスト
curl https://api.omise.co/account \
-u skey_test_YOUR_KEY:

// アカウント詳細を返す必要があります
  1. 環境設定を確認
モジュール設定:
- 環境: API キーと一致する必要があります
- サンドボックス = pkey_test_* / skey_test_*
- 本番 = pkey_live_* / skey_live_*
  1. 支払い方法ステータスを確認
ダッシュボード → 設定 → 決済方法
- 決済方法が有効化されていることを確認
- 地域/通貨の制限が適用されているかを確認
  1. ログを確認
# PrestaShop エラー ログ
tail -f var/logs/$(date +%Y%m%d)_*.log | grep omise

# PHP エラー ログ
tail -f /var/log/php_errors.log

# Apache/Nginx エラー ログ
tail -f /var/log/apache2/error.log # または
tail -f /var/log/nginx/error.log

Webhook の問題

問題: Webhook が受信されていない

解決方法:

  1. Webhook URL がアクセス可能であることを確認
# webhook エンドポイントをテスト
curl -X POST https://yourstore.com/module/omise/webhook \
-H "Content-Type: application/json" \
-d '{"test": true}'

# 200 OK を返す必要があります
  1. ファイアウォール/WAF ルールを確認
- Omise webhook IP をホワイトリストに追加
- /module/omise/webhook のレート制限を無効化
- webhook URL への POST リクエストを許可
  1. SSL サーティフィケートを確認
# SSL 設定を確認
openssl s_client -connect yourstore.com:443

# サーティフィケートが有効であることを確認(自己署でない)
  1. Webhook ログを確認
Omise ダッシュボード → Webhooks → Deliveries
- 配信ステータスを確認
- リクエスト/レスポンスを表示
- 4xx/5xx エラーを確認

3D Secure 認証が失敗

問題: 3DS 認証ページが表示されないか失敗している

解決方法:

  1. return_uri を確認
// 公開的にアクセス可能な HTTPS URL である必要があります
$return_uri = 'https://yourstore.com/module/omise/return';
  1. ブラウザ コンソールを確認
F12 → コンソール タブ
- JavaScript エラーを検索
- CSP 違反を確認
- iframe 読み込みを確認
  1. シークレット モードでテスト
- ブラウザ拡張機能を無効化
- Cookies/キャッシュをクリア
- 別のブラウザでテスト

払い戻しが処理されない

問題: PrestaShop で開始された払い戻しが Omise に反映されない

解決方法:

  1. 払い戻しサポートを確認
決済方法の払い戻しサポートを確認:
- クレジット カード: はい
- TrueMoney: はい(全額のみ、30日以内)
- モバイル バンキング: いいえ
- PromptPay: いいえ
  1. 払い戻し API 権限を確認
# 払い戻し API アクセスをテスト
curl https://api.omise.co/charges/chrg_test_123/refunds \
-u skey_test_YOUR_KEY: \
-d "amount=10000"
  1. 払い戻し ログを確認
// 払い戻し処理を確認
var/logs/omise_refund_*.log

通貨変換の問題

問題: 金額が正しくないか通貨が一致していない

解決方法:

// 通貨設定を確認
設定 → 通貨 → 通貨を有効化/無効化

// Omise 通貨サポートを確認
サポート: THBUSDEURGBPSGDJPYMYR

// カート通貨が支払い通貨と一致することを確認
$cart_currency = new Currency($this->context->cart->id_currency);
$charge_currency = strtolower($cart_currency->iso_code);

注文ステータスが更新されない

問題: 支払い成功後、注文が「支払い保留」で止まっている

解決方法:

  1. Webhook が機能していることを確認
# 最近の webhook 配信を確認
ダッシュボード → Webhooks → Deliveries(過去 24 時間)
  1. 注文を手動更新
-- カート ID で注文を検索
SELECT * FROM PREFIX_orders WHERE id_cart = CART_ID;

-- 注文ステータスを更新
UPDATE PREFIX_orders
SET current_state = PAID_STATUS_ID
WHERE id_order = ORDER_ID;
  1. 注文ステータス マッピングを確認
// modules/omise/config/statuses.php
return array(
'successful' => _PS_OS_PAYMENT,
'pending' => _PS_OS_PREPARATION,
'failed' => _PS_OS_ERROR
);

よくある質問

Q: サポート対象の PrestaShop バージョンはどれですか? A: PrestaShop 1.7.x が完全にサポートされています。1.6.x の場合、レガシー バージョンを使用してください。

Q: 複数の通貨を使用できますか? A: はい、PrestaShop 設定で通貨を設定します。Omise は THB、USD、EUR、GBP、SGD、JPY をサポートしています。

Q: 払い戻しは自動ですか? A: はい、PrestaShop 管理画面から処理された払い戻しは自動的に Omise に送信されます。

Q: 顧客はカードを保存できますか? A: はい、モジュール設定で保存済みカードを有効化して、既存顧客向けに有効化できます。

Q: PrestaShop Cloud で機能しますか? A: はい、モジュールは PrestaShop Cloud ホスティングで機能します。

Q: モジュールはどのように更新しますか? A: 最新バージョンをダウンロードして再アップロードするか、利用可能な場合はモジュール マネージャー経由で更新してください。

次のステップ

リソース


お困りですか? support@omise.co に連絡してください