Language switcher

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

  • Integraciones
  • Interspire Shopping Cart (especialmente para Google Checkout)

Interspire Shopping Cart (especialmente para Google Checkout)

Un software de carrito de compras rico en funciones que incluye todo lo que necesitas para iniciar, ejecutar y promocionar tu tienda en línea.

Este método de integración te ayudará a integrar Post Affiliate Pro con Interspire Shopping Cart 6.0+ en caso de que los clientes no regresen a la página de agradecimiento de Interspire después del pago con Google Checkout.

¿Para qué es este script?

Esta configuración se creó para realizar un seguimiento de los productos pedidos en InterspireShopping Cart y pagados con Google Checkout. Lo que hace este script es que publica cada producto diferente pedido como una venta separada en PAP4 o el carrito completo como una venta única. Se utiliza el seguimiento de ventas PAP API.

Agregar el campo de visitanteId a la plantilla ProductAddToCart

Edita el archivo /templates/__master/Snippets/ProductAddToCart.html (si lo has cambiado en tu propia plantilla, está en el directorio: / templates / [used template] / Snippets / )

Agrega esta fila en el formulario:

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

después de la fila:

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

y después de la etiqueta de fin de formulario “” agrega:

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

El código siguiente muestra el archivo ProductAddToCart.html completo después de los cambios:

%%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 (especialmente para 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%%

Agregar el parámetro de visitanteId en los enlaces Agregar al carrito

Edita todos los archivos de plantilla donde se usa el enlace Agregar al carrito. Añade el atributo id=”affCookieLinkId” en la etiqueta <a> en <div class=”ProductActionAdd” & gt ;.

Y en el código de seguimiento de clics agrega:

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

después de la línea:

PostAffTracker.track();

El siguiente código muestra que después de los cambios:

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

Lista de archivos que debes editar en directorio / 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

Edit file class.cart.api.php

Edita el archivo /includes/classes/class.cart.api.php .

Busca línea:

public function AddItem

y agrega al final de los parámetros el nuevo parámetro $productPrivateData=null .

Se verá así:

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

Después buscar cartProduct array (línea 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,
        );

añade ahí:

product_private_data' => $productPrivateData

se verá así:

$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
        );

Editar archivo class.cart.php

Edita archivo /includes/classes/class.cart.php.

Busca línea:

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

cámbiala como:

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

Y agrega esto antes:

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

Se ocupará de los cambios:

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

Agrega el código de seguimiento de la venta en el archivo class.handler.php en el método googlecheckout

Edita archivo /modules/checkout/googlecheckout/class.handler.php.

Encuentra este código alrededor de la línea 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;
		}

agrega el siguiente código justo debajo:

		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++;
		}

Este método de seguimiento utiliza la API PAP. Por lo tanto, debes tener tu archivo PapApi.class.php real en el directorio /modules/checkout/googlecheckout / .

(Puedes descargarlo desde tu panel de comerciantes > inicio > herramientas > integración > integración de api > Descargar API de PAP).

Volver a Integraciones Crear cuenta GRATIS

Nuestro sitio web utiliza cookies. Al continuar, asumimos tu permiso para implementar cookies como se detalla en nuestro política de privacidad y cookies.

×

Programa una llamada uno a uno y descubre cómo Post Affiliate Pro puede beneficiar a tu negocio.

Estamos disponibles en varias fechas

Programa una llamada