How can i subscribe newsletter in Magento2 using REST API
Clash Royale CLAN TAG#URR8PPP
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;
up vote
4
down vote
favorite
I am developing react-native application. Is there any REST API for subscribe newsletter in Magento2.
magento2 rest-api
add a comment |Â
up vote
4
down vote
favorite
I am developing react-native application. Is there any REST API for subscribe newsletter in Magento2.
magento2 rest-api
add a comment |Â
up vote
4
down vote
favorite
up vote
4
down vote
favorite
I am developing react-native application. Is there any REST API for subscribe newsletter in Magento2.
magento2 rest-api
I am developing react-native application. Is there any REST API for subscribe newsletter in Magento2.
magento2 rest-api
magento2 rest-api
asked 4 hours ago


Pratap varma Penmetsa
15210
15210
add a comment |Â
add a comment |Â
2 Answers
2
active
oldest
votes
up vote
0
down vote
By default, Magento Newsletter
module not support any API. But you can develop you own custom API.
Below link help to develop rest API:
https://alankent.me/2015/07/24/creating-a-new-rest-web-service-in-magento-2/
Also you can use check Action classes from the below path for basic functionality that you need to achieve in API:
MAGE_ROOT_PATH/vendor/magento/module-newsletter/Controller/Subscriber/
Edit:
someone contributed for this on github. you can check using the below link:
https://github.com/magento/magento2/issues/9233
add a comment |Â
up vote
0
down vote
1 Create a module Test_Demo
2 Create webapi.xml
app/code/Test/Demo/etc/webapi.xml
<?xml version="1.0" ?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route url="/V1/newsletter/" method="POST">
<service class="TestDemoApiNewsLetterSubscriptionInterface" method="postNewsLetter"/>
<resources>
<resource ref="anonymous"/>
</resources>
<data>
<parameter name="customer_id" force="true">%customer_id%</parameter>
</data>
</route>
</routes>
3 Create di.xml
app/code/Test/Demo/etc/di.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="TestDemoApiNewsLetterSubscriptionInterface" type="TestDemoModelNewsLetterSubscription" />
</config>
4 Create Interface File
app/code/Test/Demo/Api/NewsLetterSubscriptionInterface.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*/
namespace TestDemoApi;
interface NewsLetterSubscriptionInterface
/**
* POST for newsletter api
* @return string
*/
public function postNewsLetter();
5 Create model file
app/code/Test/Demo/Model/NewsLetterSubscription.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*
*/
namespace TestDemoModel;
use MagentoCustomerApiCustomerRepositoryInterface as CustomerRepository;
class NewsLetterSubscription implements TestDemoApiNewsLetterSubscriptionInterface
/**
* @var MagentoFrameworkAppRequestInterface
*/
protected $_request;
/**
* @var MagentoStoreModelStoreManagerInterface
*/
protected $storeManager;
/**
* @var CustomerRepository
*/
protected $customerRepository;
/**
* @var MagentoNewsletterModelSubscriberFactory
*/
protected $subscriberFactory;
/**
* @var MagentoNewsletterModelSubscriber
*/
protected $_subscriber;
/**
* Initialize dependencies.
* @param MagentoFrameworkAppRequestInterface $request
* @param MagentoStoreModelStoreManagerInterface $storeManager
* @param CustomerRepository $customerRepository
* @param MagentoNewsletterModelSubscriberFactory $subscriberFactory
* @param MagentoNewsletterModelSubscriber $subscriber
*/
public function __construct(
MagentoFrameworkAppRequestInterface $request,
MagentoStoreModelStoreManagerInterface $storeManager,
CustomerRepository $customerRepository,
MagentoNewsletterModelSubscriberFactory $subscriberFactory,
MagentoNewsletterModelSubscriber $subscriber
)
$this->_request = $request;
$this->storeManager = $storeManager;
$this->customerRepository = $customerRepository;
$this->subscriberFactory = $subscriberFactory;
$this->_subscriber = $subscriber;
/**
* @inheritdoc
*/
public function postNewsLetter()
6 Open postman application and testing the same.
Note: Here I am providing logic based on the customer Id. you can change the logic as per your requirement.
add a comment |Â
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
By default, Magento Newsletter
module not support any API. But you can develop you own custom API.
Below link help to develop rest API:
https://alankent.me/2015/07/24/creating-a-new-rest-web-service-in-magento-2/
Also you can use check Action classes from the below path for basic functionality that you need to achieve in API:
MAGE_ROOT_PATH/vendor/magento/module-newsletter/Controller/Subscriber/
Edit:
someone contributed for this on github. you can check using the below link:
https://github.com/magento/magento2/issues/9233
add a comment |Â
up vote
0
down vote
By default, Magento Newsletter
module not support any API. But you can develop you own custom API.
Below link help to develop rest API:
https://alankent.me/2015/07/24/creating-a-new-rest-web-service-in-magento-2/
Also you can use check Action classes from the below path for basic functionality that you need to achieve in API:
MAGE_ROOT_PATH/vendor/magento/module-newsletter/Controller/Subscriber/
Edit:
someone contributed for this on github. you can check using the below link:
https://github.com/magento/magento2/issues/9233
add a comment |Â
up vote
0
down vote
up vote
0
down vote
By default, Magento Newsletter
module not support any API. But you can develop you own custom API.
Below link help to develop rest API:
https://alankent.me/2015/07/24/creating-a-new-rest-web-service-in-magento-2/
Also you can use check Action classes from the below path for basic functionality that you need to achieve in API:
MAGE_ROOT_PATH/vendor/magento/module-newsletter/Controller/Subscriber/
Edit:
someone contributed for this on github. you can check using the below link:
https://github.com/magento/magento2/issues/9233
By default, Magento Newsletter
module not support any API. But you can develop you own custom API.
Below link help to develop rest API:
https://alankent.me/2015/07/24/creating-a-new-rest-web-service-in-magento-2/
Also you can use check Action classes from the below path for basic functionality that you need to achieve in API:
MAGE_ROOT_PATH/vendor/magento/module-newsletter/Controller/Subscriber/
Edit:
someone contributed for this on github. you can check using the below link:
https://github.com/magento/magento2/issues/9233
edited 3 hours ago
answered 4 hours ago


