Shipping Method Development: Dropdown and Default Setting on Cart Page

Shipping methods are very important while building large Magento ecommerce sites. Here we are discussing how to show a shipping method drop down in the cart totals and how to set a default shipping method in cart page. One of the best methods to perform this is described here.

Screenshot of the module output


(Shipping Dropdown Cart Page)

The currently used module is Excellence_Shipdrop. This module can be explained by following steps:

Adding dropdown to cart pages

Firstly, a dropdown is added in place of the default Magento shopping cart shipping total display. This can be carried out finely in your config.xml files as follows:

<global>
<sales>
<quote>
<totals>
<shipping>
<class>shipdrop/sales_quote_address_total_shipping</class>
<renderer>shipdrop/checkout_total_shipping</renderer>
</shipping>
</totals>
</quote>
</sales>
</global>

Here the value of the <renderer> tag must be noticed. In this module, I have added path to a block class. The <renderer> tag specifies the block class that Magento ecommerce development should use to display the shipping cart totals. Below given code is used inside the block class:

<?php
class Excellence_Shipdrop_Block_Checkout_Total_Shipping extends Mage_Checkout_Block_Total_Default
{
protected $_template = ‘shipdrop/checkout/total/shipping.phtml’;
}

This code is and specifies the path of the template file. The code in shipdrop/checkout/total/shipping.phtml template file is:

<tr>
<th colspan=”2″ style=”<?php echo $this->getTotal()->getStyle() ?>”>
<?php
$block = $this->getLayout()->createBlock(‘checkout/cart_shipping’);
$block->setTemplate(‘shipdrop/checkout/total/shipping/dropdown.phtml’);
echo $block->_toHtml();
?>
</th>
</tr>

While the code in the file shipdrop/checkout/total/shipping/dropdown.phtml is:

<?php if (($_shippingRateGroups = $this->getEstimateRates())): ?>
<form id=”co-shipping-method-form-drop” action=”<?php echo $this->getUrl(‘checkout/cart/estimateUpdatePost’) ?>”>
<select id=’drop_estimate_method’ name=”estimate_method”>
<option value=’-1′>Please Select Shipping Method</option>
<?php
foreach ($_shippingRateGroups as $code => $_rates) {
$str = $this->getCarrierName($code);
foreach ($_rates as $_rate){
$str2 = $str . ‘ – ‘ . $_rate->getMethodTitle();
$_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper(‘tax’)->displayShippingPriceIncludingTax());
$_incl = $this->getShippingPrice($_rate->getPrice(), true);
$str2 .= ‘ ['. $_excl;
if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl) {
$str2 .= ' '. $this->__('Incl. Tax'); echo $_incl;
}
$str2 .= '] ‘;
?>
<option <?php if($_rate->getCode()===$this->getAddressShippingMethod()) echo ‘ selected=”selected”‘ ?> value=”<?php echo $this->htmlEscape($_rate->getCode()) ?>”><?php echo $str2;?></option>
<?php }
} ?>
</select>
</form>
<script type=”text/javascript”>
document.observe(“dom:loaded”, function() {
$(‘drop_estimate_method’).observe(‘change’,function(){
if($(‘drop_estimate_method’).getValue() == -1){
alert(‘Please Select Shipping Method’);
}else{
$(‘co-shipping-method-form-drop’).submit();
}
});
});
</script>
<?php endif; ?>

Drop down is generated by the above code.

We also have to make changes to the Magento shopping cart shipping totals collector class, as by default if shipping amount is zero no totals show up. So we need to make a change in the collector class to show totals even when shipping amount is zero. So the following code must be added to the class which we mentioned in the config.xml file shipdrop/sales_quote_address_total_shipping:

