–Hidden comment

Use attributes in format region_from and region_to= to change the languages showing in language switcher.
Available regions are:
europe_from europe_to
asia_from asia_to
mideast_from mideast_to
america_from america_to

Example:
europe_from=0 europe_to=22 will put all languages (ordered in language switcher settings) from 1 to 21 to Europe region:
asia_from=22 asia_to=25 will put all languages from 23 to 24 (so only 2) into Asia region.

Summer Cart

Un panier d’achat PHP complet et facile à utiliser.

Summer Cart dispose de tous les outils et de toutes les fonctionnalités permettant aux commerçants en ligne de créer facilement une boutique fonctionnelle de fond en comble. Que vous vendiez une douzaine de spécialités de niche ou que vous répertoriez des centaines de produits de masse, vous obtiendrez une grande visibilité et popularité de votre opération grâce à une boutique conçue de main de maître.

L’intégration de Post Affiliate Pro avec Summer Cart nécessitera de modifier non seulement le pied de page de votre boutique (pour ajouter le code de suivi des clics), mais aussi 2 classes du panier d’achat. Voir les détails de cette intégration ci-dessous.

Intégration des clics

Le code de suivi des clics doit être stocké dans le fichier skins//customer/footer.tmpl

Si vous ne disposez pas de ce fichier dans votre skin, il suffit de le copier du répertoire squelette vers le répertoire de votre thème et d’ajouter le code de suivi des clics, qui est préparé pour vous dans Post Affiliate Pro (menu Tools -> Integration -> Click tracking)

Ajoutez ce code avant la balise

Dans la mesure où l’intégration de Summer Cart ne peut pas utiliser le suivi des cookies Flash (seuls les cookies du navigateur sont utilisés), nous devons désactiver le suivi des cookies Flash, en ajoutant la ligne suivante au code de suivi des clics :

PostAffTracker.disableTrackingMethod('F');

Il doit être stocké juste après la ligne :

PostAffTracker.setAccountId('default1');

dans votre code d’intégration de clics dans le fichier footer.tmpl

Intégration des ventes

L’intégration des ventes se fera en 2 étapes et l’intégration se fait en appelant les requêtes PAP API à Post Affiliate Pro directement à partir du code php de votre panier.

Dans un premier temps, une transaction sera créée dans Post Affiliate Pro (statut Pending) et plus tard, lorsque la commande sera livrée à votre client, la transaction dans Post Affiliate Pro passera au statut Approved.

Ajouter une étape de transaction

Votre panier créera la commande au moment où le visiteur sera redirigé vers le processeur de paiement (par exemple Paypal). Dans le même temps, une transaction est créée dans Post Affiliate Pro (statut Pending).

Ouvrez le fichier du panier d’achat : /include/sc/util/order/OrdersInProgress.php

afin que nous puissions y placer le code de suivi des ventes juste à la fin de la classe scOrdersInProgress

Afin de suivre la totalité de la commande comme une seule transaction (commission) dans Post Affiliate Pro (même si plusieurs articles sont achetés au cours de la commande particulière), utilisez le code suivant :

private function registerNewPostAffiliateProTransaction($order) {
    include_once('<PATH_TO_PAP_API>/PapApi.class.php');
    $saleTracker = new Pap_Api_SaleTracker('https://URL_TO_PostAffiliatePro/scripts/sale.php');

    $productIDs = '';
    $items = $order->getOrderItems();
    foreach($items as $item) {
       $productIDs .= $item->get('OrderItemProductCode').',';
    }

    $sale = $saleTracker->createSale();
    $papOrderDetails = $order->getOrderTotalLines();
    $sale->setTotalCost($papOrderDetails[0]->get('OrderTotalLineCustomerCurrencyAmount'));
    $sale->setOrderID($order->getPK());
    $sale->setProductID($productIDs);
 
    $saleTracker->register();
}

Si vous souhaitez que chaque article acheté pendant la commande soit suivi comme une transaction distincte (commission) dans Post Affiliate Pro, utilisez le code suivant :

private function registerNewPostAffiliateProTransaction($order) {
    include_once('<PATH_TO_PAP_API>/PapApi.class.php');
    $saleTracker = new Pap_Api_SaleTracker('https://URL_TO_PostAffiliatePro/scripts/sale.php');
      $items = $order->getOrderItems();
      foreach($items as $item) {
          $sale = $saleTracker->createSale();
          $sale->setTotalCost($item->get('OrderItemTotal'));
          $sale->setOrderID($order->getPK());
          $sale->setProductID($item->get('OrderItemProductCode'));
      }
      $saleTracker->register();
    }

IMPORTANT : cette méthode doit être stockée avant la fin de la classe, c’est-à-dire avant le dernier } du fichier /include/sc/util/order/OrdersInProgress.php

IMPORTANT : N’oubliez pas de remplacer le chemin d’accès au fichier PapApi.class.php par le chemin correct.

Le fichier PapApi.class.php peut être téléchargé depuis votre installation Post Affiliate Pro dans le menu Tools-> Integration -> Api Integration

Copiez-le sur votre serveur, où est installé votre boutique et définissez le chemin correct.

Ajouter une étape de transaction

