Esempio n. 1
0
 /**
  * @param \Magento\Quote\Model\Quote\Address\RateResult\AbstractResult $rate
  * @return $this
  */
 public function importShippingRate(\Magento\Quote\Model\Quote\Address\RateResult\AbstractResult $rate)
 {
     if ($rate instanceof \Magento\Quote\Model\Quote\Address\RateResult\Error) {
         $this->setCode($rate->getCarrier() . '_error')->setCarrier($rate->getCarrier())->setCarrierTitle($rate->getCarrierTitle())->setErrorMessage($rate->getErrorMessage());
     } elseif ($rate instanceof \Magento\Quote\Model\Quote\Address\RateResult\Method) {
         $this->setCode($rate->getCarrier() . '_' . $rate->getMethod())->setCarrier($rate->getCarrier())->setCarrierTitle($rate->getCarrierTitle())->setMethod($rate->getMethod())->setMethodTitle($rate->getMethodTitle())->setMethodDescription($rate->getMethodDescription())->setPrice($rate->getPrice());
     }
     return $this;
 }
 /**
  * Add a rate to the result
  *
  * @param \Magento\Quote\Model\Quote\Address\RateResult\AbstractResult|\Magento\Shipping\Model\Rate\Result $result
  * @return $this
  */
 public function append($result)
 {
     if ($result instanceof \Magento\Quote\Model\Quote\Address\RateResult\Error) {
         $this->setError(true);
     }
     if ($result instanceof \Magento\Quote\Model\Quote\Address\RateResult\AbstractResult) {
         $this->_rates[] = $result;
     } elseif ($result instanceof \Magento\Shipping\Model\Rate\Result) {
         $rates = $result->getAllRates();
         foreach ($rates as $rate) {
             $this->append($rate);
         }
     }
     return $this;
 }