Skip to content

PrestaShop

弊社提供のモジュールを使用すると、簡単に統合できます。現在、PrestaShop 1.7 以降をサポートしています。最新バージョンは、こちらからダウンロードできます。

https://cdn.fanplayr.com/integrations/prestashop/packages/prestashop-1.2.0.zip

インストール

  • PrestaShop 管理画面にログインします。
  • モジュールとサービス に移動します。
Prestashop 1.6 Prestashop 1.7
  • 右上にある 新しいモジュールを追加 ボタンをクリックします。

  • ファイルを選択 をクリックし、ダウンロードした PrestaShop モジュールを選択します。

  • このモジュールをアップロード をクリックします。

これでモジュールがPrestaShopストアに追加されたはずです。ただし、まだモジュールを見つけて インストール する必要があります。

  • 下にスクロールし、モジュールの 価格とプロモーション セクションをクリックします。

  • Fanplayr Conversions が表示されるはずです。
  • インストール ボタンをクリックします。

  • インストールが完了すると、Fanplayr の設定画面が表示されるはずです。
  • アカウントキーとセッションオファープレフィックス(下記参照)を入力します。
  • 保存 をクリックします。

これでFanplayrがサイト上のユーザーと注文を追跡するはずです!

セッションオファー

Fanplayrは、Fanplayrシステムを介して付与されていないFanplayrクーポンコードをユーザーが使用するのを停止する機能を持っています。この仕組みの詳細については、セッションオファーを参照してください。

PrestaShopはモジュールを介したコア機能の変更を許可していないため、以下のコードをいずれかのコントローラーに追加する必要があります。

Prestashop 1.6 以降:

コントローラーは次の場所にあります: controllers/front/ParentOrderController.php

102行目付近に次のコードが見つかります:

php
if ($this->nbProducts) {
    if (CartRule::isFeatureActive()) {
        if (Tools::isSubmit('submitAddDiscount')) {
        // ここにコードを挿入

Prestashop 1.7:

コントローラーは次の場所にあります: controllers/front/CartController.php

関数 updatecart() 内の238行目付近に次のコードが見つかります:

php
protected function updateCart()
    {
        // $this->cookiesが利用可能な場合にのみカートを更新します。これにより、ボットによって作成されるゴーストカートを防ぎます。
        if ($this->context->cookie->exists()
            && !$this->errors
            && !($this->context->customer->isLogged() && !$this->isTokenValid())
        ) {
            if (Tools::getIsset('add') || Tools::getIsset('update')) {
                $this->processChangeProductInCart();
            } elseif (Tools::getIsset('delete')) {
                $this->processDeleteProductInCart();
            } elseif (CartRule::isFeatureActive()) {
                if (Tools::getIsset('addDiscount')) {
                // ここにコードを挿入

以下のFanplayrコードをこの行の直下に入力してください:

php
/*
    ------------------------------------------------------------------
    Fanplayr セッションオファー開始
*/
$fanplayrSessionOfferPrefix = strtolower(Tools::getValue('fanplayr_prefix', Configuration::get('FANPLAYR_CONFIG_PREFIX')));
@$allowedCoupons = (array)json_decode($_COOKIE['fanplayr_so']);
$code = strtolower(trim(Tools::getValue('discount_name')));
if ( !is_array($allowedCoupons) ) {
    $allowedCoupons = [];
}
// セッションオファープレフィックスがあり、入力されたコードがこのプレフィックスで始まり、かつ許可されたクーポンに含まれていない場合
if (strlen($fanplayrSessionOfferPrefix) > 0 &&
    strpos($code, $fanplayrSessionOfferPrefix) === 0 &&
    !array_key_exists($code, $allowedCoupons)
) {
    // GETおよびPOST変数からクーポンをクリアします
    $_POST['discount_name'] = '';
    $_GET['discount_name'] = '';
}
/*
    ------------------------------------------------------------------
    Fanplayr セッションオファー終了
*/

これで、Fanplayrモジュールを設定した際に設定したセッションオファープレフィックスで始まるクーポンは、Fanplayrキャンペーンから入手した場合を除き、使用できなくなるはずです。

セッションオファーのテスト

セッションオファーが正しく実装されたことをテストするには、以下を試してください。

  1. Fanplayr設定で「セッションオファープレフィックス」の値を設定します。例: FP_

  2. このプレフィックスを持つクーポンを作成します。例: FP_10OFF

  3. このクーポンをカートに適用します。失敗するはずです。

  4. このクーポンを許可するURLにアクセスします。例:

    https://mystore.com/modules/fanplayr/api.php?coupon&sessionOffer&code=FP_10OFF

    これにより、現在のセッションでクーポンが使用できるようになります。

  5. このクーポンを再度適用します。今回は正常に適用されるはずです。

ステップ3でクーポンが失敗しない場合、別のコード行を変更する必要があるかもしれません。 "init" メソッドの次の行を変更してみてください。

php
parent::init();

から

php
FrontController::init();

これが完了したら、キャッシュをクリアし、クーポンを削除して、もう一度適用を試す必要があるかもしれません。なお、すでにステップ4を完了している場合は、まずサイト上のすべてのクッキーを削除して現在のセッションをクリアする必要があります。