Maintenant nous devons utiliser la méthode registerNewPostAffiliateProTransaction, que nous avons ajoutée à l’étape précédente.

Veuillez ajouter la ligne de code suivante dans la méthode createOrder, juste avant la dernière ligne.

return $this->_lastOrderId;
$this->registerNewPostAffiliateProTransaction($order);

Changez le statut de la transaction

Le statut des transactions existantes dans Post Affiliate Pro peut être contrôlé en changeant le statut dans votre panier.

Le code suivant changera le statut de la transaction PAP en Approuvé, si votre panier d’achat a le statut Livré.

Et la transaction PAP aura le statut Declined, si votre panier d’achat a le statut Cancelled, Failed ou Returned.

Modifiez votre fichier de panier /include/sc/domainobj/Order.php et à la fin de la classe Order ajoutez la méthode suivante :

    private function updatePostAffiliateProTransaction() {
      try {
  		  include_once('<PATH_TO_PAP_API>/PapApi.class.php');
        $session = new Gpf_Api_Session("https://URL_TO_PostAffiliatePro/scripts/server.php");

        if(!$session->login("<MERCHANT_USERNAME>","<MERCHANT_PASSWORD>")) {
          return false;
        }


        $request = new Pap_Api_TransactionsGrid($session);
        $request->addFilter("orderid", Gpf_Data_Filter::LIKE, $this->getPK());
        $request->addFilter("rtype", Gpf_Data_Filter::EQUALS, 'S');
        try {
        	$request->sendNow();
        	$grid = $request->getGrid();
        	$recordset = $grid->getRecordset();
        } catch (Exception $e) {
          return false;
        }

        foreach($recordset as $rec) {
          $transaction = new Pap_Api_Transaction($session);
          $transaction->setTransid($rec->get('transid'));
          try {
        	  if(!$transaction->load()) {
        	   return false;
        	  } else {
        	     if ($transaction->getStatus() != 'D') {
                  $newStatus = '';
                  switch($this->get('OrderStatus')) {
                    case scOrderStatus::ORDER_STATUS_UNFINISHED:
              		  case scOrderStatus::ORDER_STATUS_PAYMENT_PENDING:
              		  case scOrderStatus::ORDER_STATUS_NEW:
              		  case scOrderStatus::ORDER_STATUS_IN_PROGRESS:
              		  case scOrderStatus::ORDER_STATUS_ON_HOLD:
              		  case scOrderStatus::ORDER_STATUS_QUEUED:
              		    $newStatus = 'P';
              		    break;
              		  case scOrderStatus::ORDER_STATUS_RETURNED:
              	    case scOrderStatus::ORDER_STATUS_PAYMENT_FAILED:
              		  case scOrderStatus::ORDER_STATUS_CANCELLED:
              		    $newStatus = 'D';
              		    break;
              		  case scOrderStatus::ORDER_STATUS_DELIVERED:
              		    $newStatus = 'A';
              		    break;
            		  default:
            		    return false;
                  }
                  // changing the status of a transaction
                  if (strlen($newStatus) && $transaction->getStatus() != $newStatus) {
                    $transaction->setStatus($newStatus);
                    $transaction->save();
                  }
               }
        	  }
          } catch (Exception $e) {
            return false;
          }
        }
        } catch (Exception $e) {
          return false;
        }
        return true;
    }

IMPORTANT : cette méthode doit être stockée avant la fin de la classe, c’est-à-dire avant le dernier } du fichier /include/sc/domainobj/Order.php

IMPORTANT : N’oubliez pas de remplacer le chemin d’accès correct au fichier PapApi.class.php. Le fichier PapApi.class.php peut être téléchargé depuis votre installation de Post Affiliate Pro dans le menu Tools-> Integration -> Api Integration.

Copiez-le sur votre serveur, où est installé votre boutique et définissez le chemin correct.

IMPORTANT : Utilisez votre nom d’utilisateur marchand et votre mot de passe. La demande d’API utilisera vos informations d’identification pour accéder aux transactions de votre installation Post Affiliate Pro.

Changez le statut de la transaction

Maintenant, nous devons utiliser la méthode que nous avons ajoutée à la classe Order.

Ajoutez la ligne de code suivante (trouvée dans la boîte ci-dessous) dans le fichier /include/sc/domainobj/Order.php à la toute fin des méthodes updateOrderStatus et setOrderStatus.

$this->updatePostAffiliateProTransaction();

Statuts de commande personnalisés

Si vous prévoyez d’utiliser des statuts de commande personnalisés dans votre panier d’été, vous devez adapter la méthode updatePostAffiliateProTransaction dans le fichier de votre panier d’achat /include/sc/domainobj/Order.php

dans la fonction switch, vous devez ajouter de nouvelles déclarations de cas, où la valeur sera l’ID de votre statut personnalisé.

Retour à Intégrations Créer un compte GRATUITEMENT

Notre site web utilise des cookies. En continuant, nous supposons votre permission de déployer des cookies comme détaillé dans Politique de confidentialité et de cookies.

×

Programmez un appel en tête-à-tête et découvrez comment Post Affiliate Pro peut profiter à votre entreprise.

Nous sommes disponibles à plusieurs dates

Planifier un appel