Esempio n. 1
0
 /**
  * Enforce format of the street field
  *
  * @param array|string $key
  * @param null $value
  * @return \Magento\Framework\Object
  */
 public function setData($key, $value = null)
 {
     if (is_array($key)) {
         $key = $this->_implodeStreetField($key);
     } elseif ($key == 'street') {
         $value = $this->_implodeStreetValue($value);
     }
     return parent::setData($key, $value);
 }
 /**
  * @param string[] $attributesAsArray
  * @param \Magento\Framework\Model\AbstractExtensibleModel $model
  * @return \Magento\Framework\Api\AttributeInterface[]
  */
 protected function addCustomAttributesToModel($attributesAsArray, $model)
 {
     $addedAttributes = [];
     foreach ($attributesAsArray as $attributeCode => $attributeValue) {
         $addedAttributes[$attributeCode] = new AttributeValue([AttributeValue::ATTRIBUTE_CODE => $attributeCode, AttributeValue::VALUE => $attributeValue]);
     }
     $model->setData(array_merge($model->getData(), [\Magento\Framework\Api\CustomAttributesDataInterface::CUSTOM_ATTRIBUTES => $addedAttributes]));
     return $addedAttributes;
 }
Esempio n. 3
0
 /**
  * Overwrite data in the object.
  *
  * The $key can be string or array.
  * If $key is string, the attribute value will be overwritten by $value
  *
  * If $key is an array, it will overwrite all the data in the object.
  *
  * $isChanged will specify if the object needs to be saved after an update.
  *
  * @param string|array $key
  * @param mixed $value
  * @return \Magento\Framework\DataObject
  */
 public function setData($key, $value = null)
 {
     if ($this->hasLockedAttributes()) {
         if (is_array($key)) {
             foreach ($this->getLockedAttributes() as $attribute) {
                 if (isset($key[$attribute])) {
                     unset($key[$attribute]);
                 }
             }
         } elseif ($this->isLockedAttribute($key)) {
             return $this;
         }
     } elseif ($this->isReadonly()) {
         return $this;
     }
     return parent::setData($key, $value);
 }
 /**
  * Enforce format of the street field or other multiline custom attributes
  *
  * @param array|string $key
  * @param null $value
  * @return \Magento\Framework\DataObject
  */
 public function setData($key, $value = null)
 {
     if (is_array($key)) {
         $key = $this->_implodeArrayField($key);
     } elseif (is_array($value) && $this->isAddressMultilineAttribute($key)) {
         $value = $this->_implodeArrayValues($value);
     }
     return parent::setData($key, $value);
 }
Esempio n. 5
0
 /**
  * Enforce format of the street field
  *
  * @param array|string $key
  * @param null $value
  * @return \Magento\Framework\Object
  */
 public function setData($key, $value = null)
 {
     if (is_array($key)) {
         $key = $this->_implodeArrayField($key);
     } elseif (is_array($value)) {
         $value = $this->_implodeArrayValues($value);
     }
     return parent::setData($key, $value);
 }
Esempio n. 6
0
 /**
  * @param string[] $attributesAsArray
  * @param \Magento\Framework\Model\AbstractExtensibleModel $model
  * @return \Magento\Framework\Api\AttributeInterface[]
  */
 protected function addCustomAttributesToModel($attributesAsArray, $model)
 {
     $objectManager = new ObjectManagerHelper($this);
     /** @var \Magento\Framework\Api\AttributeDataBuilder $attributeValueBuilder */
     $attributeValueBuilder = $objectManager->getObject('Magento\\Framework\\Api\\AttributeDataBuilder');
     $addedAttributes = [];
     foreach ($attributesAsArray as $attributeCode => $attributeValue) {
         $addedAttributes[$attributeCode] = $attributeValueBuilder->setAttributeCode($attributeCode)->setValue($attributeValue)->create();
     }
     $model->setData(array_merge($model->getData(), [\Magento\Framework\Api\ExtensibleDataInterface::CUSTOM_ATTRIBUTES => $addedAttributes]));
     return $addedAttributes;
 }