Un software di carrello degli acquisti ricco di funzionalità che include tutto il necessario per avviare, eseguire e promuovere il tuo negozio online.
Questo metodo di integrazione ti aiuterà a integrare Post Affiliate Pro con Interspire Shopping Cart 6.0+ nel caso in cui i clienti non vengono riportati sulla pagina di ringraziamento di Interspire dopo il pagamento con Google Checkout.
A cosa serve questo script?
Questo setup è stato creato per tracciare i prodotti ordinati in InterspireShopping Cart e pagati con Google Checkout. Questo script può pubblicare ogni prodotto diverso ordinato come una vendita separata a PAP4 oppure può pubblicare l’intero carrello come una vendita unica. Viene utilizzato per il tracciamento delle vendite di PAP e per il tracciamento delle API.
Aggiungi il campo visitorId nel modello ProductAddToCart
Modifica il file /templates/__master/Snippets/ProductAddToCart.html (se l’hai cambiato nel tuo modello è nella directory: /templates/[used template]/Snippets/)
Aggiungi questa riga nel modulo:
<input value="" name="product-private-data" type="hidden" id="pap_dx8vc2s5">
dopo la riga:
<input type="hidden" name="currency_id" value="" />
e dopo la fine del tag del modulo “” aggiungi:
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/notifysale.php" type="text/javascript">
</script>
Il codice qui sotto mostra l’intero file ProductAddToCart.html dopo le modifiche:
%%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 (specialmente per 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%%
Aggiungi il parametro visitorId nei link Add To Cart
Modifica tutti i file del modello in cui è usato il link “aggiungi al carrello”. Aggiungi l’attributo id=”affCookieLinkId” nel tag <a> in <div class=”ProductActionAdd”>.
E in click tracking code aggiungi:
PostAffTracker.writeCookieToLink('affCookieLinkId', 'product-private-data');
dopo la linea:
PostAffTracker.track();
Ecco qui sotto il codice dopo le modifiche:
<div class="ProductActionAdd" style="display:%%GLOBAL_HideActionAdd%%;">
<a href="%%GLOBAL_ProductURL%%" id="affCookieLinkId">%%GLOBAL_ProductAddText%%</a>
</div>
Elenco dei file che devi modificare nella 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
Modifica il file class.cart.api.php
Modifica il file /includes/classes/class.cart.api.php.
Trova la linea:
public function AddItem
e aggiungi alla fine dei parametri un nuovo parametro $productPrivateData=null.
Ecco come dovrebbe essere:
public function AddItem($productId, $quantity=1, $variationDetails=null, $configurableOptions=array(), $cartItemId=null, $options=array(), $parentId=null, $reorder=false, $productPrivateData=null)
Poi trova l’array cartProduct (linea 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,
);
aggiungi qui:
product_private_data' => $productPrivateData
Ecco come dovrebbe essere:
$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
);
Modifica il file class.cart.php
Modifica il file /includes/classes/class.cart.php.
Trova la linea:
$cartItemId = $this->api->AddItem($product_id, $qty, $variation, $configurableFields, null, $options, null, false);
cambiala in questo modo:
$cartItemId = $this->api->AddItem($product_id, $qty, $variation, $configurableFields, null, $options, null, false, $productPrivateData);
E aggiungi questo all’inizio:
$productPrivateData = '';
if(isset($_REQUEST['product-private-data'])) {
$productPrivateData = $_REQUEST['product-private-data'];
}
Ecco come dovrebbe essere dopo le modifiche:
...
...
$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) {
...
...
Aggiungi il codice di monitoraggio della vendita nel file class.handler.php nel metodo googlecheckout
Modifica il file /modules/checkout/googlecheckout/class.handler.php.
Trova questo codice intorno alla linea 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;
}
e aggiungici il codice qui sotto:
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++;
}
Questo metodo di monitoraggio sta usando l’API di PAP. Pertanto è necessario avere il file PapApi.class.php nella directory /modules/checkout/googlecheckout/.
(Puoi scaricarlo dal tuo merchant panel > avvia > strumenti > integrazione > integrazione api > Scarica API di PAP).
Il testo descrive l'utilizzo di uno script per tracciare le vendite di diversi prodotti attraverso Interspire Shopping Cart. Viene spiegato come impostare PAP e Interspire Shopping Cart per lavorare con lo script e registrare ogni prodotto come una vendita separata a PAP. Inoltre, vengono fornite istruzioni su come creare diverse campagne per ogni articolo con una commissione diversa. Il testo inoltre promuove l'account gratuito su Post Affiliate Pro.
Il testo parla dell'integrazione di ThriveCart, un software di carrelli degli acquisti moderno, con Post Affiliate Pro. Utilizzando variabili personalizzate e un webhook, è possibile tracciare le vendite e le commissioni a vita. Il processo di configurazione prevede l'aggiunta di un valore extra ai link di ThriveCart, l'attivazione del plugin e la configurazione di un webhook. Il testo offre anche una prova gratuita del servizio.