Customer Updation API from NetSuite to Website

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);
    }
}
?>

Leave a comment

Your email address will not be published. Required fields are marked *