<?php
class Excellence_Shipdrop_Model_Sales_Quote_Address_Total_Shipping extends Mage_Sales_Model_Quote_Address_Total_Shipping{
public function fetch(Mage_Sales_Model_Quote_Address $address)
{
$amount = $address->getShippingAmount();
$title = Mage::helper(‘sales’)->__(‘Shipping & Handling’);
if ($address->getShippingDescription()) {
$title .= ‘ (‘ . $address->getShippingDescription() . ‘)’;
}
$address->addTotal(array(
‘code’ => $this->getCode(),
‘title’ => $title,
‘value’ => $address->getShippingAmount()
));
return $this;
}
}

Now the shipping method dropdown for Magento ecommerce development should show-up in totals. The problem to be fixed now is that, when a product is first added to shopping cart no country is selected by user hence no shipping method will show up. So a code must be added to select the shipping country by default.

Setting shipping country by default

The codes incorporated for this purpose are:

<events>
<controller_action_predispatch_checkout_cart_index >
<observers>
<preIndex>
<class>shipdrop/observer</class>
<method>setShipping</method>
</preIndex>
</observers>
</controller_action_predispatch_checkout_cart_index>
</events>

This event is execute before the indexAction() of CartController is called. The code included in the setShipping() method to select a default country is:

<?php
class Excellence_Shipdrop_Model_Observer {
public function setShipping($evt){
$controller = $evt->getControllerAction();
if(!Mage::getSingleton(‘checkout/type_onepage’)->getQuote()->getShippingAddress()->getCountryId() && Mage::getSingleton(‘checkout/type_onepage’)->getQuote()->getItemsCount()){
$country_id = ‘IN’;
$region_id = false;
$country = Mage::getModel(‘directory/country’)->loadByCode($country_id);
$regions = $country->getRegions();
if(sizeof($regions) > 0){
$region = $regions->getFirstItem();
$region_id = $region->getId();
}
$customerSession=Mage::getSingleton(“customer/session”);
if($customerSession->isLoggedIn()){
$customerAddress=$customerSession->getCustomer()->getDefaultShippingAddress();
if($customerAddress->getId()){
$customerCountry=$customerAddress->getCountryId();
$region_id = $customerAddress->getRegionId();
$region = $customerAddress->getRegion();
$quote = Mage::getSingleton(‘checkout/type_onepage’)->getQuote();
$shipping = $quote->getShippingAddress();
$shipping->setCountryId($customerCountry);
if($region_id){
$shipping->setRegionId($region_id);
}
if($region){
$shipping->setRegion($region);
}
$quote->save();
$controller->getResponse()->setRedirect(Mage::getUrl(‘*/*/*’,array(‘_current’=>true)));
}else{
$quote = Mage::getSingleton(‘checkout/type_onepage’)->getQuote();
$shipping = $quote->getShippingAddress();
$shipping->setCountryId($country_id);
if($region_id){
$shipping->setRegionId($region_id);
}
$quote->save();
$controller->getResponse()->setRedirect(Mage::getUrl(‘*/*/*’,array(‘_current’=>true)));
}
}else{
$quote = Mage::getSingleton(‘checkout/type_onepage’)->getQuote();
$shipping = $quote->getShippingAddress();
$shipping->setCountryId($country_id);
if($region_id){
$shipping->setRegionId($region_id);
}
$quote->save();
$controller->getResponse()->setRedirect(Mage::getUrl(‘*/*/*’,array(‘_current’=>true)));
}
}
}
}

The above code can also be easily extended to set a default shipping method as well. Just add a single line of code before $quote->save()

$quote->setShippingMethod(‘flatrate_flatrate’);
$quote->save();

Conclusion

This post outlined the steps involved in shipping method development. You can now go ahead and use or adapt this for use in your own applications. Hopefully this post will be useful for anyone dealing with shipping rates.

Reward Points Functionality of Magento EE

Magento Enterprise is a powerful and flexible eCommerce platform. However, as Magento adoption rapidly increases, there are retailers who require more than the Magento developers can provide.

Works on Magento’s Reward Points Functionality

Recently, I have worked on Magento’s Reward Points functionality. Our work on Magento development included a little bit of custom coding in order to bring about the usage of reward points in X percent of total checkout value.

I was panicked while dealing with Magento checkout as the time consumption for this was unknown. After detailed study a quick solution was obtained. The solution to this problem was including the method that returns the reward points balance and fake the reward points using the logic “use reward points in X percent of total (subtotal) checkout value”.

Drawbacks

Faking the amount of reward points will fake the amount throughout the site. We just wanted to fake it throughout the checkout process until we create a successful order.
It will be difficult for me to give you a detailed code overview. But I can give details of what I have coded.

First of all let’s rewrite the Enterprise_Reward_Model_Reward class trough modules config.xml files.
<global>
<models>
<enterprise_reward>
<rewrite>
<reward>Inchoo_MyModule_Model_Reward</reward>
</rewrite>
</enterprise_reward>
</models>
</global>

After this you need to implement Inchoo_MyModule_Model_Reward.

class Inchoo_MyModule_Model_Reward extends Enterprise_Reward_Model_Reward
{
public function getPointsBalance()
{
$request = Mage::app()->getRequest();

if ($request->getModuleName() == ‘checkout’) {
if (($quote = Mage::getModel(‘checkout/session’)->getQuote())) {
$totals = $quote->getTotals();
$cartTotal = floor($totals["subtotal"]->getValue());
if ($cartTotal > 0) {
$rpPercent = 23; /* some integer value representing percent, could read this trough some config */

$rpAllowedMax = $cartTotal * ($rpPercent / 100);
$rpAllowedMax = floor($rpAllowedMax);

if ((int)$this->getData(‘points_balance’) >= $rpAllowedMax) {
return $rpAllowedMax;
}
}
}
}

return $this->getData(‘points_balance’);
}
}

In all these the best part is getPointsBalance() method. This method doesn’t exist in the parent class. This is a Magento/PHP magic method implemented trough Varien_Object. By implementing this method a control over the returned balance value is achieved, while still being able to fetch the true non-touched value of points_balance by calling the $reward->getData(‘points_balance’) later in the code.

Finally, we limit the special “use reward points in X percent of total (subtotal) checkout value” function behavior to “checkout” module by usage of if($request->getModuleName() == ‘checkout’). It can even be limited to a controller action level. Everything must be tested to prevent breaking of the calls to $reward->getPointsBalance() on places that should not implement the above logic.

The default message for Reward Points shown on the Payment step of the checkout can be changed as shown below:

<?php echo Mage::helper(‘enterprise_reward’)->__(‘Use my reward points, %s available out of %d total’, Mage::helper(‘enterprise_reward’)->formatReward($this->getPointsBalance(), $this->getCurrencyAmount()), $this->getReward()->getData(‘points_balance’)); ?>

Conclusion

Even though my approach was not the best, still it strikes the right balances between “do it on time and do it stable”. I hope that this post gave you an idea of how Magento EE uses the reward point’s functionality.

Tips on Choosing the Best Magento Solution Partner

Finding the Complete Magento Solution Partner

The search for a reliable Magento Solution Partner can very well be compared to the search for a life partner, since reliability, honesty and that undeniable vibe are common elements in both cases. Small and medium enterprises, agencies and storeowners have sought out a Magento storefront that could do wonders for their business from time to time, but all have not been lucky. Web development interactive agency EyeMagine has pointed towards certain factors that one should keep in mind when seeking out the right Magento Solution Partner.

1. Design – Design is perhaps the most important element to complete an ecommerce site. A poorly designed ecommerce site can never hope to attract or retain customers, but instead can waylay their buying decisions. A well-organized and neatly designed ecommerce site on the other hand, can influence a buyer positively and even bring him back later.

Good solid design and enhanced user experience are very important for a successful ecommerce website.

2. Customized Features – Features on an ecommerce site are as important as the design, if not more so. Magento offers some really useful features, to which you can even add some new features, and it’s vital for you to know how. Here are some instances of customizations that can be made to your Magento web development:

  • Blog postings
  • PR management system
  • Invoice based sales reports
  • Product organizer

3. Theme – A customized theme can give your ecommerce site great mileage if it reflects your business idea. Magento has several templates and themes, one of which would be your default theme. This theme can be overridden by a new theme that you could create to enhance your site.

4. Payment Gateway – Since Magento supports online transactions, you can choose from a payment gateway like Authorize.net or PayPal that can be integrated into Magento’s platform.

If you are opting for Magento development in India, you can be rest assured that Indian developers will take care of all these above mentioned points.

Magento Integration – Adding Customer Credit Feature on Your Stores

It’s a good idea to hire a Magento extension developer that can suggest you to use the extension for using the credit units along with other forms of payments on your web stores.

How Magento Customer Credit Extension Is Beneficial

The Magento customer credit extension can help in improving the overall customer experiences. If you do not have the option to use credit units in your online stores, you can ask your Magento extension developer to have it added. With Extension v1.5.0 update, customers can purchase the credits by signing in to their accounts. Alternatively, you can even promote it as standalone product on your home page.

You can assign one credit point for one equivalent base currency of your choice. Such Magento integration allows for easy reporting system, were the site admin can get a complete report on the back-end. You could keep track of credit balances quite easily. You might have to create a page to explain the terms and conditions of buying and using the credits, but it is a one-time task.

Integrating Magento

With this Magento integration, you can make the credits applicable on the checkout section according to your marketing strategies. For example, you can let your customers purchase products using those credits, or you can save the shipping charges through these credits.

You could also process the refund requests through the credit points. In a way, you will still have a certain level of binding with your existing customers by introducing this policy. You can also use credit units for one-off promotions and discount offers too.

Get Customised Tab for Magento Ecommerce Solution

The changes in product features and value of these attributes could be modified via the Product edit page in the Magento Ecommerce solution. A business user shall find it doable if he is looking to edit the standard attributes only but in case of a new product attribute, it needs to be done with some difference.

The course through which a Magento custom module could be created for adding a new tab in the product edit page and offer the functionality of data processing, when a user saves his data.

According to our Magento extension developers, the first step requires creation of a setup file for extension, which will assist in loading of extension in the Magento.

app/etc/modules/Fishpig_Customtabs.xml
<?xml version=”1.0″?>
<config>
<modules>
<Fishpig_Customtabs>
<active>true</active>
<codePool>local</codePool>
</Fishpig_Customtabs>
</modules>
</config>
The corresponding file required is the extension’s configuration file. It is a more comprehensive setup file that has got cues about extension classes, layout files and rest of the information to work it out.  Take cognizance of the events section in the following file. The event is triggered to save the product data, whenever a product is added in admin. This event helps to process and save the data, when data is created in the tab.
app/code/local/Fishpig/Customtabs/etc/config.xml
<?xml version=”1.0″?>
<config>
<modules>
<Fishpig_CustomTabs>
<version>0.1.0</version>
</Fishpig_CustomTabs>
</modules>
<global>
<blocks>
<customtabs>
<class>Fishpig_Customtabs_Block</class>
</customtabs>
</blocks>
<models>
<customtabs>
<class>Fishpig_Customtabs_Model</class>
</customtabs>
</models>
</global>
<adminhtml>
<layout>
<updates>
<customtabs>
<file>customtabs.xml</file>
</customtabs>
</updates>
</layout>
<events>
<catalog_product_save_after>
<observers>
<fishpig_save_product_data>
<type>singleton</type>
<class>customtabs/observer</class>
<method>saveProductTabData</method>
</fishpig_save_product_data>
</observers>
</catalog_product_save_after>
</events>
</adminhtml>
</config>

app/code/local/Fishpig/Customtabs/Block/Adminhtml/Catalog/Product/Tab.php

/**
* Determines whether to display the tab
* Add logic here to decide whether you want the tab to display
*
* @return bool
*/
public function canShowTab()
{
return true;
}

/**
* Stops the tab being hidden
*
* @return bool
*/
public function isHidden()
{
return false;
}

/**
* AJAX TAB’s
* If you want to use an AJAX tab, uncomment the following functions
* Please note that you will need to setup a controller to recieve
* the tab content request
*
*/
/**
* Retrieve the class name of the tab
* Return ‘ajax’ here if you want the tab to be loaded via Ajax
*
* return string
*/
#   public function getTabClass()
#   {
#       return ‘my-custom-tab’;
#   }

/**
* Determine whether to generate content on load or via AJAX
* If true, the tab’s content won’t be loaded until the tab is clicked
* You will need to setup a controller to handle the tab request
*
* @return bool
*/
#   public function getSkipGenerateContent()
#   {
#       return false;
#   }

/**
* Retrieve the URL used to load the tab content
* Return the URL here used to load the content by Ajax
* see self::getSkipGenerateContent & self::getTabClass
*
* @return string
*/
#   public function getTabUrl()
#   {
#       return null;
#   }

}
the above mentioned code is the main code for creating the tab. The extension of the file is Mage_Adminhtml_Block_Template making it an ordinary Adminhtml template and is not capable of doing enough. The tab block has the capacity of extending any block file within Magento. This file is incapable of doing anything itself, so we should include it in a XML layout file.
app/design/adminhtml/default/default/layout/customtabs.xml
<?xml version=”1.0″?>
<layout>
<adminhtml_catalog_product_edit>
<reference name=”product_tabs”>
<action method=”addTab”>
<name>my_custom_tab</name>
<block>customtabs/adminhtml_catalog_product_tab</block>
</action>
</reference>
</adminhtml_catalog_product_edit>
</layout>

The coding may look very basic but its imperative to be done because in its absence nothing could be seen modified on the product edit page.
The conclusive coding that needs to be done before the whole procedure could be deemed ended  includes creating a new template file.
app/design/adminhtml/default/default/template/customtabs/catalog/product/tab.phtml
<?php
/**
* Custom tab template
*/
?>
<div>
<label for=”custom_field”>Custom Field</label>
<input type=”text” name=”custom_field” id=”custom_field” />
</div>
A lot of other options could too be availed by using these codes and a block from your end.
Testing the Custom Tab: To see the tab that you created, you should first refresh your cache and visit the product edit page to witness it.  If there appears to be a problem than you can review the XML once again as a minor error too can be responsible for this glitch.
Saving the data: once the tab is ready, a look inside the data processing of the tab needs to be checked. To check the data, you should hook onto an event called catalog_product_save_after (see config.xml above). This event is repeated every time a product model is saved. An observer for this event  should be  declared  in the adminhtml block, the code will be triggered directly after saving the product model in admin of Magento.
app/code/local/Fishpig/Customtabs/Model/Observer.php
<?php

class Fishpig_Customtabs_Model_Observer
{
/**
* Flag to stop observer executing more than once
*
* @var static bool
*/
static protected $_singletonFlag = false;

/**
* This method will run when the product is saved from the Magento Admin
* Use this function to update the product model, process the
* data or anything you like
*
* @param Varien_Event_Observer $observer
*/
public function saveProductTabData(Varien_Event_Observer $observer)
{
if (!self::$_singletonFlag) {
self::$_singletonFlag = true;

$product = $observer->getEvent()->getProduct();

try {
/**
* Perform any actions you want here
*
*/
$customFieldValue =  $this->_getRequest()->getPost(‘custom_field’);

/**
* Uncomment the line below to save the product
*
*/
//$product->save();
}
catch (Exception $e) {
Mage::getSingleton(‘adminhtml/session’)->addError($e->getMessage());
}
}
}

/**
* Retrieve the product model
*
* @return Mage_Catalog_Model_Product $product
*/
public function getProduct()
{
return Mage::registry(‘product’);
}

/**
* Shortcut to getRequest
*
*/
protected function _getRequest()
{
return Mage::app()->getRequest();
}
}
This code may not have anything to do with the data but the process of accessing it is evident from these codes.

Finishing touches:

The extension that we’ve just discussed  is a basic extension with the option of limitless customization in the product edit page of Magento admin. Other sections of Magento could also be customized by this extension like categories, customers etc.

How to Change and Customize Magento Code?

If you want your Magento’s code to be changed a bit to get fitted into your organization then below are the guidelines that will help you separate your code from the main code.

