Magento 1.9 – Retrieve Product Custom Options with REST API

custom-optionsmagento-1.9productrest

I am developing system to manage some services outside of magento system, however i need both systems (magento and the one i am creating) to comunicate.

So i went to magento rest api documentation and searched about how to fetch products, wich i think is pretty simple, but i am not sure if the custom options of the products will be returned in the request.

Any help/tip?

Best Answer

Sorry I do not see the Magento 1.9 tag.

For Magento 1 :

I think that you need to extend / create the products API to expose product options

More information here : http://devdocs.magento.com/guides/m1x/api/rest/introduction.html

A tutorial which explain how to extend the API : http://www.codealist.net/product-custom-options-in-rest-api/

For Magento 2 :

You can retrieve product custom options with this API inside extension_attributes => options

catalogProductRepositoryV1

"Get product list"

get /V1/products

Model schema :

{
  "items": [
    {
      "id": 0,
      "sku": "string",
      "name": "string",
      "attribute_set_id": 0,
      "price": 0,
      "status": 0,
      "visibility": 0,
      "type_id": "string",
      "created_at": "string",
      "updated_at": "string",
      "weight": 0,
      "extension_attributes": {
        "bundle_product_options": [
          {
            "option_id": 0,
            "title": "string",
            "required": true,
            "type": "string",
            "position": 0,
            "sku": "string",
            "product_links": [
              {
                "id": "string",
                "sku": "string",
                "option_id": 0,
                "qty": 0,
                "position": 0,
                "is_default": true,
                "price": 0,
                "price_type": 0,
                "can_change_quantity": 0,
                "extension_attributes": {}
              }
            ],
            "extension_attributes": {}
          }
        ],
        "downloadable_product_links": [
          {
            "id": 0,
            "title": "string",
            "sort_order": 0,
            "is_shareable": 0,
            "price": 0,
            "number_of_downloads": 0,
            "link_type": "string",
            "link_file": "string",
            "link_file_content": {
              "file_data": "string",
              "name": "string",
              "extension_attributes": {}
            },
            "link_url": "string",
            "sample_type": "string",
            "sample_file": "string",
            "sample_file_content": {
              "file_data": "string",
              "name": "string",
              "extension_attributes": {}
            },
            "sample_url": "string",
            "extension_attributes": {}
          }
        ],
        "downloadable_product_samples": [
          {
            "id": 0,
            "title": "string",
            "sort_order": 0,
            "sample_type": "string",
            "sample_file": "string",
            "sample_file_content": {
              "file_data": "string",
              "name": "string",
              "extension_attributes": {}
            },
            "sample_url": "string",
            "extension_attributes": {}
          }
        ],
        "stock_item": {
          "item_id": 0,
          "product_id": 0,
          "stock_id": 0,
          "qty": 0,
          "is_in_stock": true,
          "is_qty_decimal": true,
          "show_default_notification_message": true,
          "use_config_min_qty": true,
          "min_qty": 0,
          "use_config_min_sale_qty": 0,
          "min_sale_qty": 0,
          "use_config_max_sale_qty": true,
          "max_sale_qty": 0,
          "use_config_backorders": true,
          "backorders": 0,
          "use_config_notify_stock_qty": true,
          "notify_stock_qty": 0,
          "use_config_qty_increments": true,
          "qty_increments": 0,
          "use_config_enable_qty_inc": true,
          "enable_qty_increments": true,
          "use_config_manage_stock": true,
          "manage_stock": true,
          "low_stock_date": "string",
          "is_decimal_divided": true,
          "stock_status_changed_auto": 0,
          "extension_attributes": {}
        },
        "configurable_product_options": [
          {
            "id": 0,
            "attribute_id": "string",
            "label": "string",
            "position": 0,
            "is_use_default": true,
            "values": [
              {
                "value_index": 0,
                "extension_attributes": {}
              }
            ],
            "extension_attributes": {},
            "product_id": 0
          }
        ],
        "configurable_product_links": [
          0
        ]
      },
      "product_links": [
        {
          "sku": "string",
          "link_type": "string",
          "linked_product_sku": "string",
          "linked_product_type": "string",
          "position": 0,
          "extension_attributes": {
            "qty": 0
          }
        }
      ],
      "options": [
        {
          "product_sku": "string",
          "option_id": 0,
          "title": "string",
          "type": "string",
          "sort_order": 0,
          "is_require": true,
          "price": 0,
          "price_type": "string",
          "sku": "string",
          "file_extension": "string",
          "max_characters": 0,
          "image_size_x": 0,
          "image_size_y": 0,
          "values": [
            {
              "title": "string",
              "sort_order": 0,
              "price": 0,
              "price_type": "string",
              "sku": "string",
              "option_type_id": 0
            }
          ],
          "extension_attributes": {}
        }
      ],
      "media_gallery_entries": [
        {
          "id": 0,
          "media_type": "string",
          "label": "string",
          "position": 0,
          "disabled": true,
          "types": [
            "string"
          ],
          "file": "string",
          "content": {
            "base64_encoded_data": "string",
            "type": "string",
            "name": "string"
          },
          "extension_attributes": {
            "video_content": {
              "media_type": "string",
              "video_provider": "string",
              "video_url": "string",
              "video_title": "string",
              "video_description": "string",
              "video_metadata": "string"
            }
          }
        }
      ],
      "tier_prices": [
        {
          "customer_group_id": 0,
          "qty": 0,
          "value": 0,
          "extension_attributes": {}
        }
      ],
      "custom_attributes": [
        {
          "attribute_code": "string",
          "value": "string"
        }
      ]
    }
  ],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "string",
            "value": "string",
            "condition_type": "string"
          }
        ]
      }
    ],
    "sort_orders": [
      {
        "field": "string",
        "direction": "string"
      }
    ],
    "page_size": 0,
    "current_page": 0
  },
  "total_count": 0
}

You can also retrieve product custom options with this API :

catalogProductCustomOptionRepositoryV1

"Get the list of custom options for a specific product"

get /V1/products/{sku}/options 

Model schema :

[
  {
    "product_sku": "string",
    "option_id": 0,
    "title": "string",
    "type": "string",
    "sort_order": 0,
    "is_require": true,
    "price": 0,
    "price_type": "string",
    "sku": "string",
    "file_extension": "string",
    "max_characters": 0,
    "image_size_x": 0,
    "image_size_y": 0,
    "values": [
      {
        "title": "string",
        "sort_order": 0,
        "price": 0,
        "price_type": "string",
        "sku": "string",
        "option_type_id": 0
      }
    ],
    "extension_attributes": {}
  }
]

More details : http://devdocs.magento.com/swagger/