How to use access Magento 2 API from C# with REST and Token-based authenticationNo response from POST to custom REST Api routeMagento2 REST api authentication returns 'Decoding error'How to use token base Rest API?Invoke rest api from c#How do I consume the REST API in Magento 2, using AJAX with session-based authentication?REST API Access Token IssuesCustomer session for logged in customer by token based authenticationGet convert resultJsonFactory response to string in Magento2Magento 2 - Best approach for retrieving product data - REST API or Custom Endpoint?How to solve Front controller reached 100 router match iterations in magento2
Creating two special characters
Does the reader need to like the PoV character?
Microchip documentation does not label CAN buss pins on micro controller pinout diagram
15% tax on $7.5k earnings. Is that right?
How to get directions in deep space?
Were Persian-Median kings illiterate?
Why is it that I can sometimes guess the next note?
What does "Scientists rise up against statistical significance" mean? (Comment in Nature)
Multiplicative persistence
Is this toilet slogan correct usage of the English language?
Doesn't the system of the Supreme Court oppose justice?
Non-trope happy ending?
Does the Linux kernel need a file system to run?
Why does this expression simplify as such?
Short story about a deaf man, who cuts people tongues
What are some good ways to treat frozen vegetables such that they behave like fresh vegetables when stir frying them?
C++ copy constructor called at return
When were female captains banned from Starfleet?
Which Article Helped Get Rid of Technobabble in RPGs?
Why is so much work done on numerical verification of the Riemann Hypothesis?
C++ check if statement can be evaluated constexpr
Is there a way to have vectors outlined in a Vector Plot?
Why can't the Brexit deadlock in the UK parliament be solved with a plurality vote?
How to convince somebody that he is fit for something else, but not this job?
How to use access Magento 2 API from C# with REST and Token-based authentication
No response from POST to custom REST Api routeMagento2 REST api authentication returns 'Decoding error'How to use token base Rest API?Invoke rest api from c#How do I consume the REST API in Magento 2, using AJAX with session-based authentication?REST API Access Token IssuesCustomer session for logged in customer by token based authenticationGet convert resultJsonFactory response to string in Magento2Magento 2 - Best approach for retrieving product data - REST API or Custom Endpoint?How to solve Front controller reached 100 router match iterations in magento2
I create an Integration -> Activate -> Obtained the Access Token
Like is described here: http://devdocs.magento.com/guides/v2.2/get-started/authentication/gs-authentication-token.html
And in my test project I get this in response object:
Content:
""message":"Consumer is not authorized to access %resources","parameters":"resources":"Magento_Catalog::categories""
StatusCode:
System.Net.HttpStatusCode.Unauthorized
I create a class Magento:
public class Magento
private RestClient Client get; set;
private string Token get; set;
public Magento(string magentoUrl, string token)
Token = token;
Client = new RestClient(magentoUrl);
private RestRequest CreateRequest(string endPoint, Method method, string token)
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Accept", "application/json");
return request;
public string CreateCategory(int id, int ParentId, string categoryName, bool IsActive, bool IncludeInMenu)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Id = id;
category.ParentId = ParentId;
category.Name = categoryName;
category.IsActive = IsActive;
category.IncludeInMenu = IncludeInMenu;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":(" + response.Content;
public void GetSku(string token, string sku)
var request = CreateRequest("/rest/V1/products/" + sku, Method.GET, token);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
M2Product product = JsonConvert.DeserializeObject<M2Product>(response.Content);
public string CreateCategory(string categoryName)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Name = categoryName;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":( "+ response.Content;
public class ProductCategory
[JsonProperty("category")]
public Category Category get; set;
public class Category
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("parent_id")]
public int ParentId get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("is_active")]
public bool IsActive get; set;
[JsonProperty("position")]
public int Position get; set;
[JsonProperty("level")]
public int Level get; set;
[JsonProperty("children")]
public string Children get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("path")]
public string Path get; set;
[JsonProperty("available_sort_by")]
public IList<string> AvailableSortBy get; set;
[JsonProperty("include_in_menu")]
public bool IncludeInMenu get; set;
public class StockItem
[JsonProperty("item_id")]
public int ItemId get; set;
[JsonProperty("product_id")]
public int ProductId get; set;
[JsonProperty("stock_id")]
public int StockId get; set;
[JsonProperty("qty")]
public int Qty get; set;
[JsonProperty("is_in_stock")]
public bool IsInStock get; set;
[JsonProperty("is_qty_decimal")]
public bool IsQtyDecimal get; set;
[JsonProperty("show_default_notification_message")]
public bool ShowDefaultNotificationMessage get; set;
[JsonProperty("use_config_min_qty")]
public bool UseConfigMinQty get; set;
[JsonProperty("min_qty")]
public int MinQty get; set;
[JsonProperty("use_config_min_sale_qty")]
public int UseConfigMinSaleQty get; set;
[JsonProperty("min_sale_qty")]
public int MinSaleQty get; set;
[JsonProperty("use_config_max_sale_qty")]
public bool UseConfigMaxSaleQty get; set;
[JsonProperty("max_sale_qty")]
public int MaxSaleQty get; set;
[JsonProperty("use_config_backorders")]
public bool UseConfigBackorders get; set;
[JsonProperty("backorders")]
public int Backorders get; set;
[JsonProperty("use_config_notify_stock_qty")]
public bool UseConfigNotifyStockQty get; set;
[JsonProperty("notify_stock_qty")]
public int NotifyStockQty get; set;
[JsonProperty("use_config_qty_increments")]
public bool UseConfigQtyIncrements get; set;
[JsonProperty("qty_increments")]
public int QtyIncrements get; set;
[JsonProperty("use_config_enable_qty_inc")]
public bool UseConfigEnableQtyInc get; set;
[JsonProperty("enable_qty_increments")]
public bool EnableQtyIncrements get; set;
[JsonProperty("use_config_manage_stock")]
public bool UseConfigManageStock get; set;
[JsonProperty("manage_stock")]
public bool ManageStock get; set;
[JsonProperty("low_stock_date")]
public object LowStockDate get; set;
[JsonProperty("is_decimal_divided")]
public bool IsDecimalDivided get; set;
[JsonProperty("stock_status_changed_auto")]
public int StockStatusChangedAuto get; set;
public class ExtensionAttributes
[JsonProperty("stock_item")]
public StockItem StockItem get; set;
public class CustomAttribute
[JsonProperty("attribute_code")]
public string AttributeCode get; set;
[JsonProperty("value")]
public object Value get; set;
public class M2Product
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("sku")]
public string Sku get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("attribute_set_id")]
public int AttributeSetId get; set;
[JsonProperty("price")]
public int Price get; set;
[JsonProperty("status")]
public int Status get; set;
[JsonProperty("visibility")]
public int Visibility get; set;
[JsonProperty("type_id")]
public string TypeId get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("extension_attributes")]
public ExtensionAttributes ExtensionAttributes get; set;
[JsonProperty("product_links")]
public IList<object> ProductLinks get; set;
[JsonProperty("options")]
public IList<object> Options get; set;
[JsonProperty("media_gallery_entries")]
public IList<object> MediaGalleryEntries get; set;
[JsonProperty("tier_prices")]
public IList<object> TierPrices get; set;
[JsonProperty("custom_attributes")]
public IList<CustomAttribute> CustomAttributes get; set;
And a form
public partial class Form1 : Form
static private string siteAddress = "http://magento.com/";
static private string token = "d21312d97hosbblablablaqtqawlbw";
Magento objMagneto;
public Form1()
InitializeComponent();
objMagneto = new Magento(siteAddress, token);
private void button1_Click(object sender, EventArgs e)
this.Close();
private void adgClasa_Click(object sender, EventArgs e)
MessageBox.Show(objMagneto.CreateCategory(10, 0, "PC Components", true, true)); // id, ParentId, name, IsActive, IncludeInMenu
magento2 api rest c#
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
I create an Integration -> Activate -> Obtained the Access Token
Like is described here: http://devdocs.magento.com/guides/v2.2/get-started/authentication/gs-authentication-token.html
And in my test project I get this in response object:
Content:
""message":"Consumer is not authorized to access %resources","parameters":"resources":"Magento_Catalog::categories""
StatusCode:
System.Net.HttpStatusCode.Unauthorized
I create a class Magento:
public class Magento
private RestClient Client get; set;
private string Token get; set;
public Magento(string magentoUrl, string token)
Token = token;
Client = new RestClient(magentoUrl);
private RestRequest CreateRequest(string endPoint, Method method, string token)
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Accept", "application/json");
return request;
public string CreateCategory(int id, int ParentId, string categoryName, bool IsActive, bool IncludeInMenu)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Id = id;
category.ParentId = ParentId;
category.Name = categoryName;
category.IsActive = IsActive;
category.IncludeInMenu = IncludeInMenu;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":(" + response.Content;
public void GetSku(string token, string sku)
var request = CreateRequest("/rest/V1/products/" + sku, Method.GET, token);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
M2Product product = JsonConvert.DeserializeObject<M2Product>(response.Content);
public string CreateCategory(string categoryName)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Name = categoryName;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":( "+ response.Content;
public class ProductCategory
[JsonProperty("category")]
public Category Category get; set;
public class Category
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("parent_id")]
public int ParentId get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("is_active")]
public bool IsActive get; set;
[JsonProperty("position")]
public int Position get; set;
[JsonProperty("level")]
public int Level get; set;
[JsonProperty("children")]
public string Children get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("path")]
public string Path get; set;
[JsonProperty("available_sort_by")]
public IList<string> AvailableSortBy get; set;
[JsonProperty("include_in_menu")]
public bool IncludeInMenu get; set;
public class StockItem
[JsonProperty("item_id")]
public int ItemId get; set;
[JsonProperty("product_id")]
public int ProductId get; set;
[JsonProperty("stock_id")]
public int StockId get; set;
[JsonProperty("qty")]
public int Qty get; set;
[JsonProperty("is_in_stock")]
public bool IsInStock get; set;
[JsonProperty("is_qty_decimal")]
public bool IsQtyDecimal get; set;
[JsonProperty("show_default_notification_message")]
public bool ShowDefaultNotificationMessage get; set;
[JsonProperty("use_config_min_qty")]
public bool UseConfigMinQty get; set;
[JsonProperty("min_qty")]
public int MinQty get; set;
[JsonProperty("use_config_min_sale_qty")]
public int UseConfigMinSaleQty get; set;
[JsonProperty("min_sale_qty")]
public int MinSaleQty get; set;
[JsonProperty("use_config_max_sale_qty")]
public bool UseConfigMaxSaleQty get; set;
[JsonProperty("max_sale_qty")]
public int MaxSaleQty get; set;
[JsonProperty("use_config_backorders")]
public bool UseConfigBackorders get; set;
[JsonProperty("backorders")]
public int Backorders get; set;
[JsonProperty("use_config_notify_stock_qty")]
public bool UseConfigNotifyStockQty get; set;
[JsonProperty("notify_stock_qty")]
public int NotifyStockQty get; set;
[JsonProperty("use_config_qty_increments")]
public bool UseConfigQtyIncrements get; set;
[JsonProperty("qty_increments")]
public int QtyIncrements get; set;
[JsonProperty("use_config_enable_qty_inc")]
public bool UseConfigEnableQtyInc get; set;
[JsonProperty("enable_qty_increments")]
public bool EnableQtyIncrements get; set;
[JsonProperty("use_config_manage_stock")]
public bool UseConfigManageStock get; set;
[JsonProperty("manage_stock")]
public bool ManageStock get; set;
[JsonProperty("low_stock_date")]
public object LowStockDate get; set;
[JsonProperty("is_decimal_divided")]
public bool IsDecimalDivided get; set;
[JsonProperty("stock_status_changed_auto")]
public int StockStatusChangedAuto get; set;
public class ExtensionAttributes
[JsonProperty("stock_item")]
public StockItem StockItem get; set;
public class CustomAttribute
[JsonProperty("attribute_code")]
public string AttributeCode get; set;
[JsonProperty("value")]
public object Value get; set;
public class M2Product
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("sku")]
public string Sku get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("attribute_set_id")]
public int AttributeSetId get; set;
[JsonProperty("price")]
public int Price get; set;
[JsonProperty("status")]
public int Status get; set;
[JsonProperty("visibility")]
public int Visibility get; set;
[JsonProperty("type_id")]
public string TypeId get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("extension_attributes")]
public ExtensionAttributes ExtensionAttributes get; set;
[JsonProperty("product_links")]
public IList<object> ProductLinks get; set;
[JsonProperty("options")]
public IList<object> Options get; set;
[JsonProperty("media_gallery_entries")]
public IList<object> MediaGalleryEntries get; set;
[JsonProperty("tier_prices")]
public IList<object> TierPrices get; set;
[JsonProperty("custom_attributes")]
public IList<CustomAttribute> CustomAttributes get; set;
And a form
public partial class Form1 : Form
static private string siteAddress = "http://magento.com/";
static private string token = "d21312d97hosbblablablaqtqawlbw";
Magento objMagneto;
public Form1()
InitializeComponent();
objMagneto = new Magento(siteAddress, token);
private void button1_Click(object sender, EventArgs e)
this.Close();
private void adgClasa_Click(object sender, EventArgs e)
MessageBox.Show(objMagneto.CreateCategory(10, 0, "PC Components", true, true)); // id, ParentId, name, IsActive, IncludeInMenu
magento2 api rest c#
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
I create an Integration -> Activate -> Obtained the Access Token
Like is described here: http://devdocs.magento.com/guides/v2.2/get-started/authentication/gs-authentication-token.html
And in my test project I get this in response object:
Content:
""message":"Consumer is not authorized to access %resources","parameters":"resources":"Magento_Catalog::categories""
StatusCode:
System.Net.HttpStatusCode.Unauthorized
I create a class Magento:
public class Magento
private RestClient Client get; set;
private string Token get; set;
public Magento(string magentoUrl, string token)
Token = token;
Client = new RestClient(magentoUrl);
private RestRequest CreateRequest(string endPoint, Method method, string token)
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Accept", "application/json");
return request;
public string CreateCategory(int id, int ParentId, string categoryName, bool IsActive, bool IncludeInMenu)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Id = id;
category.ParentId = ParentId;
category.Name = categoryName;
category.IsActive = IsActive;
category.IncludeInMenu = IncludeInMenu;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":(" + response.Content;
public void GetSku(string token, string sku)
var request = CreateRequest("/rest/V1/products/" + sku, Method.GET, token);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
M2Product product = JsonConvert.DeserializeObject<M2Product>(response.Content);
public string CreateCategory(string categoryName)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Name = categoryName;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":( "+ response.Content;
public class ProductCategory
[JsonProperty("category")]
public Category Category get; set;
public class Category
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("parent_id")]
public int ParentId get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("is_active")]
public bool IsActive get; set;
[JsonProperty("position")]
public int Position get; set;
[JsonProperty("level")]
public int Level get; set;
[JsonProperty("children")]
public string Children get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("path")]
public string Path get; set;
[JsonProperty("available_sort_by")]
public IList<string> AvailableSortBy get; set;
[JsonProperty("include_in_menu")]
public bool IncludeInMenu get; set;
public class StockItem
[JsonProperty("item_id")]
public int ItemId get; set;
[JsonProperty("product_id")]
public int ProductId get; set;
[JsonProperty("stock_id")]
public int StockId get; set;
[JsonProperty("qty")]
public int Qty get; set;
[JsonProperty("is_in_stock")]
public bool IsInStock get; set;
[JsonProperty("is_qty_decimal")]
public bool IsQtyDecimal get; set;
[JsonProperty("show_default_notification_message")]
public bool ShowDefaultNotificationMessage get; set;
[JsonProperty("use_config_min_qty")]
public bool UseConfigMinQty get; set;
[JsonProperty("min_qty")]
public int MinQty get; set;
[JsonProperty("use_config_min_sale_qty")]
public int UseConfigMinSaleQty get; set;
[JsonProperty("min_sale_qty")]
public int MinSaleQty get; set;
[JsonProperty("use_config_max_sale_qty")]
public bool UseConfigMaxSaleQty get; set;
[JsonProperty("max_sale_qty")]
public int MaxSaleQty get; set;
[JsonProperty("use_config_backorders")]
public bool UseConfigBackorders get; set;
[JsonProperty("backorders")]
public int Backorders get; set;
[JsonProperty("use_config_notify_stock_qty")]
public bool UseConfigNotifyStockQty get; set;
[JsonProperty("notify_stock_qty")]
public int NotifyStockQty get; set;
[JsonProperty("use_config_qty_increments")]
public bool UseConfigQtyIncrements get; set;
[JsonProperty("qty_increments")]
public int QtyIncrements get; set;
[JsonProperty("use_config_enable_qty_inc")]
public bool UseConfigEnableQtyInc get; set;
[JsonProperty("enable_qty_increments")]
public bool EnableQtyIncrements get; set;
[JsonProperty("use_config_manage_stock")]
public bool UseConfigManageStock get; set;
[JsonProperty("manage_stock")]
public bool ManageStock get; set;
[JsonProperty("low_stock_date")]
public object LowStockDate get; set;
[JsonProperty("is_decimal_divided")]
public bool IsDecimalDivided get; set;
[JsonProperty("stock_status_changed_auto")]
public int StockStatusChangedAuto get; set;
public class ExtensionAttributes
[JsonProperty("stock_item")]
public StockItem StockItem get; set;
public class CustomAttribute
[JsonProperty("attribute_code")]
public string AttributeCode get; set;
[JsonProperty("value")]
public object Value get; set;
public class M2Product
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("sku")]
public string Sku get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("attribute_set_id")]
public int AttributeSetId get; set;
[JsonProperty("price")]
public int Price get; set;
[JsonProperty("status")]
public int Status get; set;
[JsonProperty("visibility")]
public int Visibility get; set;
[JsonProperty("type_id")]
public string TypeId get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("extension_attributes")]
public ExtensionAttributes ExtensionAttributes get; set;
[JsonProperty("product_links")]
public IList<object> ProductLinks get; set;
[JsonProperty("options")]
public IList<object> Options get; set;
[JsonProperty("media_gallery_entries")]
public IList<object> MediaGalleryEntries get; set;
[JsonProperty("tier_prices")]
public IList<object> TierPrices get; set;
[JsonProperty("custom_attributes")]
public IList<CustomAttribute> CustomAttributes get; set;
And a form
public partial class Form1 : Form
static private string siteAddress = "http://magento.com/";
static private string token = "d21312d97hosbblablablaqtqawlbw";
Magento objMagneto;
public Form1()
InitializeComponent();
objMagneto = new Magento(siteAddress, token);
private void button1_Click(object sender, EventArgs e)
this.Close();
private void adgClasa_Click(object sender, EventArgs e)
MessageBox.Show(objMagneto.CreateCategory(10, 0, "PC Components", true, true)); // id, ParentId, name, IsActive, IncludeInMenu
magento2 api rest c#
I create an Integration -> Activate -> Obtained the Access Token
Like is described here: http://devdocs.magento.com/guides/v2.2/get-started/authentication/gs-authentication-token.html
And in my test project I get this in response object:
Content:
""message":"Consumer is not authorized to access %resources","parameters":"resources":"Magento_Catalog::categories""
StatusCode:
System.Net.HttpStatusCode.Unauthorized
I create a class Magento:
public class Magento
private RestClient Client get; set;
private string Token get; set;
public Magento(string magentoUrl, string token)
Token = token;
Client = new RestClient(magentoUrl);
private RestRequest CreateRequest(string endPoint, Method method, string token)
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Accept", "application/json");
return request;
public string CreateCategory(int id, int ParentId, string categoryName, bool IsActive, bool IncludeInMenu)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Id = id;
category.ParentId = ParentId;
category.Name = categoryName;
category.IsActive = IsActive;
category.IncludeInMenu = IncludeInMenu;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":(" + response.Content;
public void GetSku(string token, string sku)
var request = CreateRequest("/rest/V1/products/" + sku, Method.GET, token);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
M2Product product = JsonConvert.DeserializeObject<M2Product>(response.Content);
public string CreateCategory(string categoryName)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Name = categoryName;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":( "+ response.Content;
public class ProductCategory
[JsonProperty("category")]
public Category Category get; set;
public class Category
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("parent_id")]
public int ParentId get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("is_active")]
public bool IsActive get; set;
[JsonProperty("position")]
public int Position get; set;
[JsonProperty("level")]
public int Level get; set;
[JsonProperty("children")]
public string Children get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("path")]
public string Path get; set;
[JsonProperty("available_sort_by")]
public IList<string> AvailableSortBy get; set;
[JsonProperty("include_in_menu")]
public bool IncludeInMenu get; set;
public class StockItem
[JsonProperty("item_id")]
public int ItemId get; set;
[JsonProperty("product_id")]
public int ProductId get; set;
[JsonProperty("stock_id")]
public int StockId get; set;
[JsonProperty("qty")]
public int Qty get; set;
[JsonProperty("is_in_stock")]
public bool IsInStock get; set;
[JsonProperty("is_qty_decimal")]
public bool IsQtyDecimal get; set;
[JsonProperty("show_default_notification_message")]
public bool ShowDefaultNotificationMessage get; set;
[JsonProperty("use_config_min_qty")]
public bool UseConfigMinQty get; set;
[JsonProperty("min_qty")]
public int MinQty get; set;
[JsonProperty("use_config_min_sale_qty")]
public int UseConfigMinSaleQty get; set;
[JsonProperty("min_sale_qty")]
public int MinSaleQty get; set;
[JsonProperty("use_config_max_sale_qty")]
public bool UseConfigMaxSaleQty get; set;
[JsonProperty("max_sale_qty")]
public int MaxSaleQty get; set;
[JsonProperty("use_config_backorders")]
public bool UseConfigBackorders get; set;
[JsonProperty("backorders")]
public int Backorders get; set;
[JsonProperty("use_config_notify_stock_qty")]
public bool UseConfigNotifyStockQty get; set;
[JsonProperty("notify_stock_qty")]
public int NotifyStockQty get; set;
[JsonProperty("use_config_qty_increments")]
public bool UseConfigQtyIncrements get; set;
[JsonProperty("qty_increments")]
public int QtyIncrements get; set;
[JsonProperty("use_config_enable_qty_inc")]
public bool UseConfigEnableQtyInc get; set;
[JsonProperty("enable_qty_increments")]
public bool EnableQtyIncrements get; set;
[JsonProperty("use_config_manage_stock")]
public bool UseConfigManageStock get; set;
[JsonProperty("manage_stock")]
public bool ManageStock get; set;
[JsonProperty("low_stock_date")]
public object LowStockDate get; set;
[JsonProperty("is_decimal_divided")]
public bool IsDecimalDivided get; set;
[JsonProperty("stock_status_changed_auto")]
public int StockStatusChangedAuto get; set;
public class ExtensionAttributes
[JsonProperty("stock_item")]
public StockItem StockItem get; set;
public class CustomAttribute
[JsonProperty("attribute_code")]
public string AttributeCode get; set;
[JsonProperty("value")]
public object Value get; set;
public class M2Product
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("sku")]
public string Sku get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("attribute_set_id")]
public int AttributeSetId get; set;
[JsonProperty("price")]
public int Price get; set;
[JsonProperty("status")]
public int Status get; set;
[JsonProperty("visibility")]
public int Visibility get; set;
[JsonProperty("type_id")]
public string TypeId get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("extension_attributes")]
public ExtensionAttributes ExtensionAttributes get; set;
[JsonProperty("product_links")]
public IList<object> ProductLinks get; set;
[JsonProperty("options")]
public IList<object> Options get; set;
[JsonProperty("media_gallery_entries")]
public IList<object> MediaGalleryEntries get; set;
[JsonProperty("tier_prices")]
public IList<object> TierPrices get; set;
[JsonProperty("custom_attributes")]
public IList<CustomAttribute> CustomAttributes get; set;
And a form
public partial class Form1 : Form
static private string siteAddress = "http://magento.com/";
static private string token = "d21312d97hosbblablablaqtqawlbw";
Magento objMagneto;
public Form1()
InitializeComponent();
objMagneto = new Magento(siteAddress, token);
private void button1_Click(object sender, EventArgs e)
this.Close();
private void adgClasa_Click(object sender, EventArgs e)
MessageBox.Show(objMagneto.CreateCategory(10, 0, "PC Components", true, true)); // id, ParentId, name, IsActive, IncludeInMenu
magento2 api rest c#
magento2 api rest c#
edited Oct 31 '17 at 9:34
Manoj Deswal
4,36991744
4,36991744
asked Oct 31 '17 at 9:23
AdrianSimiAdrianSimi
12
12
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "479"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
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
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f199400%2fhow-to-use-access-magento-2-api-from-c-with-rest-and-token-based-authentication%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
add a comment |
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
add a comment |
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
answered Feb 18 at 3:17
Cueball 6118Cueball 6118
11
11
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f199400%2fhow-to-use-access-magento-2-api-from-c-with-rest-and-token-based-authentication%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
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
Required, but never shown
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
Required, but never shown
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
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown