PrestaShop
弊社提供のモジュールを使用すると、簡単に統合できます。現在、PrestaShop 1.7 以降をサポートしています。最新バージョンは、こちらからダウンロードできます。
https://cdn.fanplayr.com/integrations/prestashop/packages/prestashop-1.2.0.zip
インストール
- PrestaShop 管理画面にログインします。
- モジュールとサービス に移動します。
.C6LcyhsD.png)
- 右上にある 新しいモジュールを追加 ボタンをクリックします。
- ファイルを選択 をクリックし、ダウンロードした PrestaShop モジュールを選択します。
- このモジュールをアップロード をクリックします。
これでモジュールがPrestaShopストアに追加されたはずです。ただし、まだモジュールを見つけて インストール する必要があります。
- 下にスクロールし、モジュールの 価格とプロモーション セクションをクリックします。
- Fanplayr Conversions が表示されるはずです。
- インストール ボタンをクリックします。
- インストールが完了すると、Fanplayr の設定画面が表示されるはずです。
- アカウントキーとセッションオファープレフィックス(下記参照)を入力します。
- 保存 をクリックします。
これでFanplayrがサイト上のユーザーと注文を追跡するはずです!
セッションオファー
Fanplayrは、Fanplayrシステムを介して付与されていないFanplayrクーポンコードをユーザーが使用するのを停止する機能を持っています。この仕組みの詳細については、セッションオファーを参照してください。
PrestaShopはモジュールを介したコア機能の変更を許可していないため、以下のコードをいずれかのコントローラーに追加する必要があります。
Prestashop 1.6 以降:
コントローラーは次の場所にあります: controllers/front/ParentOrderController.php
102行目付近に次のコードが見つかります:
if ($this->nbProducts) {
if (CartRule::isFeatureActive()) {
if (Tools::isSubmit('submitAddDiscount')) {
// ここにコードを挿入
Prestashop 1.7:
コントローラーは次の場所にあります: controllers/front/CartController.php
関数 updatecart() 内の238行目付近に次のコードが見つかります:
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コードをこの行の直下に入力してください:
/*
------------------------------------------------------------------
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キャンペーンから入手した場合を除き、使用できなくなるはずです。
セッションオファーのテスト
セッションオファーが正しく実装されたことをテストするには、以下を試してください。
Fanplayr設定で「セッションオファープレフィックス」の値を設定します。例:
FP_
このプレフィックスを持つクーポンを作成します。例:
FP_10OFF
このクーポンをカートに適用します。失敗するはずです。
このクーポンを許可するURLにアクセスします。例:
https://mystore.com/modules/fanplayr/api.php?coupon&sessionOffer&code=FP_10OFF
これにより、現在のセッションでクーポンが使用できるようになります。
このクーポンを再度適用します。今回は正常に適用されるはずです。
ステップ3でクーポンが失敗しない場合、別のコード行を変更する必要があるかもしれません。 "init" メソッドの次の行を変更してみてください。
parent::init();
から
FrontController::init();
これが完了したら、キャッシュをクリアし、クーポンを削除して、もう一度適用を試す必要があるかもしれません。なお、すでにステップ4を完了している場合は、まずサイト上のすべてのクッキーを削除して現在のセッションをクリアする必要があります。