Crear un producto del paquete

Un producto agrupado es una forma de agrupar varios productos bajo un producto principal. Estos productos secundarios pueden ser un conjunto definido de productos u ofrecer algunas variaciones que proporcionen opciones de configuración flexibles para los clientes. Los tipos de productos agrupados tardan un poco más en configurarse y debe realizar una cierta planificación antes de configurarlos. Sin embargo, al ofrecer productos agrupados, se mejora la experiencia de compra al facilitar a los clientes la personalización de las selecciones de productos.

Por ejemplo, puede ofrecer un paquete de productos denominado Learning to surf en su tienda web. El paquete es el producto principal que sirve como contenedor para los productos secundarios asignados que especifican las opciones disponibles:

  • Una tabla de surf estándar
  • Una típica correa de tabla de surf
  • Aletas rojas para tabla de surf

Cuando se desea una flexibilidad adicional, se recomienda permitir varias opciones de productos secundarios. Esto requiere un uso más complejo de opciones y productos secundarios. Para expandir en el ejemplo anterior, las opciones finales son las siguientes:

  • Una tabla de surf estándar

  • Una típica correa de tabla de surf

  • Elección del color de aleta:

    • Rojo
    • Azul
    • Amarillo

Ya sea que el paquete sea un grupo estático de productos simples o varios productos con variaciones, las opciones de configuración flexibles hacen que los tipos de producto del paquete sean una herramienta de comercialización única y potente para la tienda Adobe Commerce.

Antes de crear un producto agrupado, compruebe que todos los productos simples que se incluyen en el producto agrupado estén disponibles en Adobe Commerce. Cree cualquier que no exista.

En este tutorial, aprenderá a crear un paquete de productos utilizando la API de REST y el administrador de Adobe Commerce.

Utilice la API de REST para definir un producto del paquete:

  1. Cree productos simples para utilizarlos en el producto del paquete.
  2. Cree un producto agrupado y asocie los productos simples.
  3. Obtenga el producto del paquete y todas las opciones asociadas.
  4. Elimine una opción de una sección de los productos del paquete.
  5. Restaurar las opciones de un producto agrupado.

Al crear productos agrupados desde el administrador de Adobe Commerce, puede crear primero los productos simples o utilizar la herramienta automatizada para crear productos simples mediante un asistente.

¿Para quién es este vídeo?

  • Administradores de sitios web
  • Comerciantes de comercio electrónico
  • Nuevos desarrolladores de Adobe Commerce que desean aprender a crear productos agrupados en Adobe Commerce mediante la API de REST

Contenido de vídeo

Creación de productos con REST

Los siguientes comandos crean todos los productos necesarios para definir el producto del paquete en este ejemplo: cinco productos simples y un producto del paquete que tiene tres opciones.

Antes de enviar la solicitud, actualice el ejemplo con los valores de su entorno.

  • Cambie "attribute-set": 4 para reemplazar 4 con el ID del conjunto de atributos de su entorno.
