En esta página
Shopify añadió estas API en la versión 2026-10. Adóptalas cuando tu integración de gestión de pedidos o preparación necesite consultar una solicitud de cancelación pendiente de un cliente antes de que el comerciante la procese.
Limita las solicitudes a la eliminación de unidades sin preparar
El cambio admitido es la eliminación. En 2026-10, el parámetro de entrada lineItems de orderRequestEdit contiene únicamente removals, cada una con un lineItemId y la quantity solicitada. Se permiten cantidades parciales. No existe ningún tipo de solicitud para añadir productos o cambiar variantes, ni para modificar la dirección, el envío o los descuentos.
En el flujo nativo de cuentas de cliente, los compradores seleccionan Cancel items en un pedido que cumpla los requisitos. Las cuentas de cliente heredadas no son compatibles. Los requisitos de configuración de Shopify describen la activación en Settings > Customer accounts. Utiliza la guía de migración de cuentas de cliente si la tienda aún utiliza cuentas heredadas.
Consulta Order.requestedEditInformation al crear la interfaz del comprador. Su objeto de elegibilidad expone hasEditableLineItems, editableLineItems e ineligibleLineItems. Muestra las cantidades que pueden solicitarse a partir de esa respuesta. No des por hecho que todas las unidades sin preparar están disponibles para una nueva solicitud.
Las solicitudes nativas de autoservicio también se aplican a los pedidos B2B. Procesar una solicitud de un pedido de suscripción mantiene activo el contrato de suscripción. La activación por mercado requiere Advanced o Plus y acceso a la configuración de acciones de pedidos en acceso anticipado del editor de pago y cuentas. Las tiendas que no disponen de esa opción activan las solicitudes en todos los mercados.
Configura la API y los permisos
Utiliza las referencias de 2026-10. El recurso de solicitud es RequestedOrderEdit. Su enumeración de estados contiene REQUESTED, RESOLVED y DECLINED. REQUESTED significa que hay una acción del comerciante pendiente. No existe el estado APPROVED.
| Solicitante | Operación | Finalidad |
|---|---|---|
| Admin API | requestedOrderEditCreate |
Crear una solicitud en nombre de un comprador |
| Admin API | requestedOrderEditResolve |
Marcar una solicitud como resuelta |
| Admin API | requestedOrderEditDecline |
Rechazar una solicitud |
| Customer Account API | orderRequestEdit |
Enviar la solicitud del comprador |
| Ambas API | requestedOrderEditCalculate |
Obtener una vista previa del resultado financiero |
Para las consultas de Admin API, solicita read_orders. Las tres mutaciones de Admin API requieren write_orders y el permiso del personal edit_orders, como especifica la referencia de creación. El flujo de edición del comerciante con cálculos previos requiere por separado write_order_edits.
Para la mutación del comprador, solicita customer_write_pre_authenticated. El usuario también necesita acceso customer_write_orders o acceso preautenticado al pedido. Para la consulta de vista previa del comprador, la aplicación necesita customer_read_pre_authenticated, y el usuario debe tener acceso customer_read_orders o acceso preautenticado a ese pedido concreto antes de que ofrezcas la vista previa. Consultar OrderRequestedEditInformation requiere customer_read_orders.
Utiliza @idempotent en orderRequestEdit y reutiliza la clave al reintentar el mismo envío. Shopify devuelve la solicitud original en lugar de crear otra.
Retén la preparación mientras el comerciante revisa la solicitud
Una solicitud pendiente no tiene ninguna retención automática documentada. El registro de cambios de Shopify describe la retención de la preparación como una tarea que una aplicación puede realizar en pedidos con estado REQUESTED.
Suscríbete a los tres temas de webhook de solicitudes: requested_order_edit/created, requested_order_edit/resolved y requested_order_edit/declined. Cada uno requiere al menos uno de estos permisos: read_orders, read_marketplace_orders o read_buyer_membership_orders. Los datos enviados identifican el pedido y las eliminaciones solicitadas, incluidas quantity y resolved_quantity. Los estados de los webhooks de ejemplo están en minúsculas. Los valores de las enumeraciones de GraphQL están en mayúsculas.
Si el comerciante quiere pausar la recogida durante la revisión, incorpora esta secuencia a tu integración:
- Al recibir
/created, consulta el pedido y la solicitud actuales. Registra el ID de la solicitud asociado al pedido del almacén. - Aplica la retención de preparación o el mecanismo de detención del almacén que gestione tu integración. Si el almacén ya ha importado el pedido, exige su confirmación de que se ha detenido la recogida de las unidades solicitadas.
- Al recibir
/resolvedo/declined, consulta las solicitudes restantes del pedido y las cantidades actuales. Libera la retención de tu integración solo después de que se hayan completado las solicitudes pendientes y cualquier tarea de reembolso necesaria.
Comprueba todas las solicitudes. Un pedido puede tener varias solicitudes, y displayRequestedEditStatus = REQUESTED significa que al menos una sigue necesitando una acción del comerciante. No liberes la retención por un único evento /resolved.
Acuerda cómo se confirmará la detención antes de activar la liberación automática. La guía de integración de retenciones de preparación explica los controles de los sistemas posteriores.
Procesa la eliminación antes de cerrar la solicitud
En el panel de administración de Shopify, filtra Orders por Customer request. La solicitud aparece en un aviso dentro del pedido. Las personas encargadas de revisarla necesitan el permiso Orders.
En un pedido pagado, Remove items abre la página de reembolso con los artículos solicitados marcados. Selecciona los artículos que se reembolsarán, revisa el importe y las opciones de reposición y, después, haz clic en Refund. Shopify marca la solicitud como resuelta. En los pedidos sin pagar, Remove items abre la página de reposición en su lugar.
La resolución cierra el registro de la solicitud. La referencia de requestedOrderEditResolve la describe como marcar la solicitud como completada, y su único parámetro de entrada es el id de la solicitud, sin campos de cantidad, reembolso o reposición. Elimina y reembolsa las unidades por separado, y conserva ambas operaciones en el registro de ejecución de tu implementación.
Utiliza requestedOrderEditCalculate para obtener una vista previa del resultado financiero de la eliminación solicitada antes de enviarla. Devuelve financialSummary y las líneas de artículos calculadas. Una vista previa no liquida ningún importe. Nuestra guía de la API de edición de pedidos explica el flujo existente de inicio, preparación y confirmación, y las tareas de liquidación que se realizan por separado.
Para rechazar la solicitud, llama a requestedOrderEditDecline. Su campo opcional declineNote es un mensaje de notificación para el comprador con un máximo de 500 caracteres. En el panel de administración de Shopify, Manage request > Mark as resolved cierra la solicitud sin modificar el pedido ni enviar un correo al cliente. Rechaza la solicitud cuando el comerciante no acepte la eliminación. Resuélvela solo después de eliminar y reembolsar las unidades, o cuando la solicitud se haya gestionado de otra forma.
Verifica las transiciones no documentadas antes del lanzamiento
En el panel de administración de Shopify, reembolsar los artículos solicitados resuelve la solicitud, al igual que cancelar el pedido, mientras que eliminar los artículos y dejar el reembolso para más tarde la mantiene abierta. Shopify no documenta si la solicitud se resuelve a través de la API con refundCreate o con un orderEditCommit que elimine las unidades solicitadas. Comprueba en una tienda de desarrollo si tu flujo de API se comporta como el panel de administración antes de depender de él.
Crea una solicitud para parte de una línea sin preparar y, después, procesa esa cantidad mediante el flujo de reembolso o edición que tengas previsto utilizar, sin llamar a requestedOrderEditResolve. Inspecciona el estado resultante de la solicitud y resolvedQuantity, junto con las unidades restantes del pedido y la transacción de reembolso. Registra qué webhooks de solicitudes llegan.
Crea otra solicitud para otras unidades aptas del mismo pedido y prueba tu controlador de liberación mientras una solicitud siga pendiente. Mantén el pedido bloqueado en el almacén mientras el comerciante aún tenga una solicitud que revisar. Si falla la eliminación o el reembolso, muestra al comerciante una excepción visible y mantén el pedido bloqueado.
Para recuperar el estado, ejecuta una consulta paginada de orders con el filtro requested_order_edit_status:requested. Consulta la conexión requestedOrderEdits de cada pedido que coincida y concíliala con tus registros de solicitudes. Concilia también, por ID, los pedidos que tu integración mantiene retenidos, porque un pedido cuya última solicitud se haya cerrado sin que se recibiera el webhook deja de aparecer en esa búsqueda. Define el intervalo de revisión a partir de las reglas del almacén para liberar pedidos.
Elige quién ejecuta el cambio
Gestiona las adiciones fuera de la API de solicitudes del comprador. El flujo de edición del comerciante de Shopify permite añadir productos antes de la preparación.
Para los clientes que necesitan cambiar variantes, corregir direcciones o añadir artículos dentro de un plazo de edición definido por el comerciante, las tiendas utilizan una aplicación de edición de autoservicio como Revize. Su ajuste Hold orders, dentro de Fulfillment while editing, retiene la preparación mientras sigue abierto un plazo de edición con límite de tiempo y, después, la libera según el momento de liberación y las condiciones de pago configurados. Con el plazo Until fulfillment, Revize no aplica ninguna retención.
| Edición solicitada por el comprador | Edición del comerciante | Revize (aplicación de autoservicio) | |
|---|---|---|---|
| Quién la inicia | El comprador desde las cuentas de cliente o mediante orderRequestEdit. Una aplicación puede crear una solicitud para el comprador |
El personal del comerciante o una aplicación que utilice la API de edición de pedidos | El comprador en la página de estado del pedido de Shopify |
| Quién la aprueba | El comerciante o la aplicación revisa y procesa o rechaza la solicitud | El personal o la aplicación ejecuta la edición | El comerciante define de antemano las acciones permitidas. La cancelación es automática cuando se cumplen los requisitos |
| Qué puede cambiar | Eliminación de unidades sin preparar, incluidas cantidades parciales. El envío de la solicitud no cambia nada | Productos, cantidades, gastos de envío y descuentos manuales dentro de los límites de edición nativos | Cambios de variante y cantidad, dirección de envío y productos añadidos. Añadir productos requiere Pro |
| Pago | La creación y la resolución no emiten ningún reembolso. Procesar la eliminación requiere decidir sobre el reembolso | Si el total aumenta, se permite enviar una factura actualizada. Si disminuye, se permite emitir un reembolso | Pay now, Refund o Confirm, según si el total aumenta, disminuye o se mantiene. Shopify ejecuta el pago o el reembolso; Pay now cobra solo la diferencia |
| Preparación | Solo unidades sin preparar. No se documenta ninguna retención automática | Cambios de cantidad y eliminación de artículos: solo en artículos sin preparar. Los descuentos manuales también pueden modificarse en artículos ya preparados | Antes de la preparación, dentro del plazo definido por el comerciante. El modo Hold orders retiene la preparación |
Configura Fulfillment while editing con el almacén antes de abrir el flujo de edición del cliente. Para ofrecer instrucciones de cancelación a los compradores, dirige a los clientes a la guía de cancelación.
Preguntas frecuentes
Nuestra solicitud está en RESOLVED, pero las unidades siguen ahí. ¿Ha fallado la API?
El estado por sí solo no demuestra la eliminación. requestedOrderEditResolve marca la solicitud como completada y solo recibe el id de la solicitud, sin campos de cantidad, reembolso o reposición. El equipo de soporte debe inspeccionar el pedido real y el registro del reembolso antes de decirle al comprador que el procesamiento ha terminado.
¿Puede el comprador solicitar un cambio de talla mediante estas API?
No. Los parámetros de entrada de las solicitudes de 2026-10 solo admiten la eliminación de unidades sin preparar. Dirige el cambio de talla al flujo de edición del comerciante o de edición de autoservicio del cliente de la tienda.
¿Un webhook de resolución significa que todas las solicitudes de ese pedido están cerradas?
No. Consulta requestedOrderEdits o inspecciona displayRequestedEditStatus antes de liberar el pedido del almacén. Un valor REQUESTED en el pedido significa que sigue habiendo una acción del comerciante pendiente en al menos una solicitud.
¿Debemos mantener nuestras suscripciones de cancelación de órdenes de preparación?
Mantenlas si tu integración con el servicio de preparación las necesita. Los temas fulfillment_orders/cancellation_request_* se refieren a solicitudes del comerciante o de una aplicación a un servicio de preparación. Las ediciones solicitadas por el comprador utilizan requested_order_edit/* y requieren su propia gestión.