示例#1
0
 /**
  * Returns array of data for request
  *
  * @param array|\XLite\Logic\Order\Modifier\Shipping $inputData Array of input data or a shipping order modifier
  *
  * @return array
  */
 protected function prepareInputData($inputData)
 {
     $data = array();
     $commonData = array();
     if ($inputData instanceof \XLite\Logic\Order\Modifier\Shipping) {
         if ('CA' == \XLite\Core\Config::getInstance()->Company->location_country) {
             $commonData['srcAddress'] = array('zipcode' => \XLite\Core\Config::getInstance()->Company->location_zipcode);
         }
         $commonData['dstAddress'] = \XLite\Model\Shipping::getInstance()->getDestinationAddress($inputData);
         if (!empty($commonData['srcAddress']) && !empty($commonData['dstAddress'])) {
             $data['packages'] = $this->getPackages($inputData);
         }
     } else {
         $data = $inputData;
     }
     if (!empty($data['packages'])) {
         foreach ($data['packages'] as $key => $package) {
             $package = array_merge($package, $commonData);
             $package['weight'] = \XLite\Core\Converter::convertWeightUnits($package['weight'], \XLite\Core\Config::getInstance()->Units->weight_unit, 'kg');
             $package['subtotal'] = \XLite\Module\XC\CanadaPost\Core\API::applyConversionRate($package['subtotal']);
             $data['packages'][$key] = $package;
         }
     } else {
         $data = array();
     }
     return $data;
 }
示例#2
0
 /**
  * Post process input data
  *
  * @param array $inputData Prepared input data
  *
  * @return array
  */
 protected function postProcessInputData(array $inputData)
 {
     $commonData = isset($inputData['commonData']) ? $inputData['commonData'] : array();
     unset($inputData['commonData']);
     if (!empty($inputData['packages'])) {
         foreach ($inputData['packages'] as $key => $package) {
             $package = array_merge($package, $commonData);
             $package['weight'] = \XLite\Core\Converter::convertWeightUnits($package['weight'], \XLite\Core\Config::getInstance()->Units->weight_unit, 'kg');
             \XLite\Module\XC\CanadaPost\Core\API::setCanadaPostConfig($this->getConfiguration());
             $package['subtotal'] = \XLite\Module\XC\CanadaPost\Core\API::applyConversionRate($package['subtotal']);
             $inputData['packages'][$key] = $package;
         }
     } else {
         $inputData = array();
     }
     return parent::postProcessInputData($inputData);
 }