Esempio n. 1
0
 protected function prepareRate(Mage_Sales_Model_Quote_Address_Rate $rate, Mage_Api2_Model_Acl_Filter $filter)
 {
     // Get raw outbound data
     $data = [];
     $attributes = $filter->getAttributesToInclude();
     $attributes = array_combine($attributes, $attributes);
     $attributes = array_merge($attributes, array_intersect_key($this->attributeMap, $attributes));
     foreach ($attributes as $externalKey => $internalKey) {
         $data[$externalKey] = $rate->getDataUsingMethod($internalKey);
     }
     // Fire event
     $data = new Varien_Object($data);
     Mage::dispatchEvent('aoe_cartapi_shipping_method_prepare', ['data' => $data, 'filter' => $filter, 'resource' => $rate]);
     $data = $data->getData();
     // Filter outbound data
     $data = $filter->out($data);
     // Fix data types
     $data = $this->fixTypes($data);
     // Add null values for missing data
     foreach ($filter->getAttributesToInclude() as $code) {
         if (!array_key_exists($code, $data)) {
             $data[$code] = null;
         }
     }
     // Sort the result by key
     ksort($data);
     return $data;
 }