Interspire Shopping Cart (speziell für Google Checkout) integration
Eine funktionsreiche Warenkorb-Software, die alles enthält, was Sie brauchen, um Ihren Onlinestore zu erstellen, zu leiten und zu bewerben.
Diese Integrationsmethode hilft Ihnen, Post Affiliate Pro mit Interspire Shopping Cart 6.0+ für den Fall zu integrieren, dass Kunden nicht auf die Interspire-Dankesseite zurückgeleitet werden, nachdem sie mit Google Checkout bezahlt haben.
Wofür ist dieses Skript gedacht?
Diese Einrichtung wurde erstellt, um Produkte, die in Interspire Shopping Cart bestellt und mit Google Checkout bezahlt wurden, zu tracken. Das Skript sendet jedes bestellte Produkt als separaten Verkauf oder den gesamten Warenkorb als einen Verkauf an PAP4. Für das Verkaufstracking wird PAP API verwendet.
Das Feld visitorId in der Vorlage ProductAddToCart einfügen
Bearbeiten Sie die Datei /templates/__master/Snippets/ProductAddToCart.html
(wenn sie in einer eigenen Vorlage bearbeitet wurde, ist sie in dem Verzeichnis: /templates/[used template]/Snippets/)
Fügen Sie diese Zeile:
<input value="" name="product-private-data" type="hidden" id="pap_dx8vc2s5">
nach dieser Zeile in dem Formular ein:
<input type="hidden" name="currency_id" value="" />
und fügen Sie am Ende der Formularmarkierung “” dies ein:
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/notifysale.php" type="text/javascript">
</script>
Der Code unten zeigt die gesamte ProductAddToCart.html-Datei nach den Änderungen:
%%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 (speziell für 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%%
Das Feld visitorId param in “In den Warenkorb legen”-Links einfügen
Bearbeiten Sie alle Vorlagedateien, in denen ein “In den Warenkorb legen”-Link verwendet wird. Fügen Sie das Attribut id=”affCookieLinkId” in der Markierung <a> in <div class=”ProductActionAdd”> hinzu.
Fügen Sie in dem Klick-Trackingcode:
PostAffTracker.writeCookieToLink('affCookieLinkId', 'product-private-data');
nach dieser Zeile ein:
PostAffTracker.track();
Der Code unten zeigt das Ergebnis:
<div class="ProductActionAdd" style="display:%%GLOBAL_HideActionAdd%%;">
<a href="%%GLOBAL_ProductURL%%" id="affCookieLinkId">%%GLOBAL_ProductAddText%%</a>
</div>
Liste der Dateien, die Sie in directory /templates/__master/Snippets/ bearbeiten müssen:
- 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
Bearbeitung der Datei class.cart.api.php
Bearbeiten Sie die Datei /includes/classes/class.cart.api.php.
Suchen Sie nach der Zeile:
public function AddItem
und fügen Sie am Ende der Parameter den neuen Parameter $productPrivateData=null ein.
Es soll so aussehen:
public function AddItem($productId, $quantity=1, $variationDetails=null, $configurableOptions=array(), $cartItemId=null, $options=array(), $parentId=null, $reorder=false, $productPrivateData=null)
Suchen Sie als Nächstes nach cartProduct array (Zeile 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,
);
Fügen Sie hier dies ein:
product_private_data' => $productPrivateData
Es soll so aussehen:
$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
);
Bearbeitung der Datei class.cart.php
Bearbeiten Sie die Datei /includes/classes/class.cart.php.
Suchen Sie nach der Zeile:
$cartItemId = $this->api->AddItem($product_id, $qty, $variation, $configurableFields, null, $options, null, false);
Ändern Sie dies:
$cartItemId = $this->api->AddItem($product_id, $qty, $variation, $configurableFields, null, $options, null, false, $productPrivateData);
und fügen Sie vorher dies ein:
$productPrivateData = '';
if(isset($_REQUEST['product-private-data'])) {
$productPrivateData = $_REQUEST['product-private-data'];
}
Nach den Änderungen soll es so aussehen:
...
...
$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) {
...
...
Einfügen des Verkaufstrackingcodes in der Datei class.handler.php in googlecheckout method
Bearbeiten Sie die Datei /modules/checkout/googlecheckout/class.handler.php.
Suchen Sie nach diesem Code in der Zeile 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;
}
Fügen Sie den nächsten Code direkt darunter ein:
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++;
}
Diese Trackingmethode verwendet PAP API. Deshalb muss Ihre PapApi.class.php-Datei sich in dem Verzeichnis /modules/checkout/googlecheckout/ befinden.
(Sie finden sie in dem Verkäuferpanel > Start > Tools > Integration > API-Integration > PAP API herunterladen).