Ejemplo n.º 1
0
 /**
  * Assign options to item
  *
  * @param Mage_Sales_Model_Quote_Item $item
  * @param array $options
  */
 protected function _assignOptionsToItem(Mage_Sales_Model_Quote_Item $item, $options)
 {
     if ($optionIds = $item->getOptionByCode('option_ids')) {
         foreach (explode(',', $optionIds->getValue()) as $optionId) {
             $item->removeOption('option_' . $optionId);
         }
         $item->removeOption('option_ids');
     }
     if ($item->getOptionByCode('additional_options')) {
         $item->removeOption('additional_options');
     }
     $item->save();
     if (!empty($options['options'])) {
         $item->addOption(new Varien_Object(array('product' => $item->getProduct(), 'code' => 'option_ids', 'value' => implode(',', array_keys($options['options'])))));
         foreach ($options['options'] as $optionId => $optionValue) {
             $item->addOption(new Varien_Object(array('product' => $item->getProduct(), 'code' => 'option_' . $optionId, 'value' => $optionValue)));
         }
     }
     if (!empty($options['additional_options'])) {
         $item->addOption(new Varien_Object(array('product' => $item->getProduct(), 'code' => 'additional_options', 'value' => serialize($options['additional_options']))));
     }
     return $this;
 }
Ejemplo n.º 2
0
 /**
  * @param Mage_Sales_Model_Quote_Item $lineItem
  * @param Vbw_Punchout_Model_Sales_Stash $stash
  * @param Mage_Checkout_Model_Cart $cartObj
  * @param $options
  */
 public function unstashLineItemData($lineItem, $stash, $cartObj, $options)
 {
     $customData = Mage::getStoreConfig('vbw_punchout/order/stash_item_list');
     $customData = unserialize($customData);
     if (!empty($customData)) {
         foreach ($customData as $datum) {
             $info = $stash->stash($datum['key']);
             if (!empty($info) || is_numeric($info)) {
                 if (preg_match('/^([^\\/]+)\\/([^\\/]+)$/', $datum['key'], $s)) {
                     $src = $s[1];
                     $code = $s[2];
                     switch ($src) {
                         case "option":
                             $option = array('code' => $code, 'value' => $info);
                             $lineItem->addOption($option);
                     }
                 } else {
                     $lineItem->setData($datum['key'], $info);
                 }
             }
         }
     }
     Mage::dispatchEvent('punchout_cart_item_unstash', array('stash_item' => $stash, 'item' => $lineItem, 'cart' => $cartObj, 'options' => $options));
     Mage::helper('vbw_punchout')->debug('unstash item ' . print_r(Mage::helper('vbw_punchout/debug')->debugData($lineItem->getData()), true));
 }