Call us Toll-Free:
1-800-218-1525
Live ChatEmail us
New York, NY October 31, 2008 -- Software Projects, an Inc. 5,000 Company and the industry's leading full-service Internet Marketing and Web Development agency, announced today the general availability of a private-labeled version of its Internet Marketing & Web development services.

The private labeled suite will allow any company to offer Email Marketing, PPC Management, Lead generation, Link building, Web hosting and Payment solutions to its customers under its own brand. The system runs on the partner's domain and is completely transparent to the end user.

"We are very excited to open up our technology platform and allow any business or agency to offer full-service branded Internet Marketing & Web development services to their customers. This development is a major milestone in our road to bring reliable, affordable, results-driven Internet Marketing services to the masses", said Richard Anderson, President and CEO of SoftwareProjects.

With customers such as Nokia, Microsoft, 3M, ReMAX, Estee Lauder, CountryWide as well as other great organizations operating in 14 countries, SoftwareProjects is well positioned to address the Internet Marketing needs of any business vertical. The company is currently managing $90M in Email, PPC and Media marketing budgets.

Mike Peters, General Manager of SoftwareProjects Florida, commented, "While we have a great in-house sales force, we realize acquiring customers one company at a time, is a long process. We are looking to expand our reach by partnering with qualified companies who can introduce a customer base that has a need for Lead generation, Brand building, Web development and Payment solutions. Through our private-labeled offering, our new respected partners will significantly increase the value proposition to their customers."

For additional information about SoftwareProjects private-labeled Internet Marketing & Web development program, contact the company directly at http://www.softwareprojects.com or by phone at 800-218-1525

About Software Projects

Headquartered in New York, with Sales and R&D offices around the globe, SoftwareProjects is a full service Internet Marketing & Web Development trusted leader. Established in 1998, SoftwareProjects is a privately held, profitable, global organization with 250 professionals on staff. The company's focus is helping businesses sell more online, providing a wide spectrum of services including: Email Marketing, PPC Management, Landing pages, Lead Generation, Search Engine Marketing, Affiliate systems and Web development. SoftwareProjects currently supports more than 2,000 businesses in 14 countries. For more information please refer to SoftwareProjects.com (http://www.softwareprojects.com)

How to access SPI Shopping Cart variables

Mike Peters, October 31, 2008
Unlike other solutions, the SoftwareProjects shopping cart front-end runs on your server (so that you can customize everything) while the back-end processing runs in SPI's robust data centers.

Understanding this architecture is key to learning how to access shopping cart run time variables, such as Order ID, customer shipping information, Order total etc.

Since the front-end runs on your server, you can access all run time variables by simply examining the return values of the cart's do_checkout, do_backgroundcheckout, do_getcustomerorders and do_getcustomerinformation methods.

As part of this post, I will provide you with step-by-step instructions for a couple of popular scenarios.

How to display Order ID and Order Total on thank you page

The Order ID is returned when calling do_checkout and do_backgroundcheckout. Every order in the system is going to get a unique ID assigned to it.

Step 1: Find the call to do_checkout (typically done on your main screen or checkout page).

You should find a block of code that looks like this:


// If submitted order for processing
if (Strcasecmp($_POST['action'],'checkout')==0)
{
   
$input = array();
   
$input['store_id'] = 2;
   
$input['product_codename'] = $product_codename;

   
// Checkout
   
if (do_checkout($input, &$output, &$ResultStr))
    {
       
// If successful, redirect
       
Header("Location: thankyou.php?order_id=".$output['order_id']);
        return;
    }
}

Notice in the example above, the order_id returned by do_checkout is immediately passed to the thankyou.php page as an HTTP_GET parameter.

If you have multiple pages to your sales cycle and you're looking to make the main Order ID available to the thankyou page (which is a few pages later in the process), you're going to have to either store the Order ID in a cookie, or use do_getcustomerorders().

Here's how to store the Order ID using a cookie:

