Example #1
0
 /**
  * Prepare and set request in property of current instance
  *
  * @param Varien_Object $request
  * @return Mage_Usa_Model_Shipping_Carrier_Dhl
  */
 public function setRequest(Varien_Object $request)
 {
     $this->_request = $request;
     $this->setStore($request->getStoreId());
     $requestObject = new Varien_Object();
     $requestObject->setIsGenerateLabelReturn($request->getIsGenerateLabelReturn());
     $requestObject->setStoreId($request->getStoreId());
     if ($request->getLimitMethod()) {
         $requestObject->setService($request->getLimitMethod());
     }
     $requestObject = $this->_addParams($requestObject);
     if ($request->getDestPostcode()) {
         $requestObject->setDestPostal($request->getDestPostcode());
     }
     $requestObject->setOrigCountry($this->_getDefaultValue($request->getOrigCountry(), Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID))->setOrigCountryId($this->_getDefaultValue($request->getOrigCountryId(), Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID));
     $shippingWeight = $request->getPackageWeight();
     $requestObject->setValue(round($request->getPackageValue(), 2))->setValueWithDiscount($request->getPackageValueWithDiscount())->setCustomsValue($request->getPackageCustomsValue())->setDestStreet(Mage::helper('core/string')->substr(str_replace("\n", '', $request->getDestStreet()), 0, 35))->setDestStreetLine2($request->getDestStreetLine2())->setDestCity($request->getDestCity())->setOrigCompanyName($request->getOrigCompanyName())->setOrigCity($request->getOrigCity())->setOrigPhoneNumber($request->getOrigPhoneNumber())->setOrigPersonName($request->getOrigPersonName())->setOrigEmail(Mage::getStoreConfig('trans_email/ident_general/email', $requestObject->getStoreId()))->setOrigCity($request->getOrigCity())->setOrigPostal($request->getOrigPostal())->setOrigStreetLine2($request->getOrigStreetLine2())->setDestPhoneNumber($request->getDestPhoneNumber())->setDestPersonName($request->getDestPersonName())->setDestCompanyName($request->getDestCompanyName());
     $originStreet2 = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_ADDRESS2, $requestObject->getStoreId());
     $requestObject->setOrigStreet($request->getOrigStreet() ? $request->getOrigStreet() : $originStreet2);
     if (is_numeric($request->getOrigState())) {
         $requestObject->setOrigState(Mage::getModel('directory/region')->load($request->getOrigState())->getCode());
     } else {
         $requestObject->setOrigState($request->getOrigState());
     }
     if ($request->getDestCountryId()) {
         $destCountry = $request->getDestCountryId();
     } else {
         $destCountry = self::USA_COUNTRY_ID;
     }
     // for DHL, Puerto Rico state for US will assume as Puerto Rico country
     // for Puerto Rico, dhl will ship as international
     if ($destCountry == self::USA_COUNTRY_ID && ($request->getDestPostcode() == '00912' || $request->getDestRegionCode() == self::PUERTORICO_COUNTRY_ID)) {
         $destCountry = self::PUERTORICO_COUNTRY_ID;
     }
     $requestObject->setDestCountryId($destCountry)->setDestState($request->getDestRegionCode())->setWeight($shippingWeight)->setFreeMethodWeight($request->getFreeMethodWeight())->setOrderShipment($request->getOrderShipment());
     if ($request->getPackageId()) {
         $requestObject->setPackageId($request->getPackageId());
     }
     $requestObject->setBaseSubtotalInclTax($request->getBaseSubtotalInclTax());
     $this->_rawRequest = $requestObject;
     return $this;
 }
