How To Create REST API And How To Fetch The Magento Products Info..
Is there any demo available for above?
Products Specific Magento REST API Requests
Retrieve the list of products, create, update, or delete a product. You will call Magento REST API like this:
http://www.my-magento-store.com/api/rest/products
Product Categories
Retrieve the list of categories assigned to the product, assign, and unassign the category to/from the specific product. You will call Magento REST API like this:
http://www.my-magento-store.com/api/rest/products/:productId/categories
Product Images
Retrieve the list of images assigned to the product, add, update, and remove an image to/from the specific product. You will call Magento REST API like this:
http://www.my-magento-store.com/api/rest/products/:productId/images
Magento REST API examples:
$callbackUrl = "http://www.my-magento-store.com/oauth_admin.php";
$temporaryCredentialsRequestUrl = "http://www.my-magento-store.com/oauth/initiate?oauth_callback=" . urlencode($callbackUrl);
$adminAuthorizationUrl = 'http://www.my-magento-store.com/admin/oauth_authorize';
$accessTokenRequestUrl = 'http://www.my-magento-store.com/oauth/token';
$apiUrl = 'http://www.my-magento-store.com/api/rest';
$consumerKey = '{Consumer Key}';
$consumerSecret = '{Consumer Secret}';
session_start();
if (!isset($_GET['oauth_token']) && isset($_SESSION['state']) && $_SESSION['state'] == 1) {
$_SESSION['state'] = 0;
}
try {
$authType = ($_SESSION['state'] == 2) ? OAUTH_AUTH_TYPE_AUTHORIZATION : OAUTH_AUTH_TYPE_URI;
$oauthClient = new OAuth($consumerKey, $consumerSecret, OAUTH_SIG_METHOD_HMACSHA1, $authType);
$oauthClient->enableDebug();
if (!isset($_GET['oauth_token']) && !$_SESSION['state']) {
$requestToken = $oauthClient->getRequestToken($temporaryCredentialsRequestUrl);
$_SESSION['secret'] = $requestToken['oauth_token_secret'];
$_SESSION['state'] = 1;
header('Location: ' . $adminAuthorizationUrl . '?oauth_token=' . $requestToken['oauth_token']);
exit;
} else if ($_SESSION['state'] == 1) {
$oauthClient->setToken($_GET['oauth_token'], $_SESSION['secret']);
$accessToken = $oauthClient->getAccessToken($accessTokenRequestUrl);
$_SESSION['state'] = 2;
$_SESSION['token'] = $accessToken['oauth_token'];
$_SESSION['secret'] = $accessToken['oauth_token_secret'];
header('Location: ' . $callbackUrl);
exit;
} else {
$oauthClient->setToken($_SESSION['token'], $_SESSION['secret']);
$resourceUrl = "$apiUrl/products";
$productData = json_encode(array(
'type_id' => 'simple',
'attribute_set_id' => 4,
'sku' => 'simple' . uniqid(),
'weight' => 1,
'status' => 1,
'visibility' => 4,
'name' => 'My Product Name',
'description' => 'My Product Description',
'short_description' => 'My Products Short Description',
'price' => 6.99,
'tax_class_id' => 0,
));
$headers = array('Content-Type' => 'application/json');
$oauthClient->fetch($resourceUrl, $productData, OAUTH_HTTP_METHOD_POST, $headers);
print_r($oauthClient->getLastResponseInfo());
}
} catch (OAuthException $e) {
print_r($e);
}
As you can see in the code given above, at the top you have to declare your connection, authetication tokens. Since this example is using oAuth authentication you need to specify it’s location on your host, consumer and secret key before you make a call to http://www.my-magento-store.com/api/rest/. If everything is alright you can create a JSON array of your simple product ready to push live.
Now, let’s look at another example
$callbackUrl = "http://www.my-magento-store.com/oauth_customer.php";
$temporaryCredentialsRequestUrl = "http://www.my-magento-store.com/oauth/initiate?oauth_callback=" . urlencode($callbackUrl);
$adminAuthorizationUrl = 'http://www.my-magento-store.com/oauth/authorize';
$accessTokenRequestUrl = 'http://www.my-magento-store.com/oauth/token';
$apiUrl = 'http://www.my-magento-store.com/api/rest';
$consumerKey = '{Consumer Key}';
$consumerSecret = '{Consumer Secret}';
session_start();
if (!isset($_GET['oauth_token']) && isset($_SESSION['state']) && $_SESSION['state'] == 1) {
$_SESSION['state'] = 0;
}
try {
$authType = ($_SESSION['state'] == 2) ? OAUTH_AUTH_TYPE_AUTHORIZATION : OAUTH_AUTH_TYPE_URI;
$oauthClient = new OAuth($consumerKey, $consumerSecret, OAUTH_SIG_METHOD_HMACSHA1, $authType);
$oauthClient->enableDebug();
if (!isset($_GET['oauth_token']) && !$_SESSION['state']) {
$requestToken = $oauthClient->getRequestToken($temporaryCredentialsRequestUrl);
$_SESSION['secret'] = $requestToken['oauth_token_secret'];
$_SESSION['state'] = 1;
header('Location: ' . $adminAuthorizationUrl . '?oauth_token=' . $requestToken['oauth_token']);
exit;
} else if ($_SESSION['state'] == 1) {
$oauthClient->setToken($_GET['oauth_token'], $_SESSION['secret']);
$accessToken = $oauthClient->getAccessToken($accessTokenRequestUrl);
$_SESSION['state'] = 2;
$_SESSION['token'] = $accessToken['oauth_token'];
$_SESSION['secret'] = $accessToken['oauth_token_secret'];
header('Location: ' . $callbackUrl);
exit;
} else {
$oauthClient->setToken($_SESSION['token'], $_SESSION['secret']);
$resourceUrl = "$apiUrl/products";
$oauthClient->fetch($resourceUrl);
$productsList = json_decode($oauthClient->getLastResponse());
print_r($productsList);
}
} catch (OAuthException $e) {
print_r($e);
}
The above code will retrieve the list of all products as a customer via Magento REST API. Keep in mind that authorization headers are required for Admin and Customer user types. If you are enabling REST for guests you can do like this:
http://www.my-magento-store.com/api/rest/products?limit=1
This will result in the following XML output
<?xml version="1.0"?>
<magento_api>
<data_item>
<entity_id>18</entity_id>
<type_id>simple</type_id>
<sku>SKU Number</sku>
<description>Your Product Description
</description>
<meta_keyword>Meta Keywords </meta_keyword>
<short_description>Short Description</short_description>
<name>Product Name</name>
<meta_title>Product Title</meta_title>
<meta_description>Meta Desciption</meta_description>
<regular_price_with_tax>Regular Price of the product </regular_price_with_tax>
<regular_price_without_tax>Price without Tax</regular_price_without_tax>
<final_price_with_tax>Final Price With Tax</final_price_with_tax>
<final_price_without_tax>Final Price without Tax</final_price_without_tax>
<is_saleable>1</is_saleable>
<image_url>Path of the product image</image_url>
</data_item>
</magento_api>
Similarly, you can call REST API URL’s to get specific XML data with limit parameter, default is 10 products per request but one request can only request a maximum of 100 products. To get the next set of results call like this:
http://www.my-magento-store.com/api/rest/products?page=2&limit=10
I hope this is enough to get started with Magento REST API.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With