Ejemplo n.º 1
0
 /**
  * @magentoDataFixture Mage/Catalog/_files/product_simple.php
  */
 public function testGetOrderOptions()
 {
     $product = new Mage_Catalog_Model_Product();
     $this->assertEquals(array(), $this->_model->getOrderOptions($product));
     $product->load(1);
     // fixture
     $product->addCustomOption('info_buyRequest', serialize(new Varien_Object(array('qty' => 2))));
     foreach ($product->getOptions() as $id => $option) {
         if ('field' == $option->getType()) {
             $product->addCustomOption('option_ids', $id);
             $quoteOption = clone $option;
             $product->addCustomOption("option_{$id}", $quoteOption->getValue());
             $optionArr = $this->_model->getOrderOptions($product);
             $this->assertArrayHasKey('info_buyRequest', $optionArr);
             $this->assertArrayHasKey('options', $optionArr);
             $this->assertArrayHasKey(0, $optionArr['options']);
             $renderedOption = $optionArr['options'][0];
             $this->assertArrayHasKey('label', $renderedOption);
             $this->assertArrayHasKey('value', $renderedOption);
             $this->assertArrayHasKey('print_value', $renderedOption);
             $this->assertArrayHasKey('option_id', $renderedOption);
             $this->assertArrayHasKey('option_type', $renderedOption);
             $this->assertArrayHasKey('option_value', $renderedOption);
             $this->assertArrayHasKey('custom_view', $renderedOption);
             $this->assertEquals($id, $renderedOption['option_id']);
             break;
         }
     }
 }
Ejemplo n.º 2
0
 public function getOrderOptions($product = null)
 {
     $optionArr = parent::getOrderOptions($product);
     if ($product->hasCustomOptions()) {
         $src_option = $product->getCustomOption('src_option')->getValue();
         $option['label'] = 'Personalized Image';
         $option['value'] = "<img width='100' src='{$src_option}'>";
         //// array order page not ok
         $option['print_value'] = "<img width='100' src='{$src_option}'>";
         $option['custom_view'] = "<img width='100' src='{$src_option}'>";
         $optionArr['options'][] = $option;
     }
     return $optionArr;
 }
Ejemplo n.º 3
0
 /**
  * Prepare additional options/information for order item which will be
  * created from this product
  *
  * @param  Mage_Catalog_Model_Product $product
  * @return array
  */
 public function getOrderOptions($product = null)
 {
     $options = parent::getOrderOptions($product);
     $options['attributes_info'] = $this->getSelectedAttributesInfo($product);
     if ($simpleOption = $this->getProduct($product)->getCustomOption('simple_product')) {
         $options['simple_name'] = $simpleOption->getProduct($product)->getName();
         $options['simple_sku'] = $simpleOption->getProduct($product)->getSku();
     }
     $options['product_calculations'] = self::CALCULATE_PARENT;
     $options['shipment_type'] = self::SHIPMENT_TOGETHER;
     return $options;
 }
Ejemplo n.º 4
0
 /**
  * Prepare additional options/information for order item which will be
  * created from this product
  *
  * @param Mage_Catalog_Model_Product $product
  * @return array
  */
 public function getOrderOptions($product = null)
 {
     $optionArr = parent::getOrderOptions($product);
     $bundleOptions = array();
     $product = $this->getProduct($product);
     if ($product->hasCustomOptions()) {
         $customOption = $product->getCustomOption('bundle_option_ids');
         $optionIds = unserialize($customOption->getValue());
         $options = $this->getOptionsByIds($optionIds, $product);
         $customOption = $product->getCustomOption('bundle_selection_ids');
         $selectionIds = unserialize($customOption->getValue());
         $selections = $this->getSelectionsByIds($selectionIds, $product);
         foreach ($selections->getItems() as $selection) {
             if ($selection->isSalable()) {
                 $selectionQty = $product->getCustomOption('selection_qty_' . $selection->getSelectionId());
                 if ($selectionQty) {
                     $price = $product->getPriceModel()->getSelectionFinalTotalPrice($product, $selection, 0, $selectionQty->getValue());
                     $option = $options->getItemById($selection->getOptionId());
                     if (!isset($bundleOptions[$option->getId()])) {
                         $bundleOptions[$option->getId()] = array('option_id' => $option->getId(), 'label' => $option->getTitle(), 'value' => array());
                     }
                     $bundleOptions[$option->getId()]['value'][] = array('title' => $selection->getName(), 'qty' => $selectionQty->getValue(), 'price' => Mage::app()->getStore()->convertPrice($price));
                 }
             }
         }
     }
     $optionArr['bundle_options'] = $bundleOptions;
     /**
      * Product Prices calculations save
      */
     if ($product->getPriceType()) {
         $optionArr['product_calculations'] = self::CALCULATE_PARENT;
     } else {
         $optionArr['product_calculations'] = self::CALCULATE_CHILD;
     }
     $optionArr['shipment_type'] = $product->getShipmentType();
     return $optionArr;
 }
Ejemplo n.º 5
0
 /**
  * Prepare additional options/information for order item which will be
  * created from this product
  *
  * @param Mage_Catalog_Model_Product $product
  *
  * @return array
  */
 public function getOrderOptions($product = null)
 {
     $optionArr = parent::getOrderOptions($product);
     $optionArr['shipment_type'] = Mage_Catalog_Model_Product_Type_Abstract::SHIPMENT_SEPARATELY;
     return $optionArr;
 }