  • Skill level: Beginning to Advanced developer.
  • Target Audience: Developers who need to customize PHP Code.
  • Tested with Magento versions:

1. 0.6.14100 (BETA)
2. 0.7.14800 (BETA)
3. 1.1.6

  • Applicable for all Magento versions (1.1.x and older).

Subversion

Subversion (SVN) or CVS tool works as the best way to monitor your changes. The use of branches for the base Magento code will keep your customized files from being deliberately overwritten whenever you give an update to Magento.

Upgrading to a Newer Version

Upgrade your own SVN repository with the latest version! Subversion and CVS keeps track of the new files, updates and deletes. Don’t just download and extract a new version otherwise you will miss the key files deletes and config file deletes.

Custom Modules

Most probably you would like to create a module that shows your company to hold all your particular changes.

Blocks

Edit app/code/local/XyzCorp/Catalog/etc/config.xml

  • Add a “blocks” tag, or edit inside the available blocks tag, as per your XML file
  • Add a rewrite tag right after module name. This is “catalog” in this case
  • Include the word “breadcrumbs”
  • The name of “breadcrumbs” helps Magento discover Block class you wish to extend

Besides, if you are having more levels below the Block directory, add it on that tag, by making use of underscores so that it can get separated from the class file name.

SynapseIndia is a leading Magento web development company that offers Magento customization services and solutions to its clients worldwide.

Magento: Sort Newest products by ‘created date’and ‘new from date’

Well, through this write-up, I will let you know about an extension that enables the catalog to be sorted by the newest products. The extension is known as EWTechnologies_SortByNewest, and came to my notice when the toolbar was debugged for not displaying the pagination links. I had a deep look into it and was taken aback to find it overriding the default.

Mage_Catalog_Block_Product_List_Toolbar class but extending from Mage_Page_Block_Html_Pager.

The Mage_Eav_Model_Config class was completely overridden. This one was greatly changed in the Magneto’s later versions, so the override executes very old code. I found it very dangerous to keep albeit there weren’t any other visible detrimental effects. It is definitely not the best way to sprint obsolete code in any case.

I decided this feat does not need overriding as much as core code does; therefore I looked into it more deeply and came out with the solution that wasn’t too tough and did not entail overriding any core code per se.

Here is the code to sort/order product by both created date and new from date:-
$todayDate  = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);

