バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 特定の商品を購入後、外部システムに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送信されていないように思います。

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

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

mcontact
投稿日時: 2023/8/22 9:24
対応状況: −−−
登録日: 2022/1/22
居住地:
投稿: 1195
Re: 特定の商品を購入後、外部システムにPOST送信したい。
jsにて、処理するのであればブラウザのデベロッパーツールにて処理する箇所に来ているか確認出来ると思いますが、確認していますか?


----------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EC-CUBEインテグレートパートナー【ゴールド】ランク
M&I Works
URL: https://miworks.biz/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

tosi528
投稿日時: 2023/8/22 18:17
対応状況: −−−
半人前
登録日: 2019/11/21
居住地:
投稿: 18
Re: 特定の商品を購入後、外部システムにPOST送信したい。
ご回答ありがとうございます。

デベロッパーツールは、よく理解できてないため確認していませんでした。失礼しました。

もし、JSでは問題がありそうであれば、これ以外の方法があれば、ご教授いただけると助かります。

大変、恐縮ではございますが、よろしくお願いいたします。
mcontact
投稿日時: 2023/8/25 13:28
対応状況: −−−
登録日: 2022/1/22
居住地:
投稿: 1195
Re: 特定の商品を購入後、外部システムにPOST送信したい。
> もし、JSでは問題がありそうであれば、これ以外の方法があれば、ご教授いただけると助かります。
JSでなければならないという訳ではない事なら、EC-CUBEのcontroller部をカスタマイズしてCurlなどで外部サーバへの送信処理を書けば良いのではないでしょうか...


----------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EC-CUBEインテグレートパートナー【ゴールド】ランク
M&I Works
URL: https://miworks.biz/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

tosi528
投稿日時: 2023/8/25 16:54
対応状況: −−−
半人前
登録日: 2019/11/21
居住地:
投稿: 18
Re: 特定の商品を購入後、外部システムにPOST送信したい。
ありがとうございます。

チャレンジしてみます。

また、何かありましたら、よろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は87,663名です
総投稿数は109,424件です

投稿数ランキング

1
seasoft
7362
2
468
3217
3
AMUAMU
2712
4
nanasess
2302
5
umebius
2085
6
yuh
1807
7
h_tanaka
1596
8
red
1567
9
mcontact
1195
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.