0

Is it possible to use Magento 1.9 REST API to create or update products that have custom attributes?

example: http://magentohost/api/rest/products/8

Request Example: JSON

    {
     "attribute_set_id":"4",
     "type_id":"simple",
     "sku":"wedding dress",
     "name":"Dress_test",
     "custom_attr1":"test",
     "custom_attr2":"test2",
      ............
     }
1
<?php
$curl = curl_init();
$URL = "http://magento.dev";

curl_setopt_array($curl, array(
  CURLOPT_URL => $URL . "/rest/V1/integration/admin/token",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"username\":\"admin\", \"password\":\"123123q\"}",
  CURLOPT_HTTPHEADER => array(
    "accept: application/json",
    "cache-control: no-cache",
    "content-type: application/json",
    "postman-token: 654c3084-0e0a-b3a1-043f-0960e695e520"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
  die();
} else {
  $key = $response;
}


$data = [
    "product"=> [
        "sku"=> "DownloadableProduct_18sdsd5",
        "name"=> "DownloadableProduct_185",
        "attribute_set_id"=> 4,
        "price"=> "1",
        "status"=> 1,
        "visibility"=> 4,
        "type_id"=> "downloadable",
        "extension_attributes"=> [
            "stock_item"=> [
                "manage_stock"=> 1,
                "is_in_stock"=> 1,
                "qty"=> "10"
            ],
            "downloadable_product_samples"=> [[
                "title"=> "sample1185869143",
                "sort_order"=> "0",
                "sample_type"=> "url",
                "sample_url"=> "http://example.com"
            ]],
            "downloadable_product_links"=> [[
                "title"=> "link-1-185862143",
                "sort_order"=> "1",
                "is_shareable"=> 0,
                "price"=> 2.43,
                "number_of_downloads"=> "2",
                "link_type"=> "url",
                "link_url"=> "http://example.com",
                "sample_type"=> "url",
                "sample_url"=> "http://example.com"
            ]]
        ],
        "custom_attributes"=> [[
            "attribute_code"=> "tax_class_id",
            "value"=> 2
        ], [
            "attribute_code"=> "quantity_and_stock_status",
            "value"=> [
                "qty"=> "10",
                "is_in_stock"=> 1
            ]
        ], [
            "attribute_code"=> "is_virtual",
            "value"=> 1
        ], [
            "attribute_code"=> "url_key",
            "value"=> "downloadableproduct-185892143"
        ], [
            "attribute_code"=> "links_title",
            "value"=> "Links title 185862143"
        ], [
            "attribute_code"=> "links_purchased_separately",
            "value"=> 1
        ], [
            "attribute_code"=> "samples_title",
            "value"=> "Samples185692143"
        ], [
            "attribute_code"=> "links_exist",
            "value"=> 1
        ]]
    ]
];


$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => $URL . "/rest/admin/V1/products/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "accept: application/json",
    "content-type: application/json",
    "authorization: Bearer " . $key,
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
  • thanks is this by default accepted by magento: "attribute_code"=> "samples_title", "value"=> "Samples185692143". Or I need some extension? – bogumbiker Apr 24 '17 at 5:48
  • magento will accept this default – BornCoder Apr 24 '17 at 6:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.