Skip to content

Commit 878aa5c

Browse files
authored
previous implementation of state / region was not passing mandatory region id field (#516)
1 parent dfe7399 commit 878aa5c

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

app/code/Meta/Sales/Helper/ShippingHelper.php

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Magento\Framework\App\Helper\Context;
1111
use Magento\Sales\Model\Order\Shipment\Track;
1212
use Psr\Log\LoggerInterface;
13+
use Magento\Directory\Model\Region;
1314

1415
class ShippingHelper extends AbstractHelper
1516
{
@@ -83,19 +84,13 @@ public function getRegionName($stateId)
8384
*
8485
* @param null|string $stateCode - State code
8586
* @param null|string $countryCode - Country code
86-
* @return null|string
87+
* @return Region
8788
*/
88-
public function getRegionNameFromCode(?string $stateCode, ?string $countryCode): ?string
89+
public function getRegionFromCode(?string $stateCode, ?string $countryCode): Region
8990
{
90-
$regionName = $stateCode ?? null;
91-
try {
92-
$region = $this->regionFactory->create();
93-
$region = $region->loadByCode($stateCode, $countryCode);
94-
$regionName = $region->getDefaultName() ?? $regionName;
95-
} catch (Exception $e) {
96-
$this->logger->critical($e->getMessage());
97-
}
98-
return $regionName;
91+
$region = $this->regionFactory->create();
92+
$region = $region->loadByCode($stateCode, $countryCode);
93+
return $region;
9994
}
10095

10196
/**

app/code/Meta/Sales/Model/Mapper/OrderMapper.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,13 +290,14 @@ private function getOrderBillingAddress(array $data): Order\Address
290290
? [$data['shipping_address']['street1'], $data['shipping_address']['street2']]
291291
: $data['shipping_address']['street1'];
292292

293-
$regionName = $this->shippingHelper->getRegionNameFromCode(
293+
$region = $this->shippingHelper->getRegionFromCode(
294294
$data['shipping_address']['state'],
295295
$data['shipping_address']['country']
296296
);
297297

298298
$addressData = [
299-
'region' => $regionName,
299+
'region_id' => $region->getRegionId() ?? null,
300+
'region' => $region->getDefaultName() ?? $data['shipping_address']['state'],
300301
'postcode' => $data['shipping_address']['postal_code'],
301302
'firstname' => $data['shipping_address']['first_name'],
302303
'lastname' => $data['shipping_address']['last_name'],
@@ -309,8 +310,8 @@ private function getOrderBillingAddress(array $data): Order\Address
309310

310311
/** @var Order\Address $billingAddress */
311312
$billingAddress = $this->orderAddressFactory->create(['data' => $addressData]);
312-
$billingAddress->setAddressType(Order\Address::TYPE_BILLING);
313313

314+
$billingAddress->setAddressType(Order\Address::TYPE_BILLING);
314315
return $billingAddress;
315316
}
316317

0 commit comments

Comments
 (0)