Magento使自定义属性'免运费'的产品自动添加到指定目录

  • 时间:
  • 浏览:0
作者:匿名 hihi 来源:Sjolzy'blog 浏览: 2011-7-31 14:17:51 字号:大 中 小

[摘要]使用magento如果 通过加进去去产品自定义属性为产品加进去去“免运费”属性,如果 通过一定避免将免运费商品输出到特定目录。

  Magento产品加进去去了个自定义属性Free Shipping(免运费)。要实现当Free shipping属性的值为YES的如果 ,自动把产品指定到一个 多叫Free Shipping的目录。

  前台还如果 避免下,使有这属性值的产品加进去去标识条幅。如图,效果还是挺惹人喜的。

  我的避免方式是,重写app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php这些 文件。

  在_initProductSave方式里的

/**

* Initialize product categories

*/

  这些 步骤加进去去额外避免。

  完全代码为:

// addEd at: 10:20 2011/7/100 by chen@sjolzy.cn

/*

$productData['free_shipping']: 21 yes 20 no

Free Shipping Specials category id: 31

*/

$ifFreeShipping = (int)$productData['free_shipping']===21?true:false;

$freeShippingCategoryId = 31;

// addEd at: 10:20 2011/7/100 by chen@sjolzy.cn

if (null !== $categoryIds) {



if (empty($categoryIds)) {

$categoryIds = $ifFreeShipping?$freeShippingCategoryId:array();

}else{

$categoryIds = explode(',',$categoryIds);

$categoryIds = $this->freeShippingCategoryIdProcess($freeShippingCategoryId,$ifFreeShipping,$categoryIds);

}

$product->setCategoryIds($categoryIds);

}else{ // addEd at: 10:20 2011/7/100 by chen@sjolzy.cn

$categoryIds = Mage::getResourceSingleton('catalog/product')->getCategoryIds($product);

if($categoryIds){

$categoryIds = is_array($categoryIds)?$categoryIds:array($categoryIds);

$categoryIds = $this->freeShippingCategoryIdProcess($freeShippingCategoryId,$ifFreeShipping,$categoryIds);

$product->setCategoryIds($categoryIds);

}

} // addEd at: 10:20 2011/7/100 by chen@sjolzy.cn 

  另外加进去去的freeShippingCategoryIdProcess方式是

protected function freeShippingCategoryIdProcess($freeShippingCategoryId,$ifFreeShipping,$categoryIds){

if(!$ifFreeShipping){

$k = array_search($freeShippingCategoryId,$categoryIds);

if(false!==$k){

unset($categoryIds[$k]);

}

}else{

$categoryIds[] = $freeShippingCategoryId;

}

return implode(',',$categoryIds);

}

  经过测试,达到预期效果,产品设置YES后自动加进去去到free shipping的目录,设置No如果 再收回。

magento下载

本文转自: Sjolzy'blog

sssss
Tags: magento  
责任编辑:mozi