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

  • Intégrations
  • Interspire Shopping Cart (en particulier pour Google Checkout)

Interspire Shopping Cart (en particulier pour Google Checkout)

Un logiciel de panier d’achat riche en fonctionnalités qui comprend tout ce dont vous avez besoin pour lancer, gérer et promouvoir votre boutique en ligne.

Cette méthode d’intégration vous aidera à intégrer Post Affiliate Pro avec Interspire Shopping Cart 6.0+ dans le cas où les clients ne sont pas renvoyés sur la page de remerciement d’Interspire après un paiement avec Google Checkout.

A quoi sert ce script ?

Cette configuration a été créée pour suivre les produits commandés dans Interspire Shopping Cart et payés avec Google Checkout. Ce script affiche chaque produit commandé comme une vente distincte dans PAP4 ou dans le panier entier comme une seule vente. Pour le suivi des ventes, on utilise le suivi PAP API.

Ajout du champ visitorId dans le modèle ProductAddToCart

Éditez le fichier /templates/__master/Snippets/ProductAddToCart.html (si vous l’avez modifié dans votre propre modèle, il se trouve dans le répertoire : /templates/[used template]/Snippets/)

Ajoutez cette ligne dans le formulaire :

<input value="" name="product-private-data" type="hidden" id="pap_dx8vc2s5">

après la ligne :

<input type="hidden" name="currency_id" value="" />

et après la balise de fin de formulaire “” ajoutez :

<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/notifysale.php" type="text/javascript">
</script>

Le code ci-dessous montre le fichier ProductAddToCart.html dans son intégralité après les modifications :

%%GLOBAL_AddToCartButtonControlScript%%
<form method="post" action="%%GLOBAL_CartLink%%" onsubmit="return check_add_to_cart(this, %%GLOBAL_ProductOptionRequired%%)"  enctype="multipart/form-data">
	<input type="hidden" name="action" value="add" />
	<input type="hidden" name="product_id" value="%%GLOBAL_ProductId%%" />
	<input type="hidden" name="variation_id" class="CartVariationId" value="" />
	<input type="hidden" name="currency_id" value="" />
	<input value="" name="product-private-data" type="hidden" id="pap_dx8vc2s5">
	<div class="ProductDetailsGrid ProductAddToCart">
		%%SNIPPET_ProductFieldsList%%
		<div class="ProductOptionList">
			%%SNIPPET_VariationList%%
		</div>
		%%SNIPPET_EventDate%%
		<div class="DetailRow" style="display: %%GLOBAL_DisplayAdd%%">
			<div class="Label QuantityInput" style="display: %%GLOBAL_DisplayAddQty%%">%%LNG_QuantityFull%%:</div>
			<div class="Value AddCartButton">
				<span class="FloatLeft" style="display: %%GLOBAL_DisplayAddQty%%;">
					%%GLOBAL_AddToCartQty%%
				</span>
				<div class="BulkDiscount">
					%%GLOBAL_AddToCartButtonOptimizerScriptTag%%
						<input type="image" src="%%GLOBAL_IMG_PATH%%/%%GLOBAL_SiteColor%%/AddCartButton.gif" alt="Interspire Shopping Cart (en particulier pour Google Checkout)"/>
					%%GLOBAL_AddToCartButtonOptimizerNoScriptTag%%
					<div class="BulkDiscountLink" style="display: %%GLOBAL_HideBulkDiscountLink%%;">
						<a href="#" onclick="$.iModal({data: $('#ProductDetailsBulkDiscountThickBox').html(), width: 600}); return false;">
							%%LNG_BulkDiscountLink%%
						</a>
					</div>
				</div>
			</div>
		</div>
	</div>
</form>

<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/notifysale.php" type="text/javascript">
</script>

<div class="OutOfStockMessage">
	%%SNIPPET_SideAddItemSoldOut%%
</div>

%%GLOBAL_ProductBulkDiscountThickBox%%

<script type="text/javascript">
lang.OptionMessage = "%%GLOBAL_OptionMessage%%";
lang.VariationSoldOutMessage = "%%LNG_VariationSoldOutMessage%%";
lang.InvalidQuantity = "%%LNG_InvalidQuantity%%";
lang.EnterRequiredField = "%%LNG_EnterRequiredField%%";
lang.InvalidFileTypeJS = "%%LNG_InvalidFileTypeJS%%";
var ShowAddToCartQtyBox = "%%GLOBAL_ShowAddToCartQtyBox%%";
</script>
%%GLOBAL_EventDateJavascript%%

Ajout du paramètre visitorId dans les liens Ajout au panier

Modifiez tous les fichiers template où est utilisé le lien d’ajout au panier. Ajoutez l’attribut id=”affCookieLinkId” dans la balise <a> dans <div class=”ProductActionAdd”>

Et dans le code de suivi des clics, ajoutez :

PostAffTracker.writeCookieToLink('affCookieLinkId', 'product-private-data');

après la ligne :

PostAffTracker.track();

Le code ci-dessous illustre les changements effectués :

<div class="ProductActionAdd" style="display:%%GLOBAL_HideActionAdd%%;">
		<a href="%%GLOBAL_ProductURL%%" id="affCookieLinkId">%%GLOBAL_ProductAddText%%</a>
</div>