Example #2
0
 /**
  * Prepare and set request in property of current instance
  *
  * @param Varien_Object $request
  * @return Mage_Usa_Model_Shipping_Carrier_Dhl
  */
 public function setRequest(Varien_Object $request)
 {
     $this->_request = $request;
     $r = new Varien_Object();
     if ($request->getAction() == 'GenerateLabel') {
         $r->setAction('GenerateLabel');
     } else {
         $r->setAction('RateEstimate');
     }
     $r->setIsGenerateLabelReturn($request->getIsGenerateLabelReturn());
     $r->setStoreId($request->getStoreId());
     if ($request->getLimitMethod()) {
         $r->setService($request->getLimitMethod());
     }
     if ($request->getDhlId()) {
         $id = $request->getDhlId();
     } else {
         $id = $this->getConfigData('id');
     }
     $r->setId($id);
     if ($request->getDhlPassword()) {
         $password = $request->getDhlPassword();
     } else {
         $password = $this->getConfigData('password');
     }
     $r->setPassword($password);
     if ($request->getDhlAccount()) {
         $accountNbr = $request->getDhlAccount();
     } else {
         $accountNbr = $this->getConfigData('account');
     }
     $r->setAccountNbr($accountNbr);
     if ($request->getDhlShippingKey()) {
         $shippingKey = $request->getDhlShippingKey();
     } else {
         $shippingKey = $this->getConfigData('shipping_key');
     }
     $r->setShippingKey($shippingKey);
     if ($request->getDhlShippingIntlKey()) {
         $shippingKey = $request->getDhlShippingIntlKey();
     } else {
         $shippingKey = $this->getConfigData('shipping_intlkey');
     }
     $r->setShippingIntlKey($shippingKey);
     if ($request->getDhlShipmentType()) {
         $shipmentType = $request->getDhlShipmentType();
     } else {
         $shipmentType = $this->getConfigData('shipment_type');
     }
     $r->setShipmentType($shipmentType);
     if ($request->getDhlDutiable()) {
         $shipmentDutible = $request->getDhlDutiable();
     } else {
         $shipmentDutible = $this->getConfigData('dutiable');
     }
     $r->setDutiable($shipmentDutible);
     if ($request->getDhlDutyPaymentType()) {
         $dutypaytype = $request->getDhlDutyPaymentType();
     } else {
         $dutypaytype = $this->getConfigData('dutypaymenttype');
     }
     $r->setDutyPaymentType($dutypaytype);
     if ($request->getDhlContentDesc()) {
         $contentdesc = $request->getDhlContentDesc();
     } else {
         $contentdesc = $this->getConfigData('contentdesc');
     }
     $r->setContentDesc($contentdesc);
     if ($request->getDestPostcode()) {
         $r->setDestPostal($request->getDestPostcode());
     }
     if ($request->getOrigCountry()) {
         $origCountry = $request->getOrigCountry();
     } else {
         $origCountry = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID, $r->getStoreId());
     }
     $r->setOrigCountry($origCountry);
     if ($request->getOrigCountryId()) {
         $origCountryId = $request->getOrigCountryId();
     } else {
         $origCountryId = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID, $r->getStoreId());
     }
     $r->setOrigCountryId($origCountryId);
     if ($request->getAction() == 'GenerateLabel') {
         $packageParams = $request->getPackageParams();
         $shippingWeight = $request->getPackageWeight();
         if ($packageParams->getWeightUnits() != Zend_Measure_Weight::POUND) {
             $shippingWeight = round(Mage::helper('usa')->convertMeasureWeight($request->getPackageWeight(), $packageParams->getWeightUnits(), Zend_Measure_Weight::POUND));
         }
         if ($packageParams->getDimensionUnits() != Zend_Measure_Length::INCH) {
             $packageParams->setLength(round(Mage::helper('usa')->convertMeasureDimension($packageParams->getLength(), $packageParams->getDimensionUnits(), Zend_Measure_Length::INCH)));
             $packageParams->setWidth(round(Mage::helper('usa')->convertMeasureDimension($packageParams->getWidth(), $packageParams->getDimensionUnits(), Zend_Measure_Length::INCH)));
             $packageParams->setHeight(round(Mage::helper('usa')->convertMeasureDimension($packageParams->getHeight(), $packageParams->getDimensionUnits(), Zend_Measure_Length::INCH)));
         }
         $r->setPackageParams($packageParams);
     } else {
         /*
          * DHL only accepts weight as a whole number. Maximum length is 3 digits.
          */
         $shippingWeight = $request->getPackageWeight();
         if ($shipmentType != 'L') {
             $weight = $this->getTotalNumOfBoxes($shippingWeight);
             $shippingWeight = round(max(1, $weight), 0);
         }
     }
     $r->setValue(round($request->getPackageValue(), 2));
     $r->setValueWithDiscount($request->getPackageValueWithDiscount());
     $r->setCustomsValue($request->getPackageCustomsValue());
     $r->setDestStreet(Mage::helper('core/string')->substr(str_replace("\n", '', $request->getDestStreet()), 0, 35));
     $r->setDestStreetLine2($request->getDestStreetLine2());
     $r->setDestCity($request->getDestCity());
     $r->setOrigCompanyName($request->getOrigCompanyName());
     $r->setOrigCity($request->getOrigCity());
     $r->setOrigPhoneNumber($request->getOrigPhoneNumber());
     $r->setOrigPersonName($request->getOrigPersonName());
     $r->setOrigEmail(Mage::getStoreConfig('trans_email/ident_general/email', $r->getStoreId()));
     $r->setOrigCity($request->getOrigCity());
     $r->setOrigPostal($request->getOrigPostal());
     $originStreet1 = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_ADDRESS1, $r->getStoreId());
     $originStreet2 = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_ADDRESS2, $r->getStoreId());
     $r->setOrigStreet($request->getOrigStreet() ? $request->getOrigStreet() : $originStreet2);
     $r->setOrigStreetLine2($request->getOrigStreetLine2());
     $r->setDestPhoneNumber($request->getDestPhoneNumber());
     $r->setDestPersonName($request->getDestPersonName());
     $r->setDestCompanyName($request->getDestCompanyName());
     if (is_numeric($request->getOrigState())) {
         $r->setOrigState(Mage::getModel('directory/region')->load($request->getOrigState())->getCode());
     } else {
         $r->setOrigState($request->getOrigState());
     }
     if ($request->getDestCountryId()) {
         $destCountry = $request->getDestCountryId();
     } else {
         $destCountry = self::USA_COUNTRY_ID;
     }
     //for DHL, puero rico state for US will assume as puerto rico country
     //for puerto rico, dhl will ship as international
     if ($destCountry == self::USA_COUNTRY_ID && ($request->getDestPostcode() == '00912' || $request->getDestRegionCode() == self::PUERTORICO_COUNTRY_ID)) {
         $destCountry = self::PUERTORICO_COUNTRY_ID;
     }
     $r->setDestCountryId($destCountry);
     $r->setDestState($request->getDestRegionCode());
     $r->setWeight($shippingWeight);
     $r->setFreeMethodWeight($request->getFreeMethodWeight());
     $r->setOrderShipment($request->getOrderShipment());
     if ($request->getPackageId()) {
         $r->setPackageId($request->getPackageId());
     }
     $r->setBaseSubtotalInclTax($request->getBaseSubtotalInclTax());
     $this->_rawRequest = $r;
     return $this;
 }