$collection = Mage::getModel(‘catalog/product’)
->getCollection()
->addAttributeToFilter(‘news_from_date’, array(‘date’ => true, ‘to’ => $todayDate))
->addAttributeToFilter(‘news_to_date’, array(‘or’=> array(
0 => array(‘date’ => true, ‘from’ => $todayDate),
1 => array(‘is’ => new Zend_Db_Expr(‘null’)))
), ‘left’)
->addAttributeToSort(‘news_from_date’, ‘desc’)
->addAttributeToSort(‘created_at’, ‘desc’);

Conclusion

This approach functions on any Magento CE version more than 1.4 and PE and EE versions. The standalone problem arising out of it relates to a future Magento upgrade that upgrades created_at attribute, it gets quite easy to reapply the database edits for restoring functionality simpler than troubleshoot problems with core code overrides.

SynapseIndia delivers quality Magento development services through its extensively experienced Magento professionals who are result-oriented.

Give Your Business and Products Facebook connection

Based on open source technology, Magento is one of the most-preferred CMS that allows for the better functionality and flexibility. It allows online merchants to better manage their e-commerce store. The open source technology helps in developing small & large business sites, and Magento works as one of the best platform for ecommerce development. This is an excellent option for all the online merchants, thanks to functional platform & user-friendliness. Since this CMS has been surfaced around the web it has been adopting & integrating new modules and extensions.
Now, it has come to support the latest “Want” and “Own” Facebook buttons that help drive social based traffic for all Magento online stores. As we all know that Facebook now works as a superb excellent marketing tool for your online store. And with the inclusion of these social buttons, the merchants can grow the strength of their business to great extent. These social buttons are easy to install on catalog and product pages. Plus, they come like a Magento core extension for Magento Community and Enterprise.
These buttons let customers express themselves better than ever by including items they “Want” on their Facebook pages for all to view as well as purchase them. Besides, there is also facility of adding Facebook profiles and Wish lists.
The “Own” button makes the marketing organic, as consumers show items they pride of owning. Your customers start acting as an extension of your marketing efforts since they can now answer questions, suggest products and write products’ reviews.
The first ecommerce platform that is; Magento allows incorporation for the “Want” and “Own” buttons through the Facebook Open Graph 2.0 extension.
So, give your business and your products the latest Facebook connection! For all these solutions, SynapseIndia proves to be your best mate, as from here you can hire a Magento developer who is very adept at Magento customization of any module or extension.

