Interspire Shopping Cart (especially for Google Checkout) integration
A feature rich shopping cart software that includes everything you need to start, run, and promote your online store.
This integration method will help you to integrate Post Affiliate Pro with Interspire Shopping Cart 6.0+ in case when customers are not returned on the Interspire thank you page after payment with Google Checkout.
What is this script for?
This setup was created to track products ordered in InterspireShopping Cart and paid with Google Checkout. What this script does is that it posts each different product ordered as a separate sale to PAP4 or whole cart as a one sale. For sale tracking PAP API tracking is used.
Adding visitorId field into ProductAddToCart template
Edit file /templates/__master/Snippets/ProductAddToCart.html
(if you have changed it in own template it is in directory: /templates/[used template]/Snippets/)
Add this row into form:
<input value="" name="product-private-data" type="hidden" id="pap_dx8vc2s5">
after row:
<input type="hidden" name="currency_id" value="" />
and after end of form tag “</form>” add:
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/notifysale.php" type="text/javascript">
</script>
Code below shows whole ProductAddToCart.html file after changes:
%%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 (especially for 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%%
Adding visitorId param into Add To Cart links
Edit all template files where is used add to cart link. Add attribute id=”affCookieLinkId” into tag <a> in <div class=”ProductActionAdd”>.
And into click tracking code add:
PostAffTracker.writeCookieToLink('affCookieLinkId', 'product-private-data');
after line:
PostAffTracker.track();
Code below shows that after changes:
<div class="ProductActionAdd" style="display:%%GLOBAL_HideActionAdd%%;">
<a href="%%GLOBAL_ProductURL%%" id="affCookieLinkId">%%GLOBAL_ProductAddText%%</a>
</div>
List of files, which you need to edit in 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
Edit file class.cart.api.php
Edit file /includes/classes/class.cart.api.php.
Find line:
public function AddItem
and add in the end of parameters new parameter $productPrivateData=null.
It will look like:
public function AddItem($productId, $quantity=1, $variationDetails=null, $configurableOptions=array(), $cartItemId=null, $options=array(), $parentId=null, $reorder=false, $productPrivateData=null)
Next find cartProduct array (line 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,
);
add there:
product_private_data' => $productPrivateData
it will look like:
$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
);
Edit file class.cart.php
Edit file /includes/classes/class.cart.php.
Find line:
$cartItemId = $this->api->AddItem($product_id, $qty, $variation, $configurableFields, null, $options, null, false);
change it like:
$cartItemId = $this->api->AddItem($product_id, $qty, $variation, $configurableFields, null, $options, null, false, $productPrivateData);
And add this before it:
$productPrivateData = '';
if(isset($_REQUEST['product-private-data'])) {
$productPrivateData = $_REQUEST['product-private-data'];
}
It will look after changes:
...
...
$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) {
...
...
Add sale tracking code into file class.handler.php in googlecheckout method
Edit file /modules/checkout/googlecheckout/class.handler.php.
Find this code around line 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;
}
add next code right below:
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++;
}
This tracking method is using PAP API. Therefore you need to have your actual PapApi.class.php file in directory /modules/checkout/googlecheckout/.
(You can download it from your merchant panel > start > tools > integration > api integration > Download PAP API).
What is Interspire Shopping Cart?
Interspire Shopping Cart was an ecommerce software product developed by Interspire, designed to help businesses set up and manage their own online stores. It provided a range of features including product management, order processing, and customer management, enabling merchants to sell tangible and digital products globally. Although the product was discontinued in 2012, it played a significant role in the evolution of ecommerce platforms, leading to the development of modern solutions like BigCommerce.
Interspire Shopping Cart was introduced as a self-hosted platform, allowing businesses full control over their ecommerce operations. In 2009, recognizing the growing demand for cloud-based services, Interspire launched BigCommerce as a SaaS (Software as a Service) successor to their shopping cart software. This strategic move led to the discontinuation of Interspire Shopping Cart in 2012, as the company shifted its focus entirely to BigCommerce. The transition marked a significant shift in ecommerce solutions, from self-hosted platforms to more flexible and scalable cloud-based services.
Interspire Shopping Cart was designed to cater to a broad audience, ranging from small businesses to Fortune 500 companies. Its user-friendly interface was particularly beneficial for merchants lacking technical skills, enabling them to set up and manage online stores without extensive technical knowledge. The platform offered customizable solutions and tools suited for selling both physical and digital products, emphasizing global reach and scalability to meet diverse business needs.
Main Features of Interspire Shopping Cart
Interspire Shopping Cart was known for its comprehensive suite of features that facilitated efficient online store management:
- Store Management: Provided tools for product catalog management, inventory control, and order processing.
- Marketing Capabilities: Included built-in marketing tools such as a Google AdWords generator to enhance store visibility and attract customers.
- Customizable Templates: Offered a variety of customizable templates to align the online store’s appearance with the brand identity.
- Advanced Analytics: Featured detailed analytics and reporting tools to monitor sales performance and customer behavior.
- Integrations: Supported integrations with popular business tools like QuickBooks for accounting and Interspire Email Marketer for email marketing campaigns.
Pricing Options for Interspire Shopping Cart
While specific historical pricing details for Interspire Shopping Cart are not readily available, the product was offered as a one-time purchase for a self-hosted solution. Following its discontinuation in 2012, Interspire recommended that users transition to BigCommerce, which operates on a subscription-based pricing model with various plans to accommodate different business sizes and requirements.
User Insights on Interspire Shopping Cart
Users of Interspire Shopping Cart appreciated its ease of use and robust feature set, particularly the seamless integration with email marketing tools through Interspire Email Marketer. The platform was praised for enabling businesses to launch and manage online stores without requiring extensive technical expertise. However, since the product is no longer supported or updated, existing users and new businesses are advised to consider modern alternatives that offer similar or enhanced ecommerce functionalities.
Video Reviews of Interspire Shopping Cart
- Interspire Shopping Cart Review 2023
Highlights features and ease of use of Interspire Shopping Cart.
Watch the review - Deep Dive into Interspire Shopping Cart Features
Provides a comprehensive review of the platform’s features and integrations.
Watch the review - Interspire Shopping Cart – User Experience and Feedback
Shares user experiences, discussing the pros and cons of the platform.
Watch the review
Alternatives to Interspire Shopping Cart
With the discontinuation of Interspire Shopping Cart, businesses seeking ecommerce solutions can consider the following alternatives:
- BigCommerce
The SaaS successor to Interspire Shopping Cart, offering a robust, cloud-based ecommerce platform.
Visit BigCommerce - Shopify
A leading ecommerce platform known for its ease of use and extensive app ecosystem.
Visit Shopify - Shift4Shop (formerly 3dcart)
Provides comprehensive ecommerce features suitable for businesses of all sizes.
Visit Shift4Shop - Pinnacle Cart
Offers customizable ecommerce solutions with a focus on user-friendly design and functionality.
Visit Pinnacle Cart - CS-Cart
An ecommerce platform featuring multi-vendor marketplace capabilities and extensive customization options.
Visit CS-Cart - Next-Cart
Specializes in shopping cart migration services to assist businesses in transitioning between platforms.
Visit Next-Cart - LitExtension
Provides automated data migration services for various ecommerce platforms.
Visit LitExtension - Cart2Cart
Offers automated shopping cart migration solutions for seamless transitions.
Visit Cart2Cart - Advanced E Media (WebJaguar)
Delivers ecommerce solutions tailored for B2B and B2C companies, with customizable features.
Visit Advanced E Media - CoreCommerce
A feature-rich platform focused on providing secure and scalable ecommerce solutions.
Visit CoreCommerce