Liste des fichiers que vous devez éditer dans la section directory /templates/__master/Snippets/:

  • BrandProductsItem.html
  • CategoryProductsItem.html
  • HomeFeaturedProductsItem.html
  • HomeNewProductsItem.html
  • HomeSaleProductsItem.html
  • ProductVendorsOtherProductsItem.html
  • SearchResultProductGrid.html
  • SideCategoryNewProducts.html
  • SideCategoryPopularProducts.html
  • SideCategoryTopSellers.html
  • SideNewProducts.html
  • SideRecentlyViewedProducts.html
  • SideTopSellers.html
  • SideTopSellersFirst.html
  • TagProductsItem.html
  • VendorFeaturedItemsItem.html
  • VendorProductsItem.html

Edition du fichier class.cart.api.php

Editez le fichier/includes/classes/class.cart.api.php.

Recherchez la ligne :

public function AddItem

et ajoutez à la fin des paramètres un nouveau paramètre $productPrivateData=null

Cela ressemblera à :

public function AddItem($productId, $quantity=1, $variationDetails=null, $configurableOptions=array(), $cartItemId=null, $options=array(), $parentId=null, $reorder=false, $productPrivateData=null)

Trouvez ensuite le tableau cartProduct (ligne 1319) :

    $cartProduct = array(
            'product_id' => $productId,
            'variation_id' => $variation,
            'options' => $variationOptions,
            'quantity' => $quantity,
            'product_name' => $product['prodname'],
            'product_code' => $productCode,
            'product_price' => $productPrice,
            'original_price' => $originalPrice,
            'default_currency' => $defaultCurrency['currencyid'],
            'customer_group' => $customerGroup,
        );

ajoutez-y :

product_private_data' => $productPrivateData

cela ressemblera à :

$cartProduct = array(
            'product_id' => $productId,
            'variation_id' => $variation,
            'options' => $variationOptions,
            'quantity' => $quantity,
            'product_name' => $product['prodname'],
            'product_code' => $productCode,
            'product_price' => $productPrice,
            'original_price' => $originalPrice,
            'default_currency' => $defaultCurrency['currencyid'],
            'customer_group' => $customerGroup,
            'product_private_data' => $productPrivateData
        );

Edition du fichier class.cart.php

Éditez le fichier /includes/classes/class.cart.php.

Recherchez la ligne :

$cartItemId = $this->api->AddItem($product_id, $qty, $variation, $configurableFields, null, $options, null, false);

changez-la en :

$cartItemId = $this->api->AddItem($product_id, $qty, $variation, $configurableFields, null, $options, null, false, $productPrivateData);

Et ajoutez ceci avant :

  $productPrivateData = '';
            if(isset($_REQUEST['product-private-data'])) {
                $productPrivateData = $_REQUEST['product-private-data'];
            }

Vous obtiendrez ceci après les changements:

                        ...
                        ...
				$options['EventName'] = $eventName;
			}

			$productPrivateData = '';
			if(isset($_REQUEST['product-private-data'])) {
				$productPrivateData = $_REQUEST['product-private-data'];
			}

			// Actually add the product to the cart
			$cartItemId = $this->api->AddItem($product_id, $qty, $variation, $configurableFields, null, $options, null, false, $productPrivateData);
			$this->newCartItem = $cartItemId;

			if($cartItemId === false) {
                        ...
                        ...

Ajoutez le code de suivi des ventes dans le fichier class.handler.php dans la méthode googlecheckout

Éditez le fichier /modules/checkout/googlecheckout/class.handler.php

Trouvez ce code autour de la ligne 925 :

	if (!$completed) {
			$GLOBALS['ISC_CLASS_LOG']->LogSystemError($this->logtype, sprintf(GetLang('GoogleCheckoutCantCompleteOrder'), isc_html_escape($pendingToken), isc_html_escape(var_export($completed, true))));
			return;
		}

ajoutez le code suivant juste en dessous :

		include 'PapApi.class.php';
		$saleTracker = new Pap_Api_SaleTracker('URL_TO_PostAffiliatePro/scripts/sale.php');
		$prod_count = '1'; // Product Counter

		foreach($cartContent[$vendorId][0] as $cartItemId => $product) {
		    $productid = $product['data']['productid'];
		    $productPrivateData = $product['product_private_data'];

		    $price = $product['quantity'] * $product['product_price'];

		    if (strlen($productPrivateData) == 40) {
			  $accountId = substr($productPrivateData, 0, 8);
			  $visitorId = substr($productPrivateData, 8, 32);
		    } else {
			  $visitorId = $productPrivateData;
			  $accountId = 'default1';
		    }

		    $saleTracker->setAccountId($accountId);
		    $saleTracker->setCookieValue($visitorId);

		    $sale = $saleTracker->createSale();
		    $sale->setTotalCost($price);
		    $sale->setOrderID($order['orderid'] . "($prod_count)");
		    $sale->setProductID($productid);
		    $saleTracker->register();
		    $prod_count++;
		}

Cette méthode de suivi utilise l’API PAP. Par conséquent, vous devez disposer de votre fichier PapApi.class.php actuel dans le répertoire /modules/checkout/googlecheckout/.

(Vous pouvez le télécharger à partir de votre panneau marchand > démarrer > outils > intégration > intégration api > Télécharger PAP API)

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