–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.

Interspire Shopping Cart

Un logiciel de panier d’achat riche en fonctionnalités qui comprend tout ce dont vous avez besoin pour démarrer, gérer et promouvoir votre boutique en ligne. Cette méthode d’intégration par Dustin Holdiman vous aidera à intégrer PAP avec Interspire Shopping Cart 5.0+.

A quoi sert ce script ?

Cette configuration a été créée pour suivre chaque produit et la quantité de produits commandés dans Interspire Shopping Cart. Ce script permet d’enregistrer chaque produit commandé comme une vente distincte dans PAP. Ainsi, si un utilisateur achète 3 produits différents et 2 de chacun de ces produits, 6 ventes seront enregistrées dans PAP et vous saurez quelle commission correcte verser à l’affilié.

Comment configurer PAP pour qu’il fonctionne avec ce script

Vous devez d’abord créer une campagne pour CHAQUE article qui doit avoir une commission différente. Par exemple, le produit A reçoit une commission de 10 $, le produit B de 12 $ et le produit C de 8 $. Je vais créer 3 campagnes et attribuer à chaque campagne l’ID du produit défini par Interspire. Par défaut, vous pouvez trouver cette information dans la base de données en regardant dans la table isc_products et en vérifiant la cellule productid. Après avoir configuré vos campagnes, c’est tout ce que vous devez faire avec PAP pour continuer.

Comment configurer le panier d’achat Interspire

Vous devez modifier le fichier class.order.php. Ce script se trouve dans votre répertoire d’installation Interspire dans includes/classes/class.order.php. Faites défiler le fichier jusqu’à la ligne 178 environ. Vous recherchez la boucle foreach qui est commentée. Voici le code :