Pankaj Pareek
2,24211235
2,24211235
add a comment |Â
add a comment |Â
up vote
0
down vote
1 Create a module Test_Demo
2 Create webapi.xml
app/code/Test/Demo/etc/webapi.xml
<?xml version="1.0" ?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route url="/V1/newsletter/" method="POST">
<service class="TestDemoApiNewsLetterSubscriptionInterface" method="postNewsLetter"/>
<resources>
<resource ref="anonymous"/>
</resources>
<data>
<parameter name="customer_id" force="true">%customer_id%</parameter>
</data>
</route>
</routes>
3 Create di.xml
app/code/Test/Demo/etc/di.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="TestDemoApiNewsLetterSubscriptionInterface" type="TestDemoModelNewsLetterSubscription" />
</config>
4 Create Interface File
app/code/Test/Demo/Api/NewsLetterSubscriptionInterface.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*/
namespace TestDemoApi;
interface NewsLetterSubscriptionInterface
/**
* POST for newsletter api
* @return string
*/
public function postNewsLetter();
5 Create model file
app/code/Test/Demo/Model/NewsLetterSubscription.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*
*/
namespace TestDemoModel;
use MagentoCustomerApiCustomerRepositoryInterface as CustomerRepository;
class NewsLetterSubscription implements TestDemoApiNewsLetterSubscriptionInterface
/**
* @var MagentoFrameworkAppRequestInterface
*/
protected $_request;
/**
* @var MagentoStoreModelStoreManagerInterface
*/
protected $storeManager;
/**
* @var CustomerRepository
*/
protected $customerRepository;
/**
* @var MagentoNewsletterModelSubscriberFactory
*/
protected $subscriberFactory;
/**
* @var MagentoNewsletterModelSubscriber
*/
protected $_subscriber;
/**
* Initialize dependencies.
* @param MagentoFrameworkAppRequestInterface $request
* @param MagentoStoreModelStoreManagerInterface $storeManager
* @param CustomerRepository $customerRepository
* @param MagentoNewsletterModelSubscriberFactory $subscriberFactory
* @param MagentoNewsletterModelSubscriber $subscriber
*/
public function __construct(
MagentoFrameworkAppRequestInterface $request,
MagentoStoreModelStoreManagerInterface $storeManager,
CustomerRepository $customerRepository,
MagentoNewsletterModelSubscriberFactory $subscriberFactory,
MagentoNewsletterModelSubscriber $subscriber
)
$this->_request = $request;
$this->storeManager = $storeManager;
$this->customerRepository = $customerRepository;
$this->subscriberFactory = $subscriberFactory;
$this->_subscriber = $subscriber;
/**
* @inheritdoc
*/
public function postNewsLetter()
6 Open postman application and testing the same.
Note: Here I am providing logic based on the customer Id. you can change the logic as per your requirement.
add a comment |Â
up vote
0
down vote
1 Create a module Test_Demo
2 Create webapi.xml
app/code/Test/Demo/etc/webapi.xml
<?xml version="1.0" ?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route url="/V1/newsletter/" method="POST">
<service class="TestDemoApiNewsLetterSubscriptionInterface" method="postNewsLetter"/>
<resources>
<resource ref="anonymous"/>
</resources>
<data>
<parameter name="customer_id" force="true">%customer_id%</parameter>
</data>
</route>
</routes>
3 Create di.xml
app/code/Test/Demo/etc/di.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="TestDemoApiNewsLetterSubscriptionInterface" type="TestDemoModelNewsLetterSubscription" />
</config>
4 Create Interface File
app/code/Test/Demo/Api/NewsLetterSubscriptionInterface.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*/
namespace TestDemoApi;
interface NewsLetterSubscriptionInterface
/**
* POST for newsletter api
* @return string
*/
public function postNewsLetter();
5 Create model file
app/code/Test/Demo/Model/NewsLetterSubscription.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*
*/
namespace TestDemoModel;
use MagentoCustomerApiCustomerRepositoryInterface as CustomerRepository;
class NewsLetterSubscription implements TestDemoApiNewsLetterSubscriptionInterface
/**
* @var MagentoFrameworkAppRequestInterface
*/
protected $_request;
/**
* @var MagentoStoreModelStoreManagerInterface
*/
protected $storeManager;
/**
* @var CustomerRepository
*/
protected $customerRepository;
/**
* @var MagentoNewsletterModelSubscriberFactory
*/
protected $subscriberFactory;
/**
* @var MagentoNewsletterModelSubscriber
*/
protected $_subscriber;
/**
* Initialize dependencies.
* @param MagentoFrameworkAppRequestInterface $request
* @param MagentoStoreModelStoreManagerInterface $storeManager
* @param CustomerRepository $customerRepository
* @param MagentoNewsletterModelSubscriberFactory $subscriberFactory
* @param MagentoNewsletterModelSubscriber $subscriber
*/
public function __construct(
MagentoFrameworkAppRequestInterface $request,
MagentoStoreModelStoreManagerInterface $storeManager,
CustomerRepository $customerRepository,
MagentoNewsletterModelSubscriberFactory $subscriberFactory,
MagentoNewsletterModelSubscriber $subscriber
)
$this->_request = $request;
$this->storeManager = $storeManager;
$this->customerRepository = $customerRepository;
$this->subscriberFactory = $subscriberFactory;
$this->_subscriber = $subscriber;
/**
* @inheritdoc
*/
public function postNewsLetter()
6 Open postman application and testing the same.
Note: Here I am providing logic based on the customer Id. you can change the logic as per your requirement.
add a comment |Â
up vote
0
down vote
up vote
0
down vote
1 Create a module Test_Demo
2 Create webapi.xml
app/code/Test/Demo/etc/webapi.xml
<?xml version="1.0" ?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route url="/V1/newsletter/" method="POST">
<service class="TestDemoApiNewsLetterSubscriptionInterface" method="postNewsLetter"/>
<resources>
<resource ref="anonymous"/>
</resources>
<data>
<parameter name="customer_id" force="true">%customer_id%</parameter>
</data>
</route>
</routes>
3 Create di.xml
app/code/Test/Demo/etc/di.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="TestDemoApiNewsLetterSubscriptionInterface" type="TestDemoModelNewsLetterSubscription" />
</config>
4 Create Interface File
app/code/Test/Demo/Api/NewsLetterSubscriptionInterface.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*/
namespace TestDemoApi;
interface NewsLetterSubscriptionInterface
/**
* POST for newsletter api
* @return string
*/
public function postNewsLetter();
5 Create model file
app/code/Test/Demo/Model/NewsLetterSubscription.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*
*/
namespace TestDemoModel;
use MagentoCustomerApiCustomerRepositoryInterface as CustomerRepository;
class NewsLetterSubscription implements TestDemoApiNewsLetterSubscriptionInterface
/**
* @var MagentoFrameworkAppRequestInterface
*/
protected $_request;
/**
* @var MagentoStoreModelStoreManagerInterface
*/
protected $storeManager;
/**
* @var CustomerRepository
*/
protected $customerRepository;
/**
* @var MagentoNewsletterModelSubscriberFactory
*/
protected $subscriberFactory;
/**
* @var MagentoNewsletterModelSubscriber
*/
protected $_subscriber;
/**
* Initialize dependencies.
* @param MagentoFrameworkAppRequestInterface $request
* @param MagentoStoreModelStoreManagerInterface $storeManager
* @param CustomerRepository $customerRepository
* @param MagentoNewsletterModelSubscriberFactory $subscriberFactory
* @param MagentoNewsletterModelSubscriber $subscriber
*/
public function __construct(
MagentoFrameworkAppRequestInterface $request,
MagentoStoreModelStoreManagerInterface $storeManager,
CustomerRepository $customerRepository,
MagentoNewsletterModelSubscriberFactory $subscriberFactory,
MagentoNewsletterModelSubscriber $subscriber
)
$this->_request = $request;
$this->storeManager = $storeManager;
$this->customerRepository = $customerRepository;
$this->subscriberFactory = $subscriberFactory;
$this->_subscriber = $subscriber;
/**
* @inheritdoc
*/
public function postNewsLetter()
6 Open postman application and testing the same.
Note: Here I am providing logic based on the customer Id. you can change the logic as per your requirement.
1 Create a module Test_Demo
2 Create webapi.xml
app/code/Test/Demo/etc/webapi.xml
<?xml version="1.0" ?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route url="/V1/newsletter/" method="POST">
<service class="TestDemoApiNewsLetterSubscriptionInterface" method="postNewsLetter"/>
<resources>
<resource ref="anonymous"/>
</resources>
<data>
<parameter name="customer_id" force="true">%customer_id%</parameter>
</data>
</route>
</routes>
3 Create di.xml
app/code/Test/Demo/etc/di.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="TestDemoApiNewsLetterSubscriptionInterface" type="TestDemoModelNewsLetterSubscription" />
</config>
4 Create Interface File
app/code/Test/Demo/Api/NewsLetterSubscriptionInterface.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*/
namespace TestDemoApi;
interface NewsLetterSubscriptionInterface
/**
* POST for newsletter api
* @return string
*/
public function postNewsLetter();
5 Create model file
app/code/Test/Demo/Model/NewsLetterSubscription.php
<?php
/**
* A Magento 2 module named Test/Demo
* Copyright (C) 2018
*
*/
namespace TestDemoModel;
use MagentoCustomerApiCustomerRepositoryInterface as CustomerRepository;
class NewsLetterSubscription implements TestDemoApiNewsLetterSubscriptionInterface
/**
* @var MagentoFrameworkAppRequestInterface
*/
protected $_request;
/**
* @var MagentoStoreModelStoreManagerInterface
*/
protected $storeManager;
/**
* @var CustomerRepository
*/
protected $customerRepository;
/**
* @var MagentoNewsletterModelSubscriberFactory
*/
protected $subscriberFactory;
/**
* @var MagentoNewsletterModelSubscriber
*/
protected $_subscriber;
/**
* Initialize dependencies.
* @param MagentoFrameworkAppRequestInterface $request
* @param MagentoStoreModelStoreManagerInterface $storeManager
* @param CustomerRepository $customerRepository
* @param MagentoNewsletterModelSubscriberFactory $subscriberFactory
* @param MagentoNewsletterModelSubscriber $subscriber
*/
public function __construct(
MagentoFrameworkAppRequestInterface $request,
MagentoStoreModelStoreManagerInterface $storeManager,
CustomerRepository $customerRepository,
MagentoNewsletterModelSubscriberFactory $subscriberFactory,
MagentoNewsletterModelSubscriber $subscriber
)
$this->_request = $request;
$this->storeManager = $storeManager;
$this->customerRepository = $customerRepository;
$this->subscriberFactory = $subscriberFactory;
$this->_subscriber = $subscriber;
/**
* @inheritdoc
*/
public function postNewsLetter()
6 Open postman application and testing the same.
Note: Here I am providing logic based on the customer Id. you can change the logic as per your requirement.
answered 2 hours ago


Nagaraju Kasa
2,22511034
2,22511034
add a comment |Â
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f244484%2fhow-can-i-subscribe-newsletter-in-magento2-using-rest-api%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password