Search This Blog

Wednesday 30 May 2012

Downloadable zip files not working in Magento

If your product has ZIP file as downloadable link then you might have issues after downloading the zip files. Possible Error is "ZIP archive is corrupted".


To fix this issue make the following changes in your Magento .htaccess file

Replace
php_flag zlib.output_compression on

With 
# php_flag zlib.output_compression on

Enjoy :) 

Thursday 24 May 2012

Magento product list AJAX scroll

This infinite Ajax scroll works great as expected for product lists. I really appreciate Pieter for his great work for free.

You can find more info and free extension at http://www.rapidcommerce.eu/blog/2012/05/magento-product-list-ajax-scroll/

It seems latest version available now at : http://www.rapidcommerce.eu/blog/2013/07/magento-product-list-ajax-scroll-v2-0/

Get a list of attribute options from Magento using attribute code

$attribute = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'color');
if ($attribute->usesSource()) {
    $options = $attribute->getSource()->getAllOptions(false);
}

Change magento column count in products grid list for each category

Add the following code into "Custom Layout Update" field for the category that you want change the number of products for each row to be diaplyed

<reference name="product_list">
    <action method="setColumnCount"><count>4</count></action>
</reference>

Refresh the cache and try out !!!!!!!!!

Wednesday 23 May 2012

Set Default filters for the Grid in Magento

To apply default filter for the grid view follow the instructions below:

