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

  • Integrazioni
  • Interspire Shopping Cart (specialmente per Google Checkout)

Interspire Shopping Cart (specialmente per Google Checkout)

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%%

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

Torna alle Integrazioni Crea un account GRATUITAMENTE

    Il nostro sito web utilizza i cookies. Continuando assumiamo il tuo consenso all'utilizzo dei cookie come specificato nella nostra politica sulla privacy e sui cookie.

    ×

    Prenota una chiamata individuale e scopri come Post Affiliate Pro può giovare al tuo business.

    Siamo disponibili in più date

    Prenota una chiamata telefonica