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)
Le texte parle de l'intégration du plugin CommerceGate dans Post Affiliate Pro pour permettre des solutions de facturation en ligne. Les étapes incluent l'intégration du formulaire de paiement, l'activation du plugin, la configuration des notifications et le suivi des clics. CommerceGate est une société de traitement des paiements en ligne établie en Europe depuis 2006.
Le texte parle de l'intégration d'une solution de commerce électronique appelée Shopware. Cette solution est décrite comme étant complète et adaptée aux novices et aux experts. L'intégration est facile grâce à un plugin qui ajoute automatiquement le code de suivi des clics et des ventes. Le plugin est disponible pour la version 5 et 6 de Shopware et permet de suivre les commissions par produit et les emails des clients pour les commissions à vie. Le texte inclut également des instructions pour télécharger et installer le plugin. Enfin, quelques ressources connexes sont mentionnées.