Open your corresponding grid.php file and look for  the following
protected function _prepareCollection() {

Add the following line of code next to above code

$this->setDefaultFilter(array('featured'=>1));

 In above code ,  "featured" is the name of the field and 1 is the default value to be applied to filter. Also you can add any number of filter in the array with in setDefaultFilter function.




Friday 18 May 2012

Add or Remove Javascripts for specific page in Magento

To Remove JS file:

Layout XML Head reference:
<action method="removeItem"><type>js</type><name>calendar/calendar.js</name></action>

OR

Block Class PHP:
$this->getLayout->getBlock('head')->removeItem('js', 'calendar/calendar.js');

To Add JS file:
$this->getLayout->getBlock('head')->addjs('abc/cdf.js');

Thursday 17 May 2012

Magento: Guidelines to Create Your Extension


Extensions may be developed for a variety of functional areas of Magento as well as for interfacing with 3rd party web applications.

Below, we highlight several guidelines regarding creating your extension. More detailed information can be found in the downloadable development and style guidelines listed on this page.

Pricing
Prices should be accurate and reflect the fair market value of the extension. If the extension is offered on the developer’s site as well as on Magento Connect, no pricing discrepancy is allowed. Any free extension shall be available to download directly from Magento Connect. You may not use Magento Connect free extensions to market other products and services.
Paid Extensions
A paid extension for Magento Community, Magento Professional or Magento Enterprise must contain a direct link to the extension itself listed on Magento Connect. This page must include detailed information about the extension, including price, warranty, support, and contact information. Your company homepage or other products not related to this specific extension cannot serve as a direct link.
Enterprise Extensions
Developers who are members of Magento’s Partner Groups, Solutions Partners or Industry Partners, may designate their extensions as “Enterprise Edition” extensions.  In you are not a Partner, you may not use the word “Enterprise” or “EE” in your extension name, nor may you include any reference to Enterprise Level or Magento Enterprise. To learn about the Magento Partner Programs, click here.
Use of Magento Logo in your Extension Images
You can use a small Magento Logo on your extension icon, but it must be absolutely clear that the extension was not developed by Magento.
Naming Your Extension
Do not use the word Magento in your extension title, domain name or user name. Sub domain or /directory may include the word Magento.
Extension Packaging
Each submitted Magento extension needs to be packaged prior to submission.
Installing Extension
Installing and uninstalling procedures can be found in the Extension Guidelines including common installation errors and managing extensions.
Approval Process
Duing the approval process, developers should track the status of their submitted extensions in their Magento account. Once you have submitted your extension, your status will change from Pending to Submitted. If you have submitted your extension and it is listed as Pending this means there was a problem with your extension. The majority of extensions listed as Pending happen due to the extension not being packaged correctly or meeting the Design Guidelines. If your extension meets all the guidelines and is listed as Pending, you may contact the Magento Conenct team at connect@magento.com to further discuss the issue.
General
Magento Connect is designed as an extension marketplace, not as a general directory of complimentary products and services.  We do not allow the selling of services related or unrelated to Magento products.
 

Tuesday 15 May 2012

Add Multiple Select field / attribute to filter in Magento

 


Using addAttributeToFilter() with a multi-select attribute:

$this->_productCollection->addAttributeToFilter("stv_school", array("finset" => $allowedSchool);

OR

$allowedSchools = array(
  array(
    "finset" => array(348)
  ),
  array(
    "finset" => array(350)
  ),
);$this->_productCollection->addAttributeToFilter("stv_school", $allowedSchools);
Reference URLs:

Manage Cron Job using Putty


  1. Login to SSH via Putty
  2. Type crontab –e
  3. Use “I” for insert
  4. Make the necessary changes
  5. Press Escape
  6. Type :q (to quit without any changes)
  7. Type  :wq (to save changes and quit)
Disable CRON error emails: Add the following at the top of the Cron file
MAILTO=""

For more info Click Here

See the list of CRON process IDs:  pgrep crond

Cron Status: service crond status
Stop the Cron: /etc/init.d/crond stop
Start the Cron: /etc/init.d/crond start
Restart the Cron: /etc/init.d/crond restart 

Kill the Process by PID: kill PID

Get PID by Process name: pidof lighttpd

 
 

Thursday 10 May 2012

Magento 1.7.0.0 installing errors

The latest Magento installation is producing errors due to following tables are not created when importing sample data in Database.
  1. tag
  2. tag_relation
The issue will be fixed if you manually create the tables by copying the sql queries from sample data SQL file.

Wednesday 9 May 2012

Generating Bulk Coupon codes in Magento 1.7.0.0

Generating Bulk Coupon codes feature is now available in Magento 1.7.0.0. This feature allows the merchants to create bulk coupon codes with same rules and conditions in one click. Previously merchant needs to add the same rules and conditions multiple times if they want to create multiple coupon codes. This feature saves a lot of time of administrator.

Here are the detailed instruction on how to use it!!!
  1. Login to admin section and navigate to "Promotions" => "Shopping Cart Price Rules"
  2. Click on "Add New Rule" button
  3. Under "Rule Information"tab select "Coupon" as "Specific Coupon"
  4. Then you will see "Use Auto Generation" check box below "Coupon Code" Field
  5. Check the "Use Auto Generation" check box and fill the other information required for coupon
  6. Then click on "Save and Continue" button
  7. Now you will see new tab on left side "Manage Coupon Codes" click on it
  8. Under "Coupons Information" sub section enter the details and click on "Generate" button
    1. For default settings navigate to "System" => "Configuration"
    2. Click on "Promotions" link in left side bar under "Customers" sub heading In content section 
    3. "Auto Generated Specific Coupon Codes" you can set the default values rather than entering the details every time
  9. The coupon codes will be generated and listed under a grid ( below Coupons Information section)
  10. That's all you are done! 


Monday 7 May 2012

Magento Javascript Validation Classes

Magento Javascript Validation Classes

There are many more validation classes you can assign and I list them here as a reference. For more information on this please use Google, experiment with the code or contact me via my email or the contact form.

validate-select

Please select an option

required-entry

This is a required field

validate-number

Please enter a valid number in this field

validate-digits

Please use numbers only in this field. please avoid spaces or other characters such as dots or commas

validate-alpha

Please use letters only (a-z or A-Z) in this field.

validate-code

Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.

validate-alphanum

Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed

validate-street

Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field

validate-phoneStrict

Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890

validate-phoneLax

Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890

validate-fax

Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890

validate-date

Please enter a valid date

validate-email

Please enter a valid email address. For example johndoe@domain.com.

validate-emailSender

Please use only letters (a-z or A-Z), numbers (0-9) , underscore(_) or spaces in this field.

validate-password

Please enter 6 or more characters. Leading or trailing spaces will be ignored

validate-admin-password

Please enter 7 or more characters. Password should contain both numeric and alphabetic characters

validate-cpassword

Please make sure your passwords match

validate-url

Please enter a valid URL. http:// is required

validate-clean-url

Please enter a valid URL. For example http://www.example.com or www.example.com

validate-identifier

Please enter a valid Identifier. For example example-page, example-page.html or anotherlevel/example-page

validate-xml-identifier

Please enter a valid XML-identifier. For example something_1, block5, id-4

validate-ssn

Please enter a valid social security number. For example 123-45-6789

validate-zip

Please enter a valid zip code. For example 90602 or 90602-1234

validate-zip-international

Please enter a valid zip code

validate-date-au

Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006

validate-currency-dollar

Please enter a valid $ amount. For example $100.00

validate-one-required

Please select one of the above options.

validate-one-required-by-name

Please select one of the options.

validate-not-negative-number

Please enter a valid number in this field

validate-state

Please select State/Province

validate-new-password

Please enter 6 or more characters. Leading or trailing spaces will be ignored

validate-greater-than-zero

Please enter a number greater than 0 in this field

validate-zero-or-greater

Please enter a number 0 or greater in this field

validate-cc-number

Please enter a valid credit card number.

validate-cc-type

Credit card number doesn\’t match credit card type

validate-cc-type-select

Card type doesn\’t match credit card number

validate-cc-exp

Incorrect credit card expiration date

validate-cc-cvn

Please enter a valid credit card verification number.

validate-data

Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.

validate-css-length

Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%

validate-length

Maximum length exceeded

Allow zero price in "Tier Price" of product edit in Magento

 Allow zero price in "Tier Price" of product edit section in administration
Open:  \app\design\adminhtml\default\default\template\catalog\product\edit\price\tier.phtml file and replace the validation class "validate-greater-than-zero" with "validate-not-negative-number" so that field will allow zero and positive numbers.

 In User Section: If you want to show Free text next to the item.
In \app\design\frontend\base\default\template\catalog\product\price.phtml file add following script below  <?php endif; /* if ($_finalPrice == $_price): */ ?> to display "Customer Group: Free" text below the price.

      <?php $prdData = $_product->getData(); if(isset($prdData['tier_price']) and $prdData['tier_price'] != '' and $prdData['tier_price'] == 0): ?>
        <span class="minimal-price-link">
            <span class="label"><?php echo $this->__('Customer Group Price:') ?></span>
            <span class="price" id="product-minimal-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">Free</span>
        </span>
    <?php endif; ?>

Wednesday 2 May 2012

Display date in specified format in Magento

Display date in specified format in Magento

Mage::helper('core')->formatDate($date, $format, $showTime=false)

Argument 1: Date that you want change the format (This may be database driven or manual)
Argument 2: Date format: short, long, medium, full
Argument 3: Show Time: True to display time and false to not display time