/**
  * @param null $limit
  * @param null $offset
  * @param array $uids
  * @return array
  */
 public function getItems($limit = null, $offset = null, array $uids = array())
 {
     $products = array();
     foreach ($this->getProductIds($limit, $offset, $uids) as $product) {
         /*
          * prepare data
          */
         if (version_compare(_PS_VERSION_, '1.5.0.0', '<')) {
             $this->currentProduct = new Product($product['id_product'], true, $this->getPlugin()->getLanguageId());
         } else {
             $this->currentProduct = new Product($product['id_product'], true, $this->getPlugin()->getLanguageId(), $this->getPlugin()->getContext()->shop->id);
         }
         $resultProduct = get_object_vars($this->currentProduct);
         $this->currentAdditionalInfo = array();
         $this->addAdditionalInfo('currency', $this->getPlugin()->getContext()->currency->iso_code);
         $this->addAdditionalInfo('deeplink', $this->prepareDeeplink());
         $this->addAdditionalInfo('images', $this->prepareImages($this->currentProduct->getImages($this->getPlugin()->getLanguageId())));
         $this->addAdditionalInfo('price', $this->preparePrice());
         $this->addAdditionalInfo('categories', $this->prepareCategories());
         $this->addAdditionalInfo('shipping', $this->prepareShipping());
         $this->addAdditionalInfo('properties', $this->prepareProperties());
         $this->addAdditionalInfo('stock', $this->prepareStock());
         $this->addAdditionalInfo('identifiers', $this->prepareIdentifiers());
         $this->addAdditionalInfo('tags', $this->prepareTags());
         $this->addAdditionalInfo('attribute_groups', $this->prepareAttributeGroups());
         $this->addAdditionalInfo('inputs', $this->prepareInputs());
         $this->addAdditionalInfo('description', $this->prepareDescription());
         $this->addAdditionalInfo('promotion', $this->preparePromotion());
         $this->addAdditionalInfo('tax_percent', $this->prepareTaxPercent());
         $this->addAdditionalInfo('tax_class', $this->prepareTaxClass());
         $this->addAdditionalInfo('relations', $this->prepareRelations());
         /**
          * prepare children
          */
         $this->addAdditionalInfo('children', $this->prepareChildren());
         /**
          * manufacturer
          */
         $manufacturerItem = new Shopgate_Model_Catalog_Manufacturer();
         $manufacturerItem->setUid($this->currentProduct->id_manufacturer);
         $manufacturerItem->setTitle($this->currentProduct->manufacturer_name);
         $this->addAdditionalInfo('manufacturer', $manufacturerItem);
         /**
          * visibility
          */
         $visibilityItem = new Shopgate_Model_Catalog_Visibility();
         $visibilityItem->setLevel($this->mapVisibility($this->currentProduct->visibility));
         $this->addAdditionalInfo('visibility', $visibilityItem);
         $resultProduct['_additional_info'] = $this->currentAdditionalInfo;
         $resultProduct['id_product'] = $resultProduct['id'];
         $products[] = $resultProduct;
     }
     return $products;
 }
Example #2
0
 /**
  * set visibility
  */
 public function setVisibility()
 {
     $level = null;
     $visibility = new Shopgate_Model_Catalog_Visibility();
     switch ($this->item->getVisibility()) {
         case Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH:
             $level = Shopgate_Model_Catalog_Visibility::DEFAULT_VISIBILITY_CATALOG_AND_SEARCH;
             break;
         case Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG:
             $level = Shopgate_Model_Catalog_Visibility::DEFAULT_VISIBILITY_CATALOG;
             break;
         case Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH:
             $level = Shopgate_Model_Catalog_Visibility::DEFAULT_VISIBILITY_SEARCH;
             break;
         case Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE:
             $level = Shopgate_Model_Catalog_Visibility::DEFAULT_VISIBILITY_NOT_VISIBLE;
             break;
     }
     $visibility->setLevel($level);
     $visibility->setMarketplace(true);
     parent::setVisibility($visibility);
 }