バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > フロント機能 > アフィリエイト追跡タグ挿入について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
monky
投稿日時: 2016/12/2 14:11
対応状況: −−−
新米
登録日: 2016/12/2
居住地:
投稿: 3
アフィリエイト追跡タグ挿入について
海外のASPのアフィリエイトタグを注文完了ページに挿入しようとしていますが、うまく行きません。変数がcomplete.twigページに引き継がれないようです。

このスクリプトで正しく変数を取得するにはどのページを変更すればよいか教えてください。

<script>
var orderID = "<order_id>";
var productInfo = [];
//Loop this for each product in the order
productInfo.push({
product_id: "<product_id>",
product_price: "<product_price>",
product_quantity: "<product_quantity>",
product_name: "<product_name>"
});
//End loop
</script>

こちらの
<order_id>注文番号
<product_id>商品ID
<product_price>注文価格
<product_quantity>数量
<product_name>商品名

を取得できるように設定したいです。

どうか宜しくお願い致します。
umebius
投稿日時: 2016/12/2 14:15
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: アフィリエイト追跡タグ挿入について
complete.twigで変数を取得するには、/src/Eccube/Controller/ShoppingController.phpのcompleteメソッドからOrderを渡してやる必要がございます。

    /**
     * 購入完了画面表示
     */
    public function complete(Application $app, Request $request)
    {
        // 受注IDを取得
        $orderId = $app['session']->get($this->sessionOrderKey);

        $event = new EventArgs(
            array(
                'orderId' => $orderId,
            ),
            $request
        );
        $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_SHOPPING_COMPLETE_INITIALIZE, $event);

        if ($event->getResponse() !== null) {
            return $event->getResponse();
        }

        // 受注IDセッションを削除
        $app['session']->remove($this->sessionOrderKey);

        return $app->render('Shopping/complete.twig', array(
            'orderId' => $orderId,
        ));
    }




$Order = $app['eccube.repository.order']->find($orderId);
で$Orderを取得して、

returnしているarrayに'Order' => $Orderとして渡します。これでTwigでOrderが使えるようになります。

あとはOrder.OrderDetailsをforeachで回して、OrderDetail.ProductClassから情報取れば大丈夫です!


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

monky
投稿日時: 2016/12/2 18:46
対応状況: −−−
新米
登録日: 2016/12/2
居住地:
投稿: 3
Re: アフィリエイト追跡タグ挿入について
umebius様

アドバイス誠にありがとうございます。
どうにかorder idは取得できるようになりました。
しかし知識不足で申し訳ございませんが、他のものがどうしてもとれないようです。

<script type="text/javascript">
var orderID = "25";
var product_id = "";
var productInfo = [];
<?php foreach($products as $product){?>
productInfo.push({
product_id: "",
product_price: "",
product_quantity: "",
product_name: ""
});
<?php }?>
</script>


下記の部分でございますが、どのように取得すればよろしいでしょうか。お忙しいところ大変申し訳ございませんが、再度おしえていただけましたらうれしいです。

>あとはOrder.OrderDetailsをforeachで回して、OrderDetail.ProductClassから情報取れば大丈夫です!
umebius
投稿日時: 2016/12/3 23:19
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: アフィリエイト追跡タグ挿入について
TwigにOrder渡していればこんな感じではないでしょうか

<script>
var orderID = "{{ Order.id }}";
var productInfo = [];
//Loop this for each product in the order
{% for OrderDetail in Order.OrderDetails %}
productInfo.push({
product_id: "{{ OrderDetail.Product.id }}", //規格を使ってればProductClassから取る
product_price: "{{ OrderDetail.priceIncTax }}", //税込ですが
product_quantity: "{{ OrderDetail.quantity }}",
product_name: "{{ OrderDetail.Product.name }}"
});
{% endfor %}
//End loop
</script>



ShoppingController側で

        $Order = $app['eccube.repository.order']->find($orderId);
        return $app->render('Shopping/complete.twig', array(
            'orderId' => $orderId,
            'Order' => $Order,
        ));


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

monky
投稿日時: 2016/12/5 22:14
対応状況: −−−
新米
登録日: 2016/12/2
居住地:
投稿: 3
Re: アフィリエイト追跡タグ挿入について
umebius様

ありがとうございます!
無事取得できるようになりました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,809名です
総投稿数は109,973件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1644
8
red
1570
9
mcontact
1289
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.