Created API For Creating Customer Address API - /customerupdate/account/addresscreate {
"customer_id": 2,
"firstname": "cdu",
"lastname": "dfcdu1",
"street": [
"sdgsdg",
"sdgsdg"
],
"telephone": "1234567890",
"company": "sdfgsd",
"Country": "US",
"State":"California",
"City": "thrssur",
"Post_Code": "12345", "set_is_default_shipping":"0",
"set_is_default_billing":"0"
}
CODE:-
<?php
namespace JJ\Customerupdate\Controller\Account;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
use Magento\Framework\Controller\Result\JsonFactory;
use Magento\Customer\Model\AddressFactory;
use Magento\Directory\Model\ResourceModel\Region\Collection;
use Magento\Directory\Model\ResourceModel\Region\CollectionFactory;
class AddressCreate extends \Magento\Framework\App\Action\Action
{
/**
* Result page factory
*
* @var \Magento\Framework\Controller\Result\JsonFactory;
*/
protected $_resultJsonFactory;
protected $formKey;
protected $cart;
protected $product;
/**
* @param Context $context
* @param PageFactory $resultPageFactory
*/
public function __construct(
Context $context,
JsonFactory $resultJsonFactory,
\Magento\Customer\Model\Customer $customerdetail,
\Magento\Customer\Api\CustomerRepositoryInterface $customerrepo,
\Magento\Customer\Api\AddressRepositoryInterface $addressrepo,
\Magento\Customer\Model\AddressFactory $addressrepository,
CollectionFactory $collectionFactory
)
{
parent::__construct($context);
$this->_resultJsonFactory = $resultJsonFactory;
$this->customerdetail = $customerdetail;
$this->customerRepository = $customerrepo;
$this->addressRepository = $addressrepo;
$this->addressfactory =$addressrepository;
$this->collectionFactory = $collectionFactory;
}
public function execute()
{
$resultJson = $this->_resultJsonFactory->create();
$params = $this->getRequest()->getContent();
$writer = new \Zend_Log_Writer_Stream(BP . '/var/log/Address_Create.log');
$logger = new \Zend_Log();
$logger->addWriter($writer);
$logger->info("addressCreate");
$response = array(
'status' => 500,
'message' => 'Error, Please try again',
'params' => $params
);
$logger->info("addressCreate");
if(!empty($params)) {
$addresss=$params;
$addresss= json_decode($addresss,true);
$logger->info(print_r($addresss,true));
if(!empty($addresss)){
$region=$addresss['State'];
$regionCode = $this->collectionFactory->create()
->addRegionNameFilter($region)
->getFirstItem()
->getData('region_id');
$logger->info($regionCode);
$address = $this->addressfactory->create();
$address->setCustomerId($addresss['customer_id'])
->setFirstname($addresss['firstname'])
->setLastname($addresss['lastname'])
->setCountryId($addresss['Country'])
->setPostcode($addresss['Post_Code'])
->setCity($addresss['firstname'])
->setTelephone($addresss['telephone'])
->setCompany($addresss['company'])
->setStreet($addresss['street'])
->setRegionId($regionCode);
if($address['set_is_default_shipping'] == 1){
$logger->info("default_shippping");
$address->setIsDefaultShipping(1);
}
if($address['set_is_default_billing'] == 1){
$address->setIsDefaultBilling(1);
}
$address->save();
}
$response = array(
'status' => 200,
'message' => 'Customer Address Added',
'params' => $address->getEntityId()
);
}
return $resultJson->setData($response);
}
}
?>