Example #1
0
 /**
  * Set region to the attribute
  *
  * @param \Magento\Framework\DataObject $object
  * @return $this
  */
 public function beforeSave($object)
 {
     if (is_numeric($object->getRegion())) {
         $region = $this->_regionFactory->create()->load((int) $object->getRegion());
         if ($region) {
             $object->setRegionId($region->getId());
             $object->setRegion($region->getCode());
         }
     }
     return $this;
 }
Example #2
0
 /**
  * Prepare object for save
  *
  * @param \Magento\Framework\DataObject $object
  * @return $this
  */
 public function beforeSave($object)
 {
     $region = $object->getData('region');
     if (is_numeric($region)) {
         $regionModel = $this->_createRegionInstance();
         $regionModel->load($region);
         if ($regionModel->getId() && $object->getCountryId() == $regionModel->getCountryId()) {
             $object->setRegionId($regionModel->getId())->setRegion($regionModel->getName());
         }
     }
     return $this;
 }
Example #3
0
 /**
  * Adopt specified address object to be compatible with Magento
  *
  * @param \Magento\Framework\DataObject $address
  * @return void
  */
 protected function _applyStreetAndRegionWorkarounds(\Magento\Framework\DataObject $address)
 {
     // merge street addresses into 1
     if ($address->hasStreet2()) {
         $address->setStreet(implode("\n", [$address->getStreet(), $address->getStreetLine(2)]));
         $address->unsStreet2();
     }
     // attempt to fetch region_id from directory
     if ($address->getCountryId() && $address->getRegion()) {
         $regions = $this->_countryFactory->create()->loadByCode($address->getCountryId())->getRegionCollection()->addRegionCodeOrNameFilter($address->getRegion())->setPageSize(1);
         foreach ($regions as $region) {
             $address->setRegionId($region->getId());
             $address->setExportedKeys(array_merge($address->getExportedKeys(), ['region_id']));
             break;
         }
     }
 }