Magento: How do I get attribute set name & id?

Whenever you have a product object, you can access its attribute set like this:

$attributeSetModel = Mage::getModel("eav/entity_attribute_set");
$attributeSetName  = $attributeSetModel->getAttributeSetName();
$attributeSetID  = $attributeSetModel->getAttributeSetID();

This will give you the name of the attribute set, which you can then compare using strcmp:

if(0 == strcmp($attributeSetName, 'My Attribute Set') {
    print $product->getAttributeText('attribute');

Hope that helps!

jQuery: How to add ‘onchange’ attribute in a ‘select’ tag?

<select id="sel_id">

Works for me if I use the native setAttribute().

Also, remember that you need quotes around the selector.

$("#sel_id")[0].setAttribute("onchange", "foo()");

the final html will be

<select id="sel_id" onchange="foo();" >

Also remember to define foo in the global namespace, and not inside jQuery’s .ready() function.


Magento Dataflow Export/Import form the command line

One issue with Magento is the overhead involved in importing/exporting data which can cause timeouts when run from the web. Here is a script which will run from the command line….

//THIS SCRIPT JUST INITIALS THE PROFILE TO BE RUN VIA MAGENTO ADMIN "RUN PROFILE IN POPUP". Its the same thing as click just via this file that you can run via cron
$profileId = 8; // SYSTEM - IMPORT/EXPORT - ADVANCED PROFILES <-- you need to go into your magento admin and grab the exact profile ID
require_once 'app/Mage.php';
$profile = Mage::getModel('dataflow/profile');
$userModel = Mage::getModel('admin/user');
if (!$profile->getId()) {
    Mage::getSingleton('adminhtml/session')->addError('ERROR: Incorrect profile id');
Mage::register('current_convert_profile', $profile);
$recordCount = 0;
$batchModel = Mage::getSingleton('dataflow/batch');
echo "EXPORT COMPLETE. BATCHID: " . $batchModel->getId();


Un-Ban Yourself from WHMCS Administration

Here’s how to un-ban yourself:

  1. Log into your cPanel or website database administration panel
  2. Enter phpMyAdmin
  3. Look for a database ending in _whmcs
  4. Browse that database
  5. Browse the table named tblbannedips
  6. Refer to your WHMCS ban notification where it says your banned IP address (such as “Your IP 12.345.12.345″)
  7. Find the entry in the tblbannedips where the ip column matches your IP address
  8. Click the X in that row to delete the ban
  9. Re-access your WHMCS ban-free!


Excel: Excel CEILING Function Tutorial

The CEILING function is used to round a number upwards to the nearest multiple of a specified value.

For example, the function can be used to round up the costs of items to the nearest dime ( $ 0.10 ) to avoid having to deal with smaller change such as pennies ($ 0.01 ) and nickels ($ 0.05 ).

The syntax for the CEILING function is:

= CEILING ( Number, Significance )

Number – the value to be rounded.

Significance – the function rounds the Number specified above up to the nearest multiple of this value.
Example: Using Excel’s CEILING Function

For help with this example, see the image above.

Enter the following data into cells D1 to D3: 34.57, 23.82, 31.16

Click on cell E1 in the spreadsheet – this is where the function will be located.

Click on the Formulas tab of the ribbon menu.

Choose Math & Trig from the ribbon to open the function drop down list.

Click on CEILING in the list to bring up the function’s dialog box.

In the dialog box, click on the Number line.

Click on cell D1 in the spreadsheet.

In the dialog box, click on the Significance line.

Type in 0.10 – the number in D1 will be rounded up to the nearest multiple of 0.10.

Click OK.

The answer 34.60 should appear in cell E1 since 34.60 is the nearest multiple of 0.10
( 0.10 * 6 ) higher than 34.57.

Drag the fill handle in the bottom right corner of cell E1 down to cells D2 and D3 to copy the function to those cells.

The cells D2 and D3 should have the answers 23.90 and 31.20 respectively.

When you click on cell E1 the complete function = CEILING ( D1 , 0.1 ) appears in the formula bar above the worksheet.


Excel: Multiply a range of numbers by a number

Important This procedure replaces the numbers in the range with the result of the multiplication.

In an empty cell, enter the number that you want to multiply by.
Select the cell, and on the Edit menu, click Copy.
Select the range of numbers that you want to multiply.
On the Edit menu, click Paste Special.
Under Operation, click Multiply.
Click OK.
Delete the content of the cell entered in the first step.


Javascript: Making the entire div clickable

We could make an entire div tag clickable by redirecting the click to a page and by changing the cursor sytle to a pointer. This is good if you want your logo or your banner to be clickable, specially if the logo is embedded together with the banner. Making the entire banner clickable would be very beneficial to your site.

<div onclick="location.href='';" style="cursor: pointer;">


Magento: Getting product attributes values and labels

I have found that it is very useful to be able to get attributes from the system and use them in places other than a products category page. I always forget the exact syntax to use so, this is going to be my unofficial cheat sheet.

This is how to get a drop down lists options. I don’t think it will work for a mulit-select attribute. I stick the value/label pairs into an array to use how I please.

Check if website is available or down

Performs a cURL-Request to check, if a website exists / is online

//Cron job comand line: /usr/local/bin/php /home/USERNAME/site-monitor/monitor.php > /dev/null

//returns true, if domain is availible, false if not
function isDomainAvailible($domain) {
	//check, if a valid url is provided
	if(!filter_var($domain, FILTER_VALIDATE_URL)) {
		return false;
	//initialize curl
	$curlInit = curl_init($domain);
	//get answer
	$response = curl_exec($curlInit);
	if ($response) return true;
	return false;

if (!isDomainAvailible('')) {
	echo "Woops, nothing found there.";
	$message = 'Woops, Your site was down on '.date("Y-m-d H:i:s");
	$headers = 'From: [email protected]';
	mail("[email protected]", "Website is down", $message, $headers);
	error_log($message, 0);


Magento: Retrieve attributes by groupId

Problem: how to retrieve product attributes by group id.
See here:

Possible solution:

require_once 'path/to/app_dir/app/Mage.php';
$product = Mage::getModel('catalog/product');
$product->setAttributeSetId('THE ATTRIBUTE SET YOU WANT TO USE');
$collection = $product->getAttributes($groupId, false);
foreach($collection as $attribute){
//do something with the attribute