예제 #1
0
 /**
  *  Returns actual product data: current id, options, options data and option values
  *
  * @param Mage_Catalog_Model_Resource_Product_Option_Collection $options
  * @return array
  */
 protected function _getActualOptionsData(Mage_Catalog_Model_Resource_Product_Option_Collection $options)
 {
     $actualOptionId = 0;
     $actualOptions = array();
     // array of type and title types, key is element ID
     $actualData = array();
     // array of option data
     $actualValues = array();
     // array of option values data
     /** @var $option Mage_Catalog_Model_Product_Option */
     foreach ($options->getItems() as $option) {
         $lastOptionKey = $option->getType() . '|' . $option->getTitle();
         $actualOptionId++;
         $actualOptions[$actualOptionId] = $lastOptionKey;
         $actualData[$actualOptionId] = $this->_getOptionData($option);
         if ($optionValues = $this->_getOptionValues($option)) {
             $actualValues[$actualOptionId] = $optionValues;
         }
     }
     return array('id' => $actualOptionId, 'options' => $actualOptions, 'data' => $actualData, 'values' => $actualValues);
 }
예제 #2
0
파일: Option.php 프로젝트: nemphys/magento2
 /**
  * Load exiting custom options data
  *
  * @return Mage_ImportExport_Model_Import_Entity_Product_Option
  */
 protected function _initOldCustomOptions()
 {
     if (!$this->_oldCustomOptions) {
         $oldCustomOptions = array();
         $optionTitleTable = $this->_tables['catalog_product_option_title'];
         $productIds = array_values($this->_productsSkuToId);
         foreach ($this->_storeCodeToId as $storeId) {
             $addCustomOptions = function (Mage_Catalog_Model_Product_Option $customOption) use(&$oldCustomOptions, $storeId) {
                 $productId = $customOption->getProductId();
                 if (!isset($oldCustomOptions[$productId])) {
                     $oldCustomOptions[$productId] = array();
                 }
                 if (isset($oldCustomOptions[$productId][$customOption->getId()])) {
                     $oldCustomOptions[$productId][$customOption->getId()]['titles'][$storeId] = $customOption->getTitle();
                 } else {
                     $oldCustomOptions[$productId][$customOption->getId()] = array('titles' => array($storeId => $customOption->getTitle()), 'type' => $customOption->getType());
                 }
             };
             /** @var $collection Mage_Catalog_Model_Resource_Product_Option_Collection */
             $this->_optionCollection->reset();
             $this->_optionCollection->addProductToFilter($productIds);
             $this->_optionCollection->getSelect()->join(array('option_title' => $optionTitleTable), 'option_title.option_id = main_table.option_id', array('title' => 'title', 'store_id' => 'store_id'))->where('option_title.store_id = ?', $storeId);
             $this->_byPagesIterator->iterate($this->_optionCollection, $this->_pageSize, array($addCustomOptions));
         }
         $this->_oldCustomOptions = $oldCustomOptions;
     }
     return $this;
 }