Overview

Packages

  • IllApps
    • Shipsync
  • PHP

Classes

  • IllApps_Shipsync_Block_Adminhtml_Sales_Order_Shipment_Abstract
  • IllApps_Shipsync_Block_Adminhtml_Sales_Order_Shipment_Packages_View
  • IllApps_Shipsync_Block_Adminhtml_Sales_Order_Shipment_Packages_View_Form
  • IllApps_Shipsync_Block_Adminhtml_Sales_Order_Shipment_Packages_View_Items
  • IllApps_Shipsync_Block_Adminhtml_Sales_Order_Shipment_Packages_View_Package
  • IllApps_Shipsync_Block_Adminhtml_Sales_Order_Shipment_View
  • IllApps_Shipsync_Block_Adminhtml_Sales_Order_View
  • IllApps_Shipsync_Block_Adminhtml_Shipsync
  • IllApps_Shipsync_Block_Adminhtml_Shipsync_Option
  • IllApps_Shipsync_Helper_Data
  • IllApps_Shipsync_IndexController
  • IllApps_Shipsync_Model_Mysql4_Setup
  • IllApps_Shipsync_Model_Mysql4_Shipment_Package
  • IllApps_Shipsync_Model_Mysql4_Shipment_Package_Collection
  • IllApps_Shipsync_Model_Sales_Order_Shipment_Package
  • IllApps_Shipsync_Model_Sales_Order_Shipment_Package_Item
  • IllApps_Shipsync_Model_Sales_Quote_Address
  • IllApps_Shipsync_Model_Shipment_Abstract
  • IllApps_Shipsync_Model_Shipment_Package
  • IllApps_Shipsync_Model_Shipment_Request
  • IllApps_Shipsync_Model_Shipment_Response
  • IllApps_Shipsync_Model_Shipment_Result
  • IllApps_Shipsync_Model_Shipping_Carrier_Abstract
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Address
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Package
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Rate
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Ship
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_B13afilingoption
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Freemethod
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Label_Image
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Label_Orientation
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Label_Stock
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Method
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Packaging
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Rate
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Ratediscount
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Residencedelivery
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Signature
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Smartpost_Endorsement
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Smartpost_Indicia
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Source_Unitofmeasure
  • IllApps_Shipsync_Model_Shipping_Carrier_Fedex_Track
  • IllApps_Shipsync_Model_Shipping_Package
  • IllApps_Shipsync_Model_Shipping_Package_Item
  • IllApps_Shipsync_Model_Shipping_Package_Origins
  • IllApps_Shipsync_Model_Shipping_Package_Sort
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: 
  3: /**
  4:  * ShipSync
  5:  *
  6:  * @category   IllApps
  7:  * @package    IllApps_Shipsync
  8:  * @copyright  Copyright (c) 2014 EcoMATICS, Inc. DBA IllApps (http://www.illapps.com)
  9:  * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 10:  */
 11: 
 12: /**
 13:  * IllApps_Shipsync_Model_Shipping_Package_Origins
 14:  */
 15: class IllApps_Shipsync_Model_Shipping_Package_Origins
 16: {
 17:     /*
 18:      * Prepare Request
 19:      *
 20:      * Takes request object, and <empty> arrays for items and packages.
 21:      * Parses request packages and divides the items by package, or divides the items by origin
 22:      * if request packages not set.
 23:      *
 24:      * @param Mage_Shipping_Model_Rate_Request $request
 25:      * @param array $itemsByOrigin
 26:      * @param array $packagesByOrigin
 27:      *
 28:      * @return void
 29:      *
 30:      */
 31:     public function prepareRequest (&$request, &$itemsByOrigin, &$packagesByOrigin)
 32:     {        
 33:         if($request->getPackages())
 34:         {
 35:             foreach($request->getPackages() as $package)
 36:             {
 37:                 if(isset($itemsByOrigin[(int) $package['alt_origin']])) {
 38:                     $itemsToMerge = $itemsByOrigin[(int) $package['alt_origin']];
 39:                     $itemsByOrigin[(int) $package['alt_origin']] = array_merge($itemsToMerge, $package['items']);
 40:                 }
 41:                 else {
 42:                     $itemsByOrigin[(int) $package['alt_origin']] = $package['items'];
 43:                 }
 44:                 $packagesByOrigin[(int) $package['alt_origin']][] = $package;
 45:             }
 46: 
 47:             $request->setPackages(null);
 48:         }
 49:         else
 50:         {
 51:             $_items = Mage::getModel('shipsync/shipping_package')->getParsedItems($request->getAllItems());
 52: 
 53:             $itemsByOrigin = Mage::getModel('shipsync/shipping_package_item')->byOrigin($_items);
 54:         }
 55:     }
 56: 
 57:     /*
 58:      * Prepare Ship Request...see above.
 59:      * 
 60:      * @param Mage_Shipping_Model_Shipping $request
 61:      * @param $itemsByOrigin
 62:      * @param $packagesByOrigin
 63:      * 
 64:      * @return void
 65:      */
 66:     public function prepareShipRequest(&$request, &$itemsByOrigin, &$packagesByOrigin)
 67:     {
 68:         if($request->getPackages())
 69:         {
 70:             foreach($request->getPackages() as $package)
 71:             {
 72:                 if(isset($itemsByOrigin[(int) $package->getOrigin()])) {
 73:                     $itemsToMerge = $itemsByOrigin[(int) $package->getOrigin()];
 74:                     $itemsByOrigin[(int) $package->getOrigin()] = array_merge($itemsToMerge, $package->getItems());
 75:                 }
 76:                 else {
 77:                     $itemsByOrigin[(int) $package->getOrigin()] = $package->getItems();
 78:                 }
 79:                 $packagesByOrigin[(int) $package->getOrigin()][] = $package;
 80:             }
 81: 
 82:             $request->setPackages(null);
 83:         }
 84:         else
 85:         {
 86:             $_items = Mage::getModel('shipsync/shipping_package')->getParsedItems($request->getAllItems());
 87: 
 88:             $itemsByOrigin = Mage::getModel('shipsync/shipping_package_item')->byOrigin($_items);
 89:         }
 90:     }
 91: 
 92:     /*
 93:      * Set Origins
 94:      * Sets request object's origins based on key.
 95:      * 
 96:      * @param object $request
 97:      * @param int $int
 98:      * 
 99:      * @return void
100:      */
101:     public function setOrigins(&$request, $int)
102:     {
103:         $origin = Mage::getModel('shipsync/shipping_package_item')->getOrigin($int);//(int) $item['alt_origin']);
104: 
105:         $request->setOrigCountryId($origin['country']);
106:         $request->setOrigRegionId($origin['regionId']);
107:         $request->setOrigRegionCode($origin['regionCode']);
108:         $request->setOrigPostcode($origin['postcode']);
109:         $request->setOrigCity($origin['city']);
110:         $request->setOrigStreet($origin['street']);
111:     }
112: 
113:     /*
114:      * Collect Multiple Shipments
115:      * 
116:      * @param array $shipResultCollection
117:      * 
118:      * @return array $retval
119:      */
120:     public function collectMultipleShipments($shipResultCollection)
121:     {
122:         foreach($shipResultCollection as $shipResult)
123:         {
124:             $retval = (isset($retval)) ? array_merge($retval, $shipResult) : $shipResult;
125:         }
126:     return $retval;
127:     }
128: 
129:     /*
130:      * Collect Multiple Responses
131:      * 
132:      * Collects and combines responses by origin
133:      * 
134:      * @param array $responseCollection
135:      * 
136:      * @return Mage_Shipping_Model_Rate_Result $responses
137:      */
138:     public function collectMultipleResponses($responseCollection)
139:     {        
140:         $_responses = new Mage_Shipping_Model_Rate_Result;
141:         
142:         $responses = $responseCollection[0];
143: 
144:         if($responses->getError()) {return $responses;}
145: 
146:         unset($responseCollection[0]);
147: 
148:         foreach ($responseCollection as $cmpResponses)
149:         {
150:             $i = count($cmpResponses->getAllRates());
151: 
152:             if(!isset($cmpResponses)) {return $responses;}
153: 
154:             while($i)
155:             {
156:                 $i--;
157:                 $match = false;
158: 
159:                 foreach($cmpResponses->getAllRates() as $key => $cmpMethod)
160:                 {
161:                     if($responses->getRateById($i)->getMethod() == $cmpMethod->getMethod())
162:                     {
163:                         $responses->getRateById($i)->setCost($responses->getRateById($i)->getCost() + $cmpMethod->getCost());
164:                         $responses->getRateById($i)->setPrice($responses->getRateById($i)->getPrice() + $cmpMethod->getPrice());
165:                         $match = true;
166:                     }
167:                 }
168:                 if($match) { $_responses->append($responses->getRateById($i)); }
169:             }
170:             $responses = $_responses;
171:         }
172:         return $responses;
173:     }
174: 
175:     public function collectSaturdayResponses ($responseCollection)
176:     {
177:         $_responses = new Mage_Shipping_Model_Rate_Result;
178: 
179:         if (isset($responseCollection[1])) { $responses = $responseCollection[1]; }
180: 
181:         $err = $responses->asArray();
182: 
183:         if(empty($err) || $responses->getError()) {return $responseCollection[0];}
184:         
185:         foreach ($responseCollection[0]->getAllRates() as $key => $method)
186:         {
187:             $methodKeys[$key] = $method->getMethod();
188:         }
189: 
190:         foreach ($responses->getAllRates() as $key => $method)
191:         {            
192:             if (in_array($method->getMethod(), $methodKeys))
193:             {
194:                 unset($methodKeys[array_search($method->getMethod(), $methodKeys)]);
195:             }
196:             $_responses->append($method);
197:         }
198: 
199:         if (isset($methodKeys))
200:         {
201:             foreach ($methodKeys as $key => $method)
202:             {
203:                 $_responses->append($responseCollection[0]->getRateById($key));
204:             }
205:         }
206:         
207:         return $_responses;
208: 
209:     }
210: }
211: 
shipsync-community API documentation generated by ApiGen 2.8.0