Category Archives: Ecommerce

Fixing the “Warning: array_merge() [function.array-merge]:” error in WordPress’s WP-Ecommerce plugin

When I first installed the WP-Ecommerce plugin on a website this morning and tried to go to the products page, I got this error:

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in /public_html/wp-content/plugins/wp-e-commerce/wpsc-core/wpsc-functions.php on line 622

Thankfully, it is actually very easy to fix this error. All you need to do is add (array) to the correct line of code in the plugin’s functions.php file.

Find this line in your wp-e-commerce/wpsc-core/wpsc-functions.php file:

$args = array_merge($wp_query->query, array('posts_per_page' => get_option('wpsc_products_per_page')));

And change it to this:

$args = array_merge((array)$wp_query->query, array('posts_per_page' => get_option('wpsc_products_per_page')));

 

That did the trick for me and hopefully will work for you too. Let me know if you have any questions or run into issues with this.

Use a dropdown menu to apply a discount to your PayPal button

Using a dropdown menu rather than a text box to apply different discounts to your PayPal button is actually very simple.
All you need to do is change this code:

<input type = "text" size = "10" name = "coupcode"; />

to this:

 <select name= "coupcode";>
 <option value="coupl"> Friend
 <option value="coup2" > Online
 <option value="coup3">Other
 </select>

You can see a working example of this at http://icode4you.net/wp-content/uploads/2011/11/coupon.html.

How to make your PayPal button open in a new window

Add this line of code to your PayPal button code to make it open in a new window when clicked:

target="_blank"

You would add this to the <form> section of the button code:

<form target="_blank" action="https://www.paypal.com/cgi-bin/webscr method="post">

Create a discount or coupon for a set dollar amount for a PayPal button

Here are the codes you can use to create a coupon or discount for a set dollar amount for your PayPal buttons (as opposed to a percentage amount, which I covered in a previous post on how to create a coupon for your PayPal button).

First, use this code for your button:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" onsubmit="this.target = 'paypal'; return ReadForm (this);">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="add" value="1" />
<input type="hidden" name="business" value="" />
<input type="hidden" name="item_name" value="10 sessions" />
<input type="hidden" name="amount" value="773.00" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="baseamt" value="773.00" />
<input type="hidden" name="basedes" value="10 sessions" />
Enter Coupon code
<input type     = "text" size     = "10"  name     = "coupcode"; />
<input type="button" value="Check code" onclick="coupval =this.form.coupcode.value;  ChkCoup();" /><br/><br/>
<input type="image" id="xx" disabled="disabled" src="https://www.paypalobjects.com/WEBSCR-640-20110306-1/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" onclick="CalculateOrder(this.form)" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/WEBSCR-640-20110306-1/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

Make sure you use either your PayPal email address or your Merchant account ID number for this line:

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

Next, we will create the Javascript file we need. Here is the code I use:

<!--
var discnt = 0;   // no default percent discount

var coupons = new Array (  // place to put coupon codes
  "coup1",                 // 1st coupon value - comma seperated
  "coup2",                 // 2nd coupon value - add all you want
  "coup3"                  // 3rd coupon value
);
var coupdc  = new Array (  // place to put discounts for coupon vals
  5,
  10,
  15
);
var coupval = "(blanket)"; // what user entered as coupon code

function ChkCoup () {      // check user coupon entry
var i;
  discnt = 0;              // assume the worst
  for (i=0; i<coupons.length; i++) {
    if (coupval == coupons[i]) {
      discnt = coupdc[i];  // remember the discount amt
      alert ("This is a valid promo code! \n\n" + "$" + discnt +
             " discount now in effect.");
      return;
    }
  }
  alert ("'" + coupval + "'  is not a valid promo code!");
}

function Dollar (val) {      // force to valid dollar amount
var str,pos,rnd=0;
  if (val < .995) rnd = 1;  // for old Netscape browsers
  str = escape (val*1.0 + 0.005001 + rnd);  // float, round, escape
  pos = str.indexOf (".");
  if (pos > 0) str = str.substring (rnd, pos + 3);
  return str;
}

function ReadForm (obj1) {  // apply the discount
var amt,des;
  amt = obj1.baseamt.value*1.0;       // base amount
  des = obj1.basedes.value;           // base description

  if (discnt > 0) {                   // only if discount is active
    amt = Dollar (amt - (discnt));
    des = des + ", " + "$" + discnt + "dis, COUP = " + coupval;
  }

  obj1.amount.value = Dollar (amt);
  obj1.item_name.value = des;
}
//-->

Here is a link to the Javascript file that you need – http://thelibzter.com/discount2.js. Feel free to right-click and save that file to your computer rather than creating your own Javascript file if you wish.

To add the passwords you want to use, change the names coup1coup2, and coup3 to the passwords that you want to use.

To add the discount amounts, change the 510, and 15 to the percentage that you want the discounts to be for.

 

The final step, which I use to make the discount button more secure, is to pack part of the Javascript code. I copy the line of the code that contains my discount passwords:

var coupons = new Array (  // place to put coupon codes   "coup1",                 // 1st coupon value - comma seperated   "coup2",                 // 2nd coupon value - add all you want   "coup3"                  // 3rd coupon value );

And paste it into Dean Edward’s packer - http://dean.edwards.name/packer/. Click “pack” and then copy the packed code and paste it into your Javascript file in place of the line above, which declared our passwords. This makes it more difficult for people to see your passwords.

Save the Javascript file as discount.js or whatever you want it to be called. Upload it to your server. Add this line of code to your website’s <head> section:

<script type="text/javascript" src="http://yourwebsite.com/discount.js"></script>

Make sure you change the name of the Javascript file in the code above to the name of your own file.

How to sell affiliate products in your Interspire Shopping Cart store

Here is the simple way I have found to sell affiliate products in your Interspire Shopping Cart store.

First, get the code that your affiliate provides you to add the affiliate products to your website.

Next, go to Add a Product in your Interspire admin panel.

Click the “HTML” button above the box where you type in the product description:

Paste the code from your affiliate into the window that pops up.

Scroll down in the pop up window and click the “Update” button.

You should now see the affiliate product in the Product Description box.

If there is an image for the product, right-click it and save it to your computer. Then delete it from the Product Description and add the image as you would add an image to any other product in your store.

Copy and paste the product name into the correct field, put the product in the correct category on your site, and add the price to the correct field.

Once you have the product listed the way you want, scroll down and UN-check the box next to “Allow customers to purchase this item.”

Save the product and go look at in in your store. It should look just like any other product you would add to the store, except that in order to purchase it, people have to click the affiliate link which you pasted into the product description (this way their clicks from your website to the affiliate site will be tracked, since you are using the code that the affiliate site gave you).

Let me know if you have any issues with this or any questions about it.