curl --location '{{your.url.here}}/rest/default/V1/products' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: private_content_version=41d94540f5bd8b691017a850bc3b82b3' \
--data '{
  "product": {
    "sku": "10-ft-beginner-surfboard",
    "name": "10 Foot Beginner surfboard",
    "attribute_set_id": 4,
    "price": 100,
    "type_id": "simple",
    "extension_attributes": {
      "stock_item": {
        "qty": 100,
        "is_in_stock":true
      }
    }
  }
}
'
curl --location '{{your.url.here}}/rest/default/V1/products' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: private_content_version=41d94540f5bd8b691017a850bc3b82b3' \
--data '{
  "product": {
    "sku": "8-ft-surboard-leash",
    "name": "8 Foot surboard leash",
    "attribute_set_id": 4,
    "price": 50,
    "type_id": "simple",
    "extension_attributes": {
      "stock_item": {
        "qty": 100,
        "is_in_stock":true
      }
    }
  }
}
'
curl --location '{{your.url.here}}/rest/default/V1/products' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: private_content_version=41d94540f5bd8b691017a850bc3b82b3' \
--data '{
  "product": {
    "sku": "red-fins-and-fin-plugs",
    "name": "Red fins and fin plugs",
    "attribute_set_id": 4,
    "price": 15,
    "type_id": "simple",
    "extension_attributes": {
      "stock_item": {
        "qty": 100,
        "is_in_stock":true
      }
    }
  }
}
'
curl --location '{{your.url.here}}/rest/default/V1/products' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: private_content_version=41d94540f5bd8b691017a850bc3b82b3' \
--data '{
  "product": {
    "sku": "blue-fins-and-fin-plugs",
    "name": "Blue fins and fin plugs",
    "attribute_set_id": 4,
    "price": 15,
    "type_id": "simple",
    "extension_attributes": {
      "stock_item": {
        "qty": 100,
        "is_in_stock":true
      }
    }
  }
}
'
curl --location '{{your.url.here}}/rest/default/V1/products' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: private_content_version=41d94540f5bd8b691017a850bc3b82b3' \
--data '{
  "product": {
    "sku": "yellow-fins-and-fin-plugs",
    "name": "Yellow fins and fin plugs",
    "attribute_set_id": 4,
    "price": 15,
    "type_id": "simple",
    "extension_attributes": {
      "stock_item": {
        "qty": 100,
        "is_in_stock":true
      }
    }
  }
}
'

Cree un producto agrupado y asigne los productos simples como opciones

Cree un paquete de productos enviando la siguiente solicitud de POST.

Antes de enviar la solicitud, actualice el ejemplo con los valores de su entorno.

  • Cambie "attribute_set_id": 4, y reemplace 4 con el ID del conjunto de atributos de su entorno.
curl --location '{{your.url.here}}/rest/default/V1/products' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: private_content_version=41d94540f5bd8b691017a850bc3b82b3' \
--data '{
  "product": {
    "sku": "beginner-surfboard",
    "name": "Beginner Surfboard",
    "attribute_set_id": 4,
    "status": 1,
    "visibility": 4,
    "type_id": "bundle",
    "extension_attributes": {
      "stock_item": {
        "qty": 100,
        "is_in_stock":true
      },
      "bundle_product_options": [
        {
          "option_id": 0,
          "position": 1,
          "sku": "surfboard-essentials",
          "title": "Beginners 10ft Surfboard",
          "type": "checkbox",
          "required": true,
          "product_links": [
            {
              "sku": "10-ft-beginner-surfboard",
              "option_id": 1,
              "qty": 1,
              "position": 1,
              "is_default": false,
              "price": 100,
              "price_type": 0,
              "can_change_quantity": 0
            }
          ]
        },
        {
          "option_id": 1,
          "position": 2,
          "sku": "surboard-leash",
          "title": "Surfboard leash",
          "type": "checkbox",
          "required": true,
          "product_links": [
            {
              "sku": "8-ft-surboard-leash",
              "option_id": 2,
              "qty": 1,
              "position": 1,
              "is_default": false,
              "price": 50,
              "price_type": 0,
              "can_change_quantity": 0
            }
          ]
        },
        {
          "option_id": 3,
          "position": 2,
          "sku": "surfboard-color",
          "title": "Choose a color for the fins and fin plugs",
          "type": "radio",
          "required": true,
          "product_links": [
            {
              "sku": "red-fins-and-fin-plugs",
              "option_id": 2,
              "qty": 1,
              "position": 1,
              "is_default": false,
              "price": 0,
              "price_type": 0,
              "can_change_quantity": 0
            },
            {
              "sku": "blue-fins-and-fin-plugs",
              "option_id": 2,
              "qty": 1,
              "position": 2,
              "is_default": false,
              "price": 0,
              "price_type": 0,
              "can_change_quantity": 0
            },
            {
              "sku": "yellow-fins-and-fin-plugs",
              "option_id": 3,
              "qty": 1,
              "position": 3,
              "is_default": false,
              "price": 0,
              "price_type": 0,
              "can_change_quantity": 0
            }
          ]
        }
      ]
    },
    "custom_attributes": [
      {
        "attribute_code": "price_view",
        "value": "0"
      }
    ]
  },
  "saveOptions": true
}
'