// Include the conversion tracking code for affiliates
foreach ($this->pendingData['orders'] as $order) {
  if (strlen(GetConfig('AffiliateConversionTrackingCode')) > 0) {
......
......
}

Remplacement du code (s’applique à la version 5.x d’Interspire Shopping Cart)

Copiez l’intégralité de la boucle foreach et remplacez-la par le code suivant :

//////////////////////////////////////////////////////////////////////////////////////////////////
foreach ($this->pendingData['orders'] as $order) {
            if (strlen(GetConfig('AffiliateConversionTrackingCode')) > 0) {
                $converted_code = GetConfig('AffiliateConversionTrackingCode');
                $converted_code = str_ireplace('%%ORDER_AMOUNT%%', $order['ordsubtotal'], $converted_code);
                $converted_code = str_ireplace('%%ORDER_ID%%', $order['orderid'], $converted_code);

		//retreive customer id for the particular order in order to take use of Lifetime Commissions
		$query_custid = "SELECT ordcustid FROM isc_orders WHERE orderid='".$order['orderid']."'";
		$result_custid = mysql_query($query_custid);
		$custid = mysql_fetch_row($result_custid);
		$customerid = $custid[0];


                $query_proid = "SELECT * FROM isc_order_products WHERE orderorderid='".$order['orderid']."'";
                $result_proid = mysql_query($query_proid);
                $prod_data = '';
                // Setup string to look like PRODUCTID:QUANTITY:PRICE,
                while ($row_proid = mysql_fetch_array($result_proid)) {
                        $prodarr[] = $row_proid['ordprodid'].':'.$row_proid['ordprodqty'].':'.$row_proid['ordprodcost'];
                }
		$java_arr[] = "<script type=\"text/javascript\">
		PostAffTracker.setAccountId('Account_ID');"; // Start javascript array
		$prod_count = '1'; // Product Counter

                // Separate string by ,
                foreach ($prodarr as $value) {
                    // Split apart string by : (PRODUCTID:QUANTITY:PRICE)
                    $prod_info = explode(":", $value);

		// Not needed but here for referance
                    //$converted_code = str_ireplace('%%PRODUCT_ID'.$prod_count.'%%',$prod_info[0], $converted_code);
                    //$converted_code = str_ireplace('%%QUANTITY_ID'.$prod_count.'%%',$prod_info[1], $converted_code);

                    // Create sale code for each product x the quantity ordered
					$quantity = $prod_info[1];
					while ($quantity >= 1){
						$java_string = "
							var sale".$prod_count." = PostAffTracker.createSale();
							sale".$prod_count.".setTotalCost('".$prod_info[2]."');
							sale".$prod_count.".setOrderID('".$order['orderid']."(".$prod_count.")');
							sale".$prod_count.".setProductID('".$prod_info[0]."');
							sale".$prod_count.".setData1('".$customerid."');";

						$java_arr[] = $java_string;

						$img_arr[] = '<img src="https://URL_TO_PostAffiliatePro/scripts/sale.php?TotalCost='.$prod_info[2].'&OrderID='.$order['orderid'].'_'.$prod_count.'&ProductID='.$prod_info[0].'" width="1" height="1">';
						$prod_count++; // Increase Product Counter by 1
						$quantity = $quantity-1;
					}
                }
                // Image Loop - Returns $img as all img src created in foreach loop
                $img = implode("", $img_arr);

				// Finish off javascript code
				$java_arr[] = "
				PostAffTracker.register();
				</script>";

                // Build string from array created in for each loop
				$java = implode("", $java_arr);

                $converted_code = str_ireplace('%%JAVA%%', $java, $converted_code); // Simply Insert %%JAVA%% into affiliate tracking section of interspire
                $converted_code = str_ireplace('%%IMG_CODE%%', $img, $converted_code); // Simply Insert %%IMG_CODE%% into affiliate tracking section of interspire
                $GLOBALS['ConversionCode'] .= $converted_code;
            }
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // End Edit
        }

Maintenant, il suffit de sauvegarder le fichier.

Remplacement du code (s’applique à la version 6.x d’Interspire Shopping Cart)

Copiez l’intégralité de la boucle foreach et remplacez-la par le code suivant :

//////////////////////////////////////////////////////////////////////////////////////////////////
foreach ($this->pendingData['orders'] as $order) {
            if (strlen(GetConfig('AffiliateConversionTrackingCode')) > 0) {
                $converted_code = GetConfig('AffiliateConversionTrackingCode');
                $converted_code = str_ireplace('%%ORDER_AMOUNT%%', $order['ordsubtotal'], $converted_code);
                $converted_code = str_ireplace('%%ORDER_ID%%', $order['orderid'], $converted_code);

		//retreive customer id for the particular order in order to take use of Lifetime Commissions
		$query_custid = "SELECT ordcustid FROM ".$GLOBALS['ISC_CFG']["tablePrefix"]."orders WHERE orderid='".$order['orderid']."'";
		$result_custid = mysql_query($query_custid);
		$custid = mysql_fetch_row($result_custid);
		$customerid = $custid[0];

                //check if there was a coupon used and get it's code
                $query_coupon = 'SELECT ordcouponcode FROM '.$GLOBALS['ISC_CFG']['tablePrefix']."order_coupons WHERE ordcouporderid='".$order['orderid']."'";
                $result_coupon = mysql_query($query_coupon);
                try {
                  $couponrow = mysql_fetch_row($result_coupon);
                  $coupon = $couponrow[0];
                }
                catch (Exception $e) {
                    // no coupon found
                    $coupon = '';
                }

                $query_proid = "SELECT * FROM ".$GLOBALS['ISC_CFG']["tablePrefix"]."order_products WHERE orderorderid='".$order['orderid']."'";
                $result_proid = mysql_query($query_proid);
                $prod_data = '';
                // Setup string to look like PRODUCTID:QUANTITY:PRICE,
                while ($row_proid = mysql_fetch_array($result_proid)) {
                        $prodarr[] = $row_proid['ordprodid'].':'.$row_proid['ordprodqty'].':'.$row_proid['base_price'].':'.$this->sumDiscountAndCoupon($row_proid['applied_discounts']);
                }
		$java_arr[] = "<script type=\"text/javascript\">
		PostAffTracker.setAccountId('Account_ID');"; // Start javascript array
		$prod_count = '1'; // Product Counter

                // Separate string by ,
                foreach ($prodarr as $value) {
                    // Split apart string by : (PRODUCTID:QUANTITY:PRICE)
                    $prod_info = explode(":", $value);

		// Not needed but here for referance
                    //$converted_code = str_ireplace('%%PRODUCT_ID'.$prod_count.'%%',$prod_info[0], $converted_code);
                    //$converted_code = str_ireplace('%%QUANTITY_ID'.$prod_count.'%%',$prod_info[1], $converted_code);

                    // Create sale code for each product x the quantity ordered
                                        $totalCost = $prod_info[2]-($prod_info[3]/$prod_info[1]);
					$quantity = $prod_info[1];
					while ($quantity >= 1){
						$java_string = "
							var sale".$prod_count." = PostAffTracker.createSale();
							sale".$prod_count.".setTotalCost('".$totalCost."');
                                                        sale".$prod_count.".setOrderID('".$order['orderid']."(".$prod_count.")');
							sale".$prod_count.".setProductID('".$prod_info[0]."');
							sale".$prod_count.".setData1('".$customerid."');";
						if (!empty($coupon)) $java_string .= "sale".$prod_count.".setCoupon('$coupon');";

						$java_arr[] = $java_string;

						$img_arr[] = '<img src="https://URL_TO_PostAffiliatePro/scripts/sale.php?TotalCost='.$totalCost.'&OrderID='.$order['orderid']."_".$prod_count.'&ProductID='.$prod_info[0].'&Coupon='.$coupon.'" width="1" height="1" />';
						$prod_count++; // Increase Product Counter by 1
						$quantity = $quantity-1;
					}
                }
                // Image Loop - Returns $img as all img src created in foreach loop
                $img = implode("", $img_arr);

				// Finish off javascript code
				$java_arr[] = "
				PostAffTracker.register();
				</script>";

                // Build string from array created in for each loop
				$java = implode("", $java_arr);

                $converted_code = str_ireplace('%%JAVA%%', $java, $converted_code); // Simply Insert %%JAVA%% into affiliate tracking section of interspire
                $converted_code = str_ireplace('%%IMG_CODE%%', $img, $converted_code); // Simply Insert %%IMG_CODE%% into affiliate tracking section of interspire
                $GLOBALS['ConversionCode'] .= $converted_code;
            }
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // End Edit
        }

Maintenant, il suffit de sauvegarder le fichier.

Ajout de fonctions pour le calcul de la remise (s’applique à la version 6.x d’Interspire Shopping Cart)

Vous modifiez encore le fichier class.order.php. Ajoutez le code suivant juste avant la ligne : private function ThanksForYourOrder()

        //////////////////////////////////////////////////PAP integration functions
        //find all occurences of a needle inside a haystack
        private function strposall($haystack, $needle){
            $s=0;
            $i=0;
            while (is_integer($i)){
                $i = strpos($haystack,$needle,$s);
                if (is_integer($i)) {
                    $aStrPos[] = $i;
                    $s = $i+strlen($needle);
                }
            }
            if (isset($aStrPos)) {
                return $aStrPos;
            }
            else {
                return false;
            }
        }

        private function getDiscountFromPosition($discountsString, $position) {
            $substring = substr($discountsString, $position+2);
            return substr($discountsString, $position+2, strpos($substring, ';'));
        }

        private function sumDiscountAndCoupon($discountsString) {
            if (is_null($discountsString) || $discountsString == '' || !strstr($discountsString, 'd:')) {
                return 0;
            }
            $sum = 0;
            foreach ($this->strposall($discountsString, 'd:') as $position) {
                $sum += $this->getDiscountFromPosition($discountsString, $position);
            }
            return $sum;
        }
        /////////////////////////////////////////////////end PAP integration functions

Configuration des paramètres d’Interspire

Ouvrez votre panneau d’administration dans Interspire, allez dans Settings / Affiliate Settings et collez le code suivant dans le textarea :

<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
%%JAVA%%

Ou si vous ne souhaitez pas utiliser javascript pour signaler à PAP, vous pouvez utiliser la balise IMG SRC en remplaçant %%JAVA%% par %%IMG_CODE%%.

NOTE : Utilisation du plugin d’intégration PayPal avec l’intégration Interspire.

Il n’est pas recommandé d’utiliser l’intégration Interpsire en même temps que le plugin d’intégration PayPal (ou l’intégration d’un autre processeur de paiement pris en charge par Interspire). Cela peut conduire à des transactions doublement suivies. Vous devez mettre en place une protection contre la fraude à la vente pour les éviter.

Interspire gère toutes les transactions (traite toutes les transactions quel que soit le mode de paiement) lui-même et à cause de cela, vous devez utiliser cette intégration Interspire uniquement. Si cette intégration ne vous convient pas, essayez une alternative.

Pour toute question / commentaire / suggestion, veuillez envoyer un email à Dustin dmanz013@gmail.com.Pour toute question / commentaire / suggestion, veuillez envoyer un email à Dustin dmanz013@gmail.com.

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