magento getCarriers 分析
完整的设置订单追踪信息的时候我们可能会用到它。在后台中他在这里设置:
有的时候我们想要设置自己定义的 carrier 比如 顺丰 申通 圆通 。。等等
我们能够先从 magento api 入手分析
我们调用 magento api —-> order_shipment.getCarriers
能够去查找 api 函数 在 app\code\core\Mage\Sales\Model\Order\Shipment\Api.php
public function getCarriers($orderIncrementId)
{
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
/**
* Check order existing
*/
if (!$order->getId()) {
$this->_fault('order_not_exists');
}
return $this->_getCarriers($order);
}
追踪 _getCarriers 方法
protected function _getCarriers($object)
{
$carriers = array();
$carrierInstances = Mage::getSingleton('shipping/config')->getAllCarriers(
$object->getStoreId()
);
$carriers['custom'] = Mage::helper('sales')->__('Custom Value');
foreach ($carrierInstances as $code => $carrier) {
if ($carrier->isTrackingAvailable()) {
$carriers[$code] = $carrier->getConfigData('title');
}
}
return $carriers;
}
即 都会有个默认的 custom
之后的都是通过 Mage::getSingleton(‘shipping/config’)->getAllCarriers() 获取的
追踪方法 getAllCarriers() 事实上就是循环config中的 carriers 比如这里面就有magento 自带的freeshipping
和 flatrate 等方法。 可是 要想显示到返回的 $carriers 中须要 isTrackingAvailable 为true
我们事实上能够在上面代码中打印你每个 $carrier 的类名 找到调用的 isTrackingAvailable 方法,
经分析 发现默认的比如 flatrate 他的 model中方法 isTrackingAvailable 是继承父类为false 的。
那么假设此时你想在后台 carrier中有 flatrate 能够设置他的 isTrackingAvailable 方法返回true即可了
相同适用于你自己定义的运送方式。
扩展的说下:
另一点,我们在前台结账的时候到 选择运送方式的时候比如有 flatrate 那么此时他的input value 你能够看到是
flatrate_flatrate 我们继续追踪代码,发现他在代码中显示的 是 getCarrier().’_’.getMethod() 通常我们会把这两个值在
设置的时候设置为一样的(在flatrate的model中)所以显示的就是这个样子了
可是这里要说的就是对接 Odoo 的时候默认的magento连接件 是通过这个订单的shipping method 。即运送方式
你能够在数据表 sale_flat_order 找到 比如就是 flatrate_flatrate 。 然而此时你在 Odoo 中设置tracking number的时候
可能报错,是由于提示没有 flatrate_flatrate
这时假设magento 设置 flatrate 的isTrackingAvailable 为true 你把Odoo中这个code改为 flatrate 就能够了
假设没有。能够直接设置code 为 custom 也是能够的,由于你能够在magento api中找到 默认都有个为 custom的code
magento getCarriers 分析的更多相关文章
- Magento架构分析,Magento MVC 设计分析
Magento架构分析,Magento MVC 设计分析 分类:Magento 标签:Magento MVC.Magento架构 669人浏览 Magento 采用类似 JAVA的架构,其扩展与稳定性 ...
- magento性能分析插件
两个好用的插件: http://connect20.magentocommerce.com/community/MagnetoDebughttp://connect20.magentocommerce ...
- 给 Magento 2 添加缓存层的分析与尝试
虽然黑色星期五有惊无险的过去了, 但是 Magento 2 社区版无法读写分离这个限制, 始终是悬在整个网站上的一把利剑. 我之前尝试过给 Magento 2 写一个 MySQL 读写分离的插件, 在 ...
- Magento订单打印(pdf格式)
Magento自身包含有:打印发票单,打印装箱单,打印退款单.这些都是基于西方国家的习惯来布置的.公司有个需求就是打印订单的四联单,PDF格式的,要一周内完成.刚接到这个任务时,觉得头大,因为对于PH ...
- Magento - Rewrite机制一窥
看一个url例子 http://localhost/magento/index.php/customer/account/login 这里假定http://localhost/magento/ 是ma ...
- magento问题集
magento产品页面价格出现2遍 In app\design\frontend\default\default\template\catalog\product\view\type\Simple.p ...
- 解决magento添加产品在前台不显示问题
有时候我们在magento系统添加产品,前台不显示,最模板分析可能 以下几个原因: 1 添加新品要重新index一下,magento是静态的.html页面,不reindex不出来的.在System→I ...
- Magento中调用JS文件的几种方法
一.全局调用方法: 通过该方法每个页面都会引用这个JS文件,除非是类似jQuery这样的系统文件,不然不推荐这种方法. 文件路径:/app/design/frontend/default/Your_T ...
- Magento请求分发与控制器
Magento请求分发与控制器 Magento使用的是MVC结构,模型-试图-控制器结构,这样更好的实现显示逻辑和数据,业务逻辑的分离,更好的适合开发! 下面为传统的mvc结构 URL请求被一个PHP ...
随机推荐
- 14.idea右键单击没有 svn选项处理办法
转自:http://www.cnblogs.com/xiohao/p/5044213.html 问题一: IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有C ...
- Spring Security 4 Method security using @PreAuthorize,@PostAuthorize, @Secured, EL--转
原文地址:http://websystique.com/spring-security/spring-security-4-method-security-using-preauthorize-pos ...
- sqlserver bulk insert
开启功能 -- To allow advanced options to be changed. EXEC sp_configure 'show advanced options', 1 GO -- ...
- SQL中NUMERIC和DECIMAL的区别
numeric 和 decimal 数据类型的默认最大精度值是 38.在 Transact-SQL 中,numeric 与 decimal 数据类型在功能上等效. decimal(numeric ) ...
- UVA Building designing
题目总结来说求一段序列,必须正负交替,且绝对值递增 #include <iostream> #include <cstdio> #include <cstring> ...
- Hexo Daemon
前提 今天中午的时候发现自已网站突然不能访问了,我猜肯定是后台的hexo服务异常自动kill掉了.果然登录服务器ps -ef | grep hexo查看进程,果然发现hexo的进程不在了.由于我将输出 ...
- UVC和V4L2的关系(转载)
UVC是一种usb视频设备驱动.用来支持usb视频设备,凡是usb接口的摄像头都能够支持 V4L2是Linux下的视频采集框架.用来统一接口,向应用层提供API UVC: USB video clas ...
- CCF模拟题 最大的矩形
最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方 ...
- CODEVS——T 1404 字符串匹配
http://codevs.cn/problem/1404/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 查看运行结果 题目描述 Desc ...
- mongodb适用和不适用的应用场景
近期考虑把订单历史数据从Oracle数据库迁移到Nosql数据库做历史数据查询和分析,一天千万级数据.打算使用mongodb数据库.使用nodejs做查询和统计API,对并发请求量要求低,不知道有没有 ...