2017-02-21 78 views
0

我有一個自定義的運輸模塊,我最近與日期選擇器模塊結合,現在運輸選項在結帳頁面上不可見。我修改了​​3210文件以合併來自兩個模塊的兩個配置,所以我想知道是否這是導致衝突的原因。 datepicker完美工作,但我甚至沒有看到控制檯中的自定義裝運選項加載。Magento 2:爲什麼我的自定義裝運不可見?

配置:

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd"> 
<default> 
    <carriers> 
    <icacustomshipping> 
     <showmethod>1</showmethod> 
     <active>1</active> 
     <sallowspecific>0</sallowspecific> 
     <price>18</price> 
     <model>SR\DeliveryDate\Model\Carrier\Customshipping</model> 
     <name>Fixed</name> 
     <title>ICA</title> 
     <origin_address></origin_address> 
     <origin_suburb></origin_suburb> 
     <authentication></authentication> 
     <id></id> 
     <specificerrmsg>Error.</specificerrmsg> 
    </icacustomshipping> 
    </carriers> 
</default> 
<default> 
    <sr_deliverydate> 
     <general> 
     <format>yy-mm-dd</format> 
     <disabled>-1</disabled> 
     <hourMin>8</hourMin> 
     <hourMax>22</hourMax> 
    </general> 
    </sr_deliverydate> 
</default> 
</config> 

通航模式

<?php 

namespace SR\DeliveryDate\Model\Carrier; 

use Magento\Quote\Model\Quote\Address\RateRequest; 
use Magento\Shipping\Model\Rate\Result; 

class Customshipping extends \Magento\Shipping\Model\Carrier\AbstractCarrier implements 
\Magento\Shipping\Model\Carrier\CarrierInterface 
{ 

    /** 
    * @var string 
    */ 
    protected $_code = 'icacustomshipping'; 

    /** 
    * @var bool 
    */ 
    protected $_isFixed = true; 

    /** 
    * @var \Magento\Shipping\Model\Rate\ResultFactory 
    */ 
    protected $_rateResultFactory; 

    /** 
    * @var \Magento\Quote\Model\Quote\Address\RateResult\MethodFactory 
    */ 
    protected $_rateMethodFactory; 

    /** 
    * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig 
    * @param \Magento\Quote\Model\Quote\Address\RateResult\ErrorFactory $rateErrorFactory 
    * @param \Psr\Log\LoggerInterface $logger 
    * @param \Magento\Shipping\Model\Rate\ResultFactory $rateResultFactory 
    * @param \Magento\Quote\Model\Quote\Address\RateResult\MethodFactory $rateMethodFactory 
    * @param array $data 
    */ 
    public function __construct(
    \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Quote\Model\Quote\Address\RateResult\ErrorFactory $rateErrorFactory, \Psr\Log\LoggerInterface $logger, \Magento\Shipping\Model\Rate\ResultFactory $rateResultFactory, \Magento\Quote\Model\Quote\Address\RateResult\MethodFactory $rateMethodFactory, array $data = [] 
    ) 
    { 
     $this->_rateResultFactory = $rateResultFactory; 
     $this->_rateMethodFactory = $rateMethodFactory; 
     parent::__construct($scopeConfig, $rateErrorFactory, $logger, $data); 
    } 

    /** 
    * @param RateRequest $request 
    * @return Result|bool 
    * @SuppressWarnings(PHPMD.CyclomaticComplexity) 
    * @SuppressWarnings(PHPMD.NPathComplexity) 
    */ 
    public function collectRates(RateRequest $request) 
    { 
     if (!$this->getConfigFlag('active')) { 
      return false; 
     } 

     /** @var \Magento\Shipping\Model\Rate\Result $result */ 
     $result = $this->_rateResultFactory->create(); 

     /** @var \Magento\Quote\Model\Quote\Address\RateResult\Method $method */ 
     $method = $this->_rateMethodFactory->create(); 

     $method->setCarrier('example'); 
     $method->setCarrierTitle('TEST'); 

     $method->setMethod('example'); 
     $method->setMethodTitle('TEST'); 

     /*you can fetch shipping price from different sources over some APIs, we used price from config.xml - xml node price*/ 
     $amount = 18; 

     $method->setPrice($amount); 
     $method->setCost($amount); 

     $result->append($method); 

     return $result; 

    } 

    /** 
    * @return array 
    */ 
    public function getAllowedMethods() 
    { 
     return [$this->getCarrierCode() => __($this->getConfigData('name'))]; 
    } 

} 

回答

0

所以,這個問題是一個簡單的語法錯誤。我有$method->setCarrier('example');,而我需要承運人設置爲我的運輸代碼protected $_code = 'icacustomshipping';

相關問題