Magento & AspDotNetStorefront Data Feed Services: Increase Traffic & Generate Sales

If you’re an online merchants and making use of Magento commerce & AspDotNetStorefront e-commerce platforms, the new product data feed submission service could be of high use for you. The service allows for an automated and daily submission of product data to the shopping search engines with a view to driving traffic and generating sales on the website of the retailers.

The advanced & avant-garde data feed engine goes through product data from the catalog of the merchant making use of a product data export script copied to the web server of  store. Utilizing the raw data created by this script, the system, thereafter, is able to create more than 20 different feed formats. The feeds are easy-to-set up online but for

The submission of these product feeds enables online retailers to gain free clicks from shopping engines that don’t charge for listings, like Bing Shopping, TheFind, Google Product Search, and GoShopping. Cost-per-click advertising could be carried out in other key shopping channels such as PriceGrabber/Yahoo Shopping, NexTag, Shopping.com, Shopzilla, etc.

In addition to all these, the feed service renders a lot of attributes for the optimization of product listings. Other product features such as: manufacturer part number, brand and category, could be submitted for augmented search engine ranking. Product listings could automatically be divided into variations for each color and size. Moreover, products links could be incorporated with 3rd party analytics tools such as Google Analytics. So, the above-mentioned features of the product are new gems added into Magento. It will help provide the Magento SEO expert to make a niche in the online world.