Add a call to setcookie() to store Order ID as a cookie, prior to redirecting the user to the next step of the process.


// If submitted order for processing
if (Strcasecmp($HTTP_POST_VARS['action'],'checkout')==0)
{
   
$input = array();
   
$input['store_id'] = 2;
   
$input['product_codename'] = $product_codename;

   
// Checkout
   
if (do_checkout($input, &$output, &$ResultStr))
    {
       
// Save Order ID as a cookie so that we can access it later
       
$order_id = $output['order_id'];
       
setcookie("order_id", $order_id, time()+3600*24*7,"/");

       
// If successful, redirect
       
Header("Location: step2.php);
        return;
    }
}

Once the Order ID is saved as a cookie, you can easily access it on the thank you page.

How to display customer name and order information

You can use a similar method as the one described above, storing the pieces of information returned by do_checkout() in a cookie, so that they are accessible by other pages in your sales process.

A cleaner approach is to use do_getcustomerorders() which returns all orders for the currently logged-in customer.


// Fetch customer information
$input = array();
do_getcustomer($input, &$customer, &$ResultStr);

// Fetch a list of all orders for the current customer
$input = array();
do_getcustomerorders($input, &$orders, &$ResultStr);

// Display greeting
echo "Hello ".$customer['firstname'].",<BR><BR>";

// Display order information
echo "Thank you for ordering from us today<BR><BR>";
foreach (
$orders as $order)
{
echo
"<li> ".$order['name'].' $'.$order['total']."<BR>";
}
To integrate SoftwareProjects Shopping Cart checkout form into your website, use the template below:

At the top of your page include this php code:


// This page needs to be secure
$SECURED_PAGE = 1;

// Set product codename promoted on this page
$product_codename = "myproductcodename";

// Cart include
require_once($DOCUMENT_ROOT."/spicart.php");

// If submitted order for processing
if (Strcasecmp($HTTP_POST_VARS['action'],'checkout')==0)
{
   
$input = array();
   
$input['store_id'] = 2;
   
$input['product_codename'] = $product_codename;

   
// Checkout
   
if (do_checkout($input, &$output, &$ResultStr))
    {
       
// If successful, redirect
       
Header("Location: success.php");
        return;
    }
}

Include this php code where you want the checkout form to show up:

// Display the checkout form
$input = array();
$input['ResultStr'] = $ResultStr;
$input['product_codename'] = $product_codename;
$input['emailaddress'] = $emailaddress;
print_checkoutform($input);

Finally, include this php code right before the closing body tag:


// Track everything
track();

Note:

* Replace myproductcodename with the unique product codename from your product manager.

* Replace success.php with the url you'd like to redirect users to after they have successfully placed an order

* Replace 2 (store id) with your store_id or leave it as 2 for the default

* If you don't have spicart.php, login to your SoftwareProjects account - click on Product Manager, then Settings and follow the instructions to generate your custom spicart.php that you will install on your web server root folder

Supporting Multiple Payment types

Adrian Singer, September 23, 2008
The SoftwareProjects Shopping Cart was designed to make supporting multiple payment types as easy as possible.

Allowing your customers to use more than one payment option, can greatly increase your conversion rates.

As part of this post, I will walk you through the process of setting up support for payments by PayPal in addition to the built-in default payment by credit cards.

Step 1: Setup PayPal payment gateway

Login to your SoftwareProjects account, click on 'Product Manager', select 'Payment Gateways' and add a new Payment Gateway for PayPal.

All you really have to specify here is your PayPal Email address:



Step 2: Associate new Payment Gateway with a store

While still logged-in to the Product Manager module, click on 'Stores', select your primary store and associate the new PayPal gateway with your store.



Step 3: Update checkout HTML screen

Your checkout screen (you can have more than one), needs to allow users to choose between the different payment options you offer.

Edit the checkout screen - under the 'System Branding' interface, adding a radio button named "payment_method" to control whether the payment type is "creditcard", "paypal", "echeck", "westernunion" or "wiretransfer"

It is important to name this field payment_method as it is retrieved by the shopping cart.

In the example below, I am using a checkout form that has two options - payment by Credit Card or PayPal.



Step 4: Update shopping-cart calling code

We're just about done. The last step of this process, is to add a 'self' variable to the code that calls the SoftwareProjects Shopping cart.

The self variable should point to the full-path of the calling page. When using a third party payment gateway (such as PayPal), this variable is passed over to PayPal so that PayPal knows where to redirect the user after they've successfully completed the payment.

You'll have to update calls to do_checkout and do_backgroundcheckout similar to the example below:


 
// Do one click order of resellerproduct
 
$input = array();
 
$input['self']    = "https://www.mydomain.com/mypage.php";
 
$input['store_id']    = $store_id;
 
$input['product_codename']  = $product_name;

 
// Checkout
 
if (do_checkout($input, &$output, &$ResultStr))
  {
  }


 
// Do one click order of resellerproduct
 
$input = array();
 
$input['self']    = "https://www.mydomain.com/mypage.php";
 
$input['store_id']    = $store_id;
 
$input['product_codename']  = $product_name;
 
// Note we have to pass the payment_method to background checkout
 
$input['payment_method']  = "paypal";

 
// Checkout
 
if (do_backgroundcheckout($input, &$output, &$ResultStr))
  {
  }

Important Tips

* Make sure you are using the latest version of the SoftwareProjects Shopping cart API. If unsure, login to your account, click on 'Product Manager' and then 'Settings' to download the latest version.

* Always place calls to do_checkout() and do_backgroundcheckout() at the top of your scripts, BEFORE any output is sent to the browser. This is important because otherwise the Header redirect command sending the user to the third-party payment page, will not work properly

Any questions? Please post your comments here or Contact us directly.

The Need for Speed - Upgrade Notification

Adrian Singer, September 2, 2008
Hope you enjoyed your labor day weekend!

This weekend (August 30 - 31), we completed a major upgrade to the SPI front-end servers, that should translate to a little over 200% boost in overall performance of SPI modules. The upgrade affects -all- services, SPI administration console, customer back-office and affiliate-system. And by major we mean the culmination of six months of blood, sweat and tears.

Initial reaction from customers and partners has been extremely positive. We hope you like it too!

This upgrade is one of the many things we do for you behind the scenes. No cost. No gotchas. It is our way of saying THANK YOU, for the privilege and opportunity to help grow your business.

Thank you for using Software Projects

How to: Implement One Click to Order

Dawn Rossi, August 27, 2008
One click to order is a feature that allows your customers to place an order on your website, without having to retype their credit card information every single time.

Amazon.com was one of the first websites to implement One Click Shopping and they filed a patent for this process back on September 1999.

These days all major shopping carts support a variation of Amazon's One Click to Order, making it easier for customers to place repeat orders.

As part of this post, I will describe the process of implementing One Click to Order (also known as: "Background checkout") with the SoftwareProjects Shopping cart.

Step 1: Integrate spicart.php

Login to your SoftwareProjects account, click on the Product Manager and then select the Integrate menu item.

Complete all fields and generate your custom spicart.php file

Save spicart.php on your website and include it on all pages.

For example, on your index.php file:


// Specify product codename offered on this page
// (If applicable)
$product_codename = "my_first_product"; // Replace with your codename

// Include shopping cart
require_once($DOCUMENT_ROOT."/spicart.php");

// Your HTML code here
// ...

// Track everything
track();
 

Step 2: Capture customer payment information

Before you can offer One Click to Order, you have to capture your customer's payment information (credit card) at least once.

The customer payment information will then be saved in your SoftwareProjects database so that any upsell products can be offered with One click to Order.

In addition to upsells, customers who return to your website and login (with their email address and password) are also going to be able to take advantadge of the One Click to Order feature.

To capture customer payment information, you need to add a single checkout form to the first page of your checkout process:


// If submitted order for processing
if (Strcasecmp($_POST['action'],'checkout')==0)
{
   
// Populate input variables
   
$input = array();
   
$input['store_id'] = 2; // Replace with your store id
   
$input['product_codename'] = $product_codename;

   
// Charge customer
    // If failed - error code will be set into $ResultStr
   
if (do_checkout($input, &$output, &$ResultStr))
    {       
       
// If successful, redirect
       
Header("Location: upsell.php"); // Replace with your upsell page
       
return;
    }
}

// Your HTML code here
// ...

// Populate input variables
$input = array();
$input['product_codename'] = $product_codename;
$input['emailaddress'] = $emailaddress;
$input['ResultStr'] = $ResultStr;

// Print checkout form           
print_checkoutform($input);
 

Step 3: One Click to Order

Now that you've captured the customer's payment information, implementing One Click to Order is as easy as calling a single function.

The customer's payment information will be stored as part of the session variables.

To implement One click to Order, display product information on your HTML page, inviting customer to take advantadge of any upsell offers. The target url will handle placing an order in the background without requiring any customer input (also known as: "Background checkout")

For example:

Code for upsell.php page:


Thank you
for ordering our product!
<
BR><BR>
To add XYZ to your order, for a low $9.95,
<
a href="upsell_doit.php">click here</a>
 

Code for upsell_doit.php page:


// Populate input variables
$input = array();
$input['product_codename'] = $product_codename;
$input['store_id'] = 2; // Replace with store ID

// Background checkout
if (do_backgroundcheckout($input, &$output, &$ResultStr))
{
   
Header("Location: thanks_upsell.php"); // Replace with upsell thank you page
}
 

-

All set. You now know how to offer your customers a One Click to Order interface, using the SoftwareProjects Shopping cart.

Before I wrap this post, I would like to leave you with another example -

In this scenario we will be incorporating the upsell offer into the main checkout screen, so that the customer can opt-in to the upsell as part of placing the first order:



To implement this process-flow, we will use a similar script, however in this case we are going to incorporate the background checkout as part of the main index.php file:


// If submitted order for processing
if (Strcasecmp($_POST['action'],'checkout')==0)
{
   
// Populate input variables
     
$input = array();
   
$input['store_id'] = 2; // Replace with your store id
   
$input['product_codename'] = $product_codename;
 
   
// Charge customer
    // If failed - error code will be set into $ResultStr
     
if (do_checkout($input, &$output, &$ResultStr))
    {       
       
// If customer opted-in for the upsell
       
if (isset($_POST['upsell']))
        {
         
// Populate input variables
         
$input = array();
         
$input['store_id'] = 2; // Replace with store id
         
$input['product_codename'] = "upsell_product"; // Replace with upsell codename
       
$input['force_shipping'] = 1; // Populate default shipping address
        // Background checkout
       
if (!do_backgroundcheckout($input, &$output, &$ResultStr))
        {
        }
 
        }
                 
       
// If successful, redirect
       
Header("Location: thanks.php"); // Replace with thankyou page
       
return;
    }
}

// Your HTML code here
// ...

// Populate input variables
$input = array();
$input['product_codename'] = $product_codename;
$input['emailaddress'] = $emailaddress;
$input['ResultStr'] = $ResultStr;
$input['screen'] = "checkout_upsell"; // Replace with name of your checkout screen

// Print checkout form           
print_checkoutform($input);
 

Notice I am passing a new screen (checkout_upsell) to the print checkout form function. The new checkout screen includes the upsell checkbox:


<input type='checkbox' name='upsell'/>
               
<
U><span class='checkbox3'>Check this box</span></U> if you would like to add a private membership to ...

 

-

Any questions? Please comment below or contact us directly.
« Previous Posts » Next Posts



About Us  |  Contact us  |  Privacy Policy  |  Terms & Conditions