Example #3
0
 /**
  * Form array with appropriate structure for shipment request
  *
  * @param Varien_Object $request
  * @return array
  */
 protected function _formShipmentRequest(Varien_Object $request)
 {
     $r = new Varien_Object();
     $this->_request = $request;
     $this->_setAccessRequest($r);
     $packageItems = $request->getPackageItems();
     $shipRequest = new StdClass();
     $shipRequest->RequesterID = $r->getRequesterId();
     //$shipRequest->LabelSize = '4x8';
     if (Mage::getStoreConfig('carriers/wsaendicia/label_pdf')) {
         $shipRequest->ImageFormat = 'PDF';
         //EN-15
     }
     $shipRequest->AccountID = $r->getAccountId();
     $shipRequest->PassPhrase = $r->getPassword();
     $shipRequest->MailClass = $request->getShippingMethod();
     $shipRequest->CostCenter = 0;
     $shipRequest->Stealth = Mage::getStoreConfig('carriers/wsaendicia/stealth') ? 'TRUE' : 'FALSE';
     $shipRequest->Value = $request->getPackageValue();
     $shipRequest->Description = 'Goods purchased';
     $weightUnits = Zend_Measure_Weight::POUND;
     $shipDimensions = new stdClass();
     foreach ($request->getPackages() as $package) {
         $shipDimensions->Length = $this->_convertDimension($package['params']['length'], $package['params']['dimension_units']);
         $shipDimensions->Width = $this->_convertDimension($package['params']['width'], $package['params']['dimension_units']);
         $shipDimensions->Height = $this->_convertDimension($package['params']['height'], $package['params']['dimension_units']);
         $shipRequest->MailpieceShape = $this->checkContainerType($package['params']['container']);
         $weightUnits = $package['params']['weight_units'];
         break;
     }
     $shipRequest->WeightOz = $this->_convertWeight($request->getPackageWeight(), $weightUnits);
     $shipRequest->MailpieceDimensions = $shipDimensions;
     $isDomestic = $request->getRecipientAddressCountryCode() == self::USA_COUNTRY_ID;
     if (!$isDomestic) {
         $shipCustomsInfo = new stdClass();
         $shipCustomsInfo->ContentsType = 'Merchandise';
         $shipCustomsInfo->RestrictionType = 'None';
         $shipCustomsInfo->SendersCustomsReference = $request->getShipperContactCompanyName();
         $shipCustomsInfo->ImportersCustomsReference = $request->getRecipientContactPersonName();
         $shipCustomsInfo->LicenseNumber = '';
         $shipCustomsInfo->CertificateNumber = '';
         if ($invoice = $request->getOrderShipment()->getOrder()->getInvoice()) {
             $invoiceNum = $invoice->getIncrementId();
         } else {
             $invoiceNum = '';
         }
         $shipCustomsInfo->InvoiceNumber = $invoiceNum;
         $shipCustomsInfo->EelPfc = 'NOEEI 30.37(a)';
         $customItems = new stdClass();
         foreach ($packageItems as $item) {
             $oneCustomsItem = new stdClass();
             $oneCustomsItem->Description = $item['name'];
             $oneCustomsItem->Quantity = $item['qty'];
             $oneCustomsItem->Weight = $this->_convertWeight($item['weight'] * $item['qty'], $weightUnits);
             $oneCustomsItem->Value = $item['customs_value'] * $item['qty'];
             $customItems->CustomsItem[] = $oneCustomsItem;
         }
         $shipCustomsInfo->CustomsItems = $customItems;
         $shipRequest->CustomsInfo = $shipCustomsInfo;
         $shipRequest->CustomsCertify = 'FALSE';
         $shipRequest->CustomsSigner = '';
         $shipRequest->CustomsSendersCopy = 'true';
     }
     $shipRequest->SortType = 'Nonpresorted';
     $shipRequest->EntryFacility = "Other";
     $services = false;
     if ($isDomestic) {
         foreach ($this->getCode('delivery_conf_types') as $confCode => $description) {
             if ($request->getServices() != 'False' && $this->_mapServices($request->getServices()) == $confCode) {
                 if (!$services) {
                     $services = new stdClass();
                 }
                 $services->{$confCode} = "ON";
             }
         }
     }
     if ($request->getInsuranceRequired()) {
         if (!$services) {
             $services = new stdClass();
         }
         $services->InsuredMail = Mage::helper('wsaendicia')->getInsuranceProvider();
         $shipRequest->InsuredValue = $request->getInsuranceValue() ? $request->getInsuranceValue() : $request->getPackageValue();
     }
     if ($services) {
         $shipRequest->Services = $services;
     }
     $shipRequest->PartnerCustomerID = $request->getOrderShipment()->getOrder()->getIncrementId();
     $shipRequest->PartnerTransactionID = $request->getOrderShipment()->getOrder()->getIncrementId();
     if (Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_order')) {
         $shipRequest->RubberStamp1 = $request->getOrderShipment()->getOrder()->getIncrementId();
     }
     $rubberStamp1code = Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_1');
     $rubberStamp2code = Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_2');
     $rubberStamp3code = Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_3');
     if ($rubberStamp1code != '' || $rubberStamp2code != '' || $rubberStamp3code != '') {
         $product = new Varien_Object();
         foreach ($packageItems as $packageItem) {
             $product = Mage::getModel('catalog/product')->load($packageItem['product_id']);
             break;
         }
         try {
             if ($product->getData($rubberStamp1code)) {
                 $rubberStamp1 = $product->getAttributeText($rubberStamp1code) ? $product->getAttributeText($rubberStamp1code) : $product->getData($rubberStamp1code);
             } else {
                 $rubberStamp1 = "";
             }
             if ($product->getData($rubberStamp2code)) {
                 $rubberStamp2 = $product->getAttributeText($rubberStamp2code) ? $product->getAttributeText($rubberStamp2code) : $product->getData($rubberStamp2code);
             } else {
                 $rubberStamp2 = "";
             }
             if ($product->getData($rubberStamp3code)) {
                 $rubberStamp3 = $product->getAttributeText($rubberStamp3code) ? $product->getAttributeText($rubberStamp3code) : $product->getData($rubberStamp3code);
             } else {
                 $rubberStamp3 = "";
             }
             if ($rubberStamp1 != "") {
                 if (Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_order')) {
                     $shipRequest->RubberStamp1 = $request->getOrderShipment()->getOrder()->getIncrementId() . ": " . $rubberStamp1;
                 } else {
                     $shipRequest->RubberStamp1 = $rubberStamp1;
                 }
             }
             if ($rubberStamp2 != "") {
                 $shipRequest->RubberStamp2 = $rubberStamp2;
             }
             if ($rubberStamp3 != "") {
                 $shipRequest->RubberStamp3 = $rubberStamp3;
             }
         } catch (Exception $e) {
             Mage::logException($e);
         }
     }
     $shipRequest->FromName = $request->getShipperContactCompanyName();
     $shipRequest->ReturnAddress1 = $request->getShipperAddressStreet();
     $shipRequest->FromCity = $request->getShipperAddressCity();
     $shipRequest->FromState = $request->getShipperAddressStateOrProvinceCode();
     $shipRequest->FromPostalCode = substr($request->getShipperAddressPostalCode(), 0, 5);
     if ($isDomestic) {
         $shipRequest->FromCountry = $request->getShipperAddressCountryCode();
     }
     $shipRequest->FromPhone = $request->getShipperContactPhoneNumber();
     $shipRequest->ToName = $request->getRecipientContactPersonName();
     if ($request->getRecipientContactCompanyName()) {
         $shipRequest->ToCompany = $request->getRecipientContactCompanyName();
     }
     $shipRequest->ToAddress1 = $request->getRecipientAddressStreet();
     $shipRequest->ToCity = $request->getRecipientAddressCity();
     $shipRequest->ToState = $request->getRecipientAddressStateOrProvinceCode();
     $shipRequest->ToPostalCode = $isDomestic ? substr($request->getRecipientAddressPostalCode(), 0, 5) : substr($request->getRecipientAddressPostalCode(), 0, 15);
     if (!$isDomestic) {
         $shipRequest->ToCountryCode = $request->getRecipientAddressCountryCode();
     }
     if (!$isDomestic) {
         $shipRequest->ToCountry = Mage::getModel('directory/country')->load($request->getRecipientAddressCountryCode())->getName();
     }
     $shipRequest->ToPhone = $request->getRecipientContactPhoneNumber();
     $test = $this->getConfigFlag('sandbox_mode') ? 'YES' : "NO";
     $shipRequest->Test = $test;
     //  $shipRequest->ImageFormat = 'PDF';
     $wholeRequest = new stdClass();
     $wholeRequest->LabelRequest = $shipRequest;
     return $wholeRequest;
 }