要点:
运送方式实现\Magento\Shipping\Model\Carrier\CarrierInterface
支付方式实现\Magento\Quote\Api\Data\PaymentMethodInterface 和 \Magento\Payment\Model\MethodInterface
描述运送方法结构。怎么样创建一个新的运送方法?
运送方式配置在 etc/下面的XML文件里。
创建一个新的运送方式:
.在etc/adminhtml/system.xml 为 carriers/[shipping_code]创建一个组
.添加etc/config.xml,为 system.xml里的default/carriers[shipping_code]添加默认值
.添加<model/>节点,指定到包含该运送方式的类
.创建一个新的类,该类要实现\Magento\Shipping\Model\Carrier\CarrierInterface,而且很大程度上需要继承\Magento\Shipping\Model\Carrier\AbstractCarrierOnline
carrier 和rates的区别是什么?
Carrier 提供可用rates的列表。比如,UPS的可用费率列表为 隔夜,隔夜上午和平邮。
描述怎么样排查运送方式和税率结果
.找到运送方式类
.在\Magento\Shipping\Model\Carrier\AbstractCarrierOnline::canCollectRates 设置断点,以确保该运送方式被启用。牢记plugin(插件)可以改变返回值。
.在\Magento\Shipping\Model\Carrier\AbstractCarrierInterface::collectRates的实现方法里设置断点,从请求公式一步步排查到返回解析。
运费税率哪里来?
运费税率可以来自API,计算返回,或者是固定值。
举例:
. API: \Magento\Fedex\Model\Carrier
.Calculations: \Magento\OfflineShipping\Model\Carrier\Tablerate
.Fixed: \Magento\OfflineShipping\Model\Carrier\Flatrate
当错误的税率被返回你应该如何排查:
参照以上,描述怎么样排查运送方式和税率结果
描述如何排查支付方式
和上面运费排查的方式类似。对于相对简单的支付方式,确保isAvailable()方法返回true.这个方法最初是在\Magento\Payment\Model\Method\AbstractMethod 声明。
使用Debug添加log 信息到 var/log
来源:oschina
链接:https://my.oschina.net/u/3623541/blog/3225353