Magento ExactTarget Integration: Facilitating Better Online Retailer & Consumer Communication

Magento-Exact Target integration that has been introduced by Metrics Marketing Group, an analytics-driven database marketing and interactive services firm; is seeming to be the next big thing in global ecommerce scenario. This integration is means to enable merchants to create, deploy & track transactional emails. And this can be done straight from the Magento platform. By introducing this new phenomenon to the Magento driven ecommerce industry, the company has become the first in the group of Magento development community to produce something truly remarkable like Exact Target.

Exact Target Integration: Exceptionally Beneficial For Online Merchants:

Magento Exact Target integration is targeted to the merchants who are selling their products and services using a Magento powered platform. This integration will help them to facilitate their customers with better shopping experience. This integration will help the merchants to deliver targeted, relevant emails based on behavioral and transactional data of their respective customers. With this functionality, merchants can address abandoned shopping carts by employing highly effective and engaging emails to customers automatically. The integration offers more than 29 different triggered emails including newsletters, new order, order update, shipment update and more.

The main motto behind creating this highly acclaimed integration is to help the merchant creating precise triggered and transactional emails. The award winning email platform of Exact Target helps the merchants to do the tasks in a better way. Exact Target is in a process of undergoing regular up-gradations, however, it is now available for Magento community, professionals and enterprises. With the introduction of Magento Exact Target integration, it can be believed that online retailers will experience “one-of-a-kind” customer relationship and both retailers & customers will enjoy improved interaction.