バージョン選択

フォーラム

メニュー

オンライン状況

71 人のユーザが現在オンラインです。 (65 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 71
もっと...

サイト内検索

質問 > フロント機能 > 特定の商品を購入後、外部システムにPOST送信したい。

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
tosi528
投稿日時: 2023/8/21 17:07
対応状況: −−−
半人前
登録日: 2019/11/21
居住地:
投稿: 18
特定の商品を購入後、外部システムにPOST送信したい。
EC-CUBE:4.2.1
サーバーOS:Linux sv2234.xserver.jp 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64
DBサーバー:MySQL 5.7.16
WEBサーバー:Apache
PHP:7.4.33
============================

よろしくお願いいたします。


特定の商品「商品IDが3の商品」の決済が終わった時点で、外部システムの「https://example.com/xxxxxx」に名前とメルアドをPOST送信したいと考えています。

現在、下記の方法でテストしましたが、上手くいきません。


具体的には、、

商品購入/ご注文完了ページ
(eccube/app/template/default/Shopping/complete.twig)

に、このコード


<!-- ここに追加のJavaScriptのリンクやコードを書く -->
{% block javascripts %}
    <script src="{{ asset('assets/js/custom.js') }}"></script>
{% endblock %}


を下記のように入れて、


{% extends 'default_frame.twig' %}

{% set body_class = 'cart_page' %}

~既存のコード

<div class="ec-off4Grid">
        {% if hasNextCart %}
            <div class="ec-off4Grid__cell"><a class="ec-blockBtn--primary" href="{{ url('cart') }}">{{ '購入を続ける'|trans }}</a></div>
        {% else %}
            <div class="ec-off4Grid__cell"><a class="ec-blockBtn--cancel" href="{{ url('homepage') }}">{{ 'トップページへ'|trans }}</a></div>
        {% endif %}
    </div>
</div>
{% endblock %}
{% block javascripts %}
    <!-- ここに追加のJavaScriptのリンクやコードを書く -->
    <script src="{{ asset('assets/js/custom.js') }}"></script>
{% endblock %}


custom.jsファイルに、
(eccube/app/template/default/assets/js/custom.js)


// custom.js

var orderProductID = {{ order.product.id|default(0)|raw }};
var orderFirstName = '{{ order.customer.firstName|e('js') }}';
var orderLastName = '{{ order.customer.lastName|e('js') }}';
var orderEmail = '{{ order.customer.email|e('js') }}';

// 商品IDが3の場合のみPOST送信を行う
if (orderProductID === 3) {
    // POST送信のJavaScriptコード
    fetch('https://example.com/xxxxxx', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        body: 'data[User][name1]=' + encodeURIComponent(orderFirstName) + '&data[User][name2]=' + encodeURIComponent(orderLastName) + '&data[User][mail]=' + encodeURIComponent(orderEmail)
    })
    .then(response => {
        // 送信が成功した場合の処理
    })
    .catch(error => {
        // エラーが発生した場合の処理
    });
}


とコードを入れているのですが、外部システムの「https://example.com/xxxxxx」で確認しても、

名前とメールが受信できておらず、POST送信されていないように思います。

そこで、どこに問題があるのか、
ご教授いただける方がいらっしゃいましたら、大変、ありがたいです。

よろしくお願いいたします。

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » 特定の商品を購入後、外部システムにPOST送信したい。 tosi528 2023/8/21 17:07
     Re: 特定の商品を購入後、外部システムにPOST送信したい。 mcontact 2023/8/22 9:24
       Re: 特定の商品を購入後、外部システムにPOST送信したい。 tosi528 2023/8/22 18:17
         Re: 特定の商品を購入後、外部システムにPOST送信したい。 mcontact 2023/8/25 13:28
           Re: 特定の商品を購入後、外部システムにPOST送信したい。 tosi528 2023/8/25 16:54

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,949名です
総投稿数は110,525件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1704
8
red
1571
9
mcontact
1400
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.