/**
  * Get categories
  * @return array
  */
 public function getCategories()
 {
     $result = array();
     if (!empty($this->response->CategoryArray->Category)) {
         foreach ($this->response->CategoryArray->Category as $category) {
             $category_id = XmlHelper::getAsString($category, 'CategoryID');
             $result[$category_id] = array('CategoryID' => $category_id, 'CategoryLevel' => XmlHelper::getAsString($category, 'CategoryLevel'), 'CategoryName' => XmlHelper::getAsString($category, 'CategoryName'), 'CategoryParentID' => XmlHelper::getAsString($category, 'CategoryParentID'), 'Expired' => XmlHelper::getAsBoolean($category, 'Expired'), 'IntlAutosFixedCat' => XmlHelper::getAsBoolean($category, 'IntlAutosFixedCat'), 'LeafCategory' => XmlHelper::getAsBoolean($category, 'LeafCategory'), 'LSD' => XmlHelper::getAsBoolean($category, 'LSD'), 'ORPA' => XmlHelper::getAsBoolean($category, 'ORPA'), 'Virtual' => XmlHelper::getAsBoolean($category, 'Virtual'), 'BestOfferEnabled' => XmlHelper::getAsBoolean($category, 'BestOfferEnabled'), 'B2BVATEnabled' => XmlHelper::getAsBoolean($category, 'B2BVATEnabled'), 'AutoPayEnabled' => XmlHelper::getAsBoolean($category, 'AutoPayEnabled'));
             if ($result[$category_id]['CategoryParentID'] == $category_id) {
                 $result[$category_id]['CategoryParentID'] = 0;
             }
         }
         foreach ($result as &$item) {
             $parent_category_id = $item['CategoryParentID'];
             $parent_ids = array();
             $names = array($item['CategoryName']);
             while ($parent_category_id) {
                 $category = $result[$parent_category_id];
                 $parent_ids[] = $parent_category_id;
                 $names[] = $category['CategoryName'];
                 $parent_category_id = $category['CategoryParentID'];
             }
             $item['CategoryParentIds'] = array_reverse($parent_ids);
             $item['CategoryNames'] = array_reverse($names);
         }
         unset($item);
     }
     return $result;
 }
Example #2
0
 /**
  * @return ProductVariation[]
  */
 public function getProductVariations()
 {
     $result = array();
     $options = array();
     if (!empty($this->item->Variations->Variation)) {
         foreach ($this->item->Variations->Variation as $item) {
             $variants = array();
             $price = XmlHelper::getAsDouble($item, 'StartPrice');
             $quantity = XmlHelper::getAsDouble($item, 'Quantity');
             foreach ($item->VariationSpecifics->NameValueList as $option_item) {
                 $option_name = XmlHelper::getAsString($option_item, 'Name');
                 $variant_name = XmlHelper::getAsString($option_item, 'Value');
                 if (!isset($options[$option_name])) {
                     $option = new ProductOption($option_name);
                     $options[$option_name] = $option;
                 } else {
                     $option = $options[$option_name];
                 }
                 $variant = new ProductOptionVariant($option, $variant_name);
                 $option->setVariant($variant);
                 $variants[] = $variant;
             }
             $result[] = new ProductVariation($price, $quantity, $variants);
         }
     }
     return $result;
 }
 /**
  * Constructor
  * @param \SimpleXMLElement $response
  */
 public function __construct(\SimpleXMLElement $response)
 {
     $this->code_service = XmlHelper::getAsBoolean($response, 'CODService');
     $this->dimensions_required = XmlHelper::getAsBoolean($response, 'DimensionsRequired');
     $this->expedited_service = XmlHelper::getAsBoolean($response, 'ExpeditedService');
     $this->international_service = XmlHelper::getAsBoolean($response, 'InternationalService');
     $this->surcharge_applicable = XmlHelper::getAsBoolean($response, 'SurchargeApplicable');
     $this->valid_for_selling_flow = XmlHelper::getAsBoolean($response, 'ValidForSellingFlow');
     $this->weight_required = XmlHelper::getAsBoolean($response, 'WeightRequired');
     $this->service_type = XmlHelper::getArrayAsStrings($response, 'ServiceType');
     $this->shipping_carrier = XmlHelper::getArrayAsStrings($response, 'ShippingCarrier');
     $this->shipping_package = XmlHelper::getArrayAsStrings($response, 'ShippingPackage');
     if (isset($response->ShippingServicePackageDetails)) {
         $this->shipping_service_package_details = array();
         foreach ($response->ShippingServicePackageDetails as $item) {
             $this->shipping_service_package_details[] = array('dimensions_required' => XmlHelper::normalizeBoolean($item->DimensionsRequired), 'name' => (string) $item->Name);
         }
     }
     if (isset($response->DeprecationDetails)) {
         $this->deprecation_details = array();
         foreach ($response->DeprecationDetails as $item) {
             $this->deprecation_details[] = array('announcement_start_time' => isset($item->AnnouncementStartTime) ? $item->AnnouncementStartTime : null, 'event_time' => isset($item->EventTime) ? $item->EventTime : null, 'message_type' => isset($item->MessageType) ? $item->MessageType : null);
         }
     }
     if (isset($response->SiteID)) {
         $this->site_id = $response->SiteID;
     }
     $this->cost_group_flat = XmlHelper::getAsString($response, 'CostGroupFlat', '');
     $this->description = XmlHelper::getAsString($response, 'Description', '');
     $this->mapped_to_shipping_service_id = XmlHelper::getAsString($response, 'MappedToShippingServiceID', '');
     $this->shipping_category = XmlHelper::getAsString($response, 'ShippingCategory', '');
     $this->shipping_service = XmlHelper::getAsString($response, 'ShippingService', '');
     $this->shipping_service_id = XmlHelper::getAsString($response, 'ShippingServiceID', '');
     $this->shipping_time_max = XmlHelper::getAsString($response, 'ShippingTimeMax', '');
     $this->shipping_time_min = XmlHelper::getAsString($response, 'ShippingTimeMin', '');
     $this->detail_version = XmlHelper::getAsString($response, 'DetailVersion', '');
     $this->update_time = XmlHelper::getAsString($response, 'UpdateTime', '');
 }
 /**
  * Get field value of key as boolean
  *
  * @param string $key
  * @return bool|null
  */
 public function getFieldBoolean($key)
 {
     /** @var \SimpleXMLElement $category */
     $category = $this->response->Category;
     /** @var \SimpleXMLElement $site */
     $site = $this->response->SiteDefaults;
     if (!empty($category->{$key})) {
         return XmlHelper::getAsBoolean($category, $key);
     }
     return XmlHelper::getAsBoolean($site, $key);
 }