Eliminar una opción de un producto agrupado

Elimine un producto secundario de un producto agrupado sin eliminar el producto del catálogo enviando la siguiente solicitud de DELETE mediante cURL.

curl --location --request DELETE '{{your.url.here}}/rest/default/V1/bundle-products/beginner-surfboard/options/35/children/blue-fins-and-fin-plugs' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: private_content_version=41d94540f5bd8b691017a850bc3b82b3'

Restaurar opciones de producto

Al actualizar las opciones de producto del paquete, asegúrese de incluir todas las opciones que desee asociar con este producto. Si el conjunto de opciones original contenía tres productos y se eliminó uno, incluya las tres opciones en la solicitud de POST para asegurarse de que el paquete de productos especifica todas las opciones. Si solo ha incluido la opción que ha eliminado, el paquete de productos actualizado incluye solo esa opción.

Busque el ID de opción revisando la respuesta de creación para el producto del paquete. En la respuesta, option_id es 35.

...
,
            {
                "option_id": 35,
                "title": "added back color options for fins and fin plugs",
                "required": true,
                "type": "radio",
                "position": 2,
                "sku": "beginner-surfboard",
                "product_links": [
                    {
                        "id": "77",
                        "sku": "red-fins-and-fin-plugs",
                        "option_id": 35,
                        "qty": 1,
                        "position": 1,
                        "is_default": false,
                        "price": 15,
                        "price_type": null,
                        "can_change_quantity": 0
                    },
                    {
                        "id": "78",
                        "sku": "blue-fins-and-fin-plugs",
                        "option_id": 35,
                        "qty": 1,
                        "position": 2,
                        "is_default": false,
                        "price": 15,
                        "price_type": null,
                        "can_change_quantity": 0
                    },
                    {
                        "id": "79",
                        "sku": "yellow-fins-and-fin-plugs",
                        "option_id": 35,
                        "qty": 1,
                        "position": 3,
                        "is_default": false,
                        "price": 15,
                        "price_type": null,
                        "can_change_quantity": 0
                    }
                ]
            }
...

Actualice el paquete de productos para añadir la opción que eliminó enviando la siguiente solicitud de POST.

curl --location '{{your.url.here}}/rest/default/V1/bundle-products/options/add' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: private_content_version=41d94540f5bd8b691017a850bc3b82b3' \
--data '{
  "option": {
    "option_id": 35,
    "title": "Choose a color for the fins and fin plugs",
    "required": true,
    "type": "radio",
    "position": 2,
    "sku": "beginner-surfboard",
    "product_links": [
      {
        "sku": "red-fins-and-fin-plugs",
        "option_id": 35,
        "qty": 1,
        "position": 1,
        "is_default": false,
        "price": 0,
        "price_type": null,
        "can_change_quantity": 0,
        "extension_attributes": {}
      },
      {
        "sku": "blue-fins-and-fin-plugs",
        "option_id": 35,
        "qty": 1,
        "position": 2,
        "is_default": false,
        "price": 0,
        "price_type": null,
        "can_change_quantity": 0,
        "extension_attributes": {}
      },
      {
        "sku": "yellow-fins-and-fin-plugs",
        "option_id": 35,
        "qty": 1,
        "position": 3,
        "is_default": false,
        "price": 0,
        "price_type": null,
        "can_change_quantity": 0,
        "extension_attributes": {}
      }
    ],
    "extension_attributes": {}
  }
}'

Recursos adicionales

recommendation-more-help
3a5f7e19-f383-4af8-8983-d01154c1402f