• 关于Magento 1.6后台订单中无法正常显示产品选项的bug

    环境 Magento 1.6.0.1   及  1.6.1.0

    Magento1.6 下单之后  管理员无法在后台查看客户所选的产品自定义选项,如: 只出现size 选项但没有输出值。 这个小小的bug对卖家的影响可想而知咯。。。。

    这边做一个简单的修改就可以了

    app/design/adminhtml/default/default/template/sales/items/column/name.phtml

    修改约位于44行左右的 代码如下
    <?php else: ?>
    <?php //$_option = $this->getFormattedOption($_option['value']); ?>

    即 注释 对$_option 的重新赋值代码段

    细节这边也不深究了,暂停留于表象吧 :-)

  • Magento产品查看页修改页面标题

    这边以在产品查看页修改标题   添加价格为例

    修改文件 app\code\core\Mage\Catalog\Block\Product\View.php

    找到 _prepareLayout() 函数

    修改代码如下

    //if ($title) {
    //    $headBlock->setTitle($title);
    //}
    $s_price = $product->getPrice();
    if(!$title) $title = $headBlock->getTitle();
    if($s_price) {
    $s_price = strip_tags(Mage::app()->getStore()->formatPrice($s_price));
    $title .= ‘ -  Price ‘.$s_price;
    }
    $headBlock->setTitle($title);

    测试版本 Magento 1.5.0.1  1.6.1.0,至于个中需求,可参考自行调整 :-)

  • Magento模板解决多语言样式问题

    多语言下,样式可能会由于字符串的长短而出现差异

    因此 要解决,不同语言样式差异的问题   直接的思路就是通过判断语言   进而控制 样式

    通过参考 page/switch/language.phtml 及其 所对应静态块中的方法,  我们可以在整体布局的body 标签中添加 不同语言所对应的类名标识, 进而达到控制样式的目的。

    修改模板布局 2columns-left.phtml (当然 ,如果你的模板几个布局都有用到那就都添加一下吧)

    这边直接取序号   $cs_id = Mage::getBlockSingleton(‘page/switch’)->getCurrentStoreId();

    在body 标签的class  中添加特定的类

    1
    <body<?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().' cs-'.$cs_id.'"':'' ?>>

    保存后刷新,切换语言  查看对应的 body类名,书写样式 即可 :-)

  • 根据产品取其自定义属性值

    magento中 使用自定义属性 的频率还是相当高的

    之前 自己做模板的时候  再调用产品的某个自定义属性时是绞尽脑汁  也没找到什么好的方法, 因为对程序逻辑本身缺乏基础和认知,所以只能走一些旁门左道,把产品的所有相关属性提取出来后过滤一次,   这样的效率    可想而知
    不过这边还是做个简单记录吧:
    首先需要一个针对 产品提取 各属性值的 方法, 由于自带的方法包含信息比较多,所以我们需要自己改写 一下
    app\code\core\Mage\Catalog\Block\Product\View 目录下的  Attributes.php 文件,参考getAdditionalData 方法,新建改写以下方法
    public function getMeSetData($t_product)
    {
    $data = array();
    $product = $t_product;
    $attributes = $product->getAttributes();
    foreach ($attributes as $attribute) {
    $value = $attribute->getFrontend()->getValue($product);

    if (!$product->hasData($attribute->getAttributeCode())) {
    $value = Mage::helper(‘catalog’)->__(‘N/A’);
    } elseif ((string)$value == ”) {
    $value = Mage::helper(‘catalog’)->__(‘No’);
    } elseif ($attribute->getFrontendInput() == ‘price’ && is_string($value)) {
    $value = Mage::app()->getStore()->convertPrice($value, true);
    }

    if (is_string($value) && strlen($value)) {
    $data[$attribute->getAttributeCode()] = array(
    ‘label’ => $attribute->getStoreLabel(),
    ‘value’ => $value,
    ‘code’  => $attribute->getAttributeCode()
    );
    }
    }
    return $data;
    }
    方法有了,接下来就是如何调用了
    这边以产品查看页中调用为例:
    $p_attrs = Mage::getBlockSingleton(‘catalog/product_view_attributes’)->getMeSetData($_product);
    这样取出来的是与产品相关的所有属性信息,再对此属性集过滤  提取自己需要的信息。
    foreach($p_attrs as $p_attr => $attr_arr)
    {
    if(strstr($p_attr,’attr_code’)) {
    ……. //自定义操作
    }
    }
    这种,一看就是属于吃力不讨好的事,  不过也算是解决问题的一条笨途径了

     

    偶然的机会在维护的时候,发现以下代码,简洁明了,具体我没去考证就是了

    <?php echo $_product->getResource()->getAttribute(‘attr_code’)->getFrontend()->getValue($_product);

    这就是菜鸟与大神间的差距啊 ~~~~…

  • Magento Maximum Order Amount 设置及解决方法简记

    仿照后台 最低订单价格限制修改

    步骤如下:

    1、编辑

    app/code/core/Mage/Sales/etc/system.xml

    复制minimum_order 配置段,并将相关设置 修改为 maximum_order

    (刷新后台会发现相关设置已经可用, 如未发现请核实修改的配置代码)

    2、编辑功能代码

    app/code/core/Mage/Sales/Model/Quote.php

    相同的,复制并修改validateMinimumAmount  功能函数

    同样 将 min 修改为 max即可

     

    app\code\core\Mage\Sales\Model\Quote\Address.php

    相同的,复制并修改validateMinimumAmount  功能函数

    同样 将 min 修改为 max即可

    此处需注意将 逻辑判断的小于  修改为大于

     

    3、添加功能调用

    app/code/core/Mage/Checkout/controllers/CartController.php

    修改 indexAction 中的提示信息,相同的仿照minimum_amount 进行操作

    app/code/core/Mage/Checkout/controllers/OnepageController.php

    添加逻辑判断 及重定向页面

     

    4、测试使用功能

    完成第一步中的设置后,保存 更新缓存,进入前台页面下单

click
©2010-2024 Jeen All Rights Reserved.Powered by emlog 京ICP备15058100号-1