/** * @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; } } }
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; }
/** * 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; }
/** * 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; }
/** * 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; }