示例#1
0
 /**
  * Saves a list of attributes for the order service.
  *
  * @param array $attributes Attributes which have to be saved
  * @param MShop_Order_Item_Base_Service_Interface $serviceItem Service Item which saves the attributes
  */
 protected function _saveAttributes(array $attributes, MShop_Order_Item_Base_Service_Interface $serviceItem, $type = 'payment/paypal')
 {
     $attributeManager = MShop_Factory::createManager($this->_getContext(), 'order/base/service/attribute');
     $map = array();
     foreach ($serviceItem->getAttributes() as $attributeItem) {
         $map[$attributeItem->getCode()] = $attributeItem;
     }
     foreach ($attributes as $code => $value) {
         if (array_key_exists($code, $map) !== true) {
             $attributeItem = $attributeManager->createItem();
             $attributeItem->setServiceId($serviceItem->getId());
             $attributeItem->setCode($code);
             $attributeItem->setType($type);
         } else {
             $attributeItem = $map[$code];
         }
         $attributeItem->setValue($value);
         $attributeManager->saveItem($attributeItem);
     }
 }