k-sync
Volver al blog

API REST de WooCommerce frente a Admin API de Shopify para desarrolladores (2026)

Comparativa entre la API REST de WooCommerce y la Admin API de Shopify para desarrolladores: autenticación, límites de velocidad, paginación, webhooks y cómo migrar integraciones al pasar de WooCommerce a Shopify.

·Por k-sync
6 min de lectura · 1,295 palabras

Si tu tienda WooCommerce tiene integraciones personalizadas — sincronización con ERP, gestión de inventario, sistema de fulfillment, pipeline de datos analíticos — estas integraciones utilizan la API REST de WooCommerce. Tras migrar a Shopify, estas integraciones deben reconstruirse o adaptarse para usar la Admin API de Shopify. Esta guía cubre las diferencias clave que los desarrolladores deben entender.

Comparativa de autenticación

Autenticación de la API REST de WooCommerce

WooCommerce usa pares de Consumer Key + Consumer Secret:

Autenticación de la Admin API de Shopify

Shopify tiene dos métodos de autenticación según el caso de uso:

Para migrar integraciones personalizadas, usa Custom Apps (token de acceso a la Admin API): el mismo patrón que las consumer keys de WooCommerce, simplemente con un encabezado y formato de token diferentes.

URLs base de la API

// WooCommerce
https://tutienda.com/wp-json/wc/v3/products
https://tutienda.com/wp-json/wc/v3/orders
https://tutienda.com/wp-json/wc/v3/customers

// Admin REST API de Shopify
https://tu-tienda.myshopify.com/admin/api/2024-01/products.json
https://tu-tienda.myshopify.com/admin/api/2024-01/orders.json
https://tu-tienda.myshopify.com/admin/api/2024-01/customers.json

// Admin GraphQL API de Shopify
https://tu-tienda.myshopify.com/admin/api/2024-01/graphql.json

Shopify dispone tanto de una API REST como de una API GraphQL Admin. La API REST es más sencilla para reemplazar directamente la API de WooCommerce. La API GraphQL es más potente (solicita solo los campos necesarios, mutaciones para operaciones complejas, operaciones masivas) y es el camino recomendado por Shopify para nuevas integraciones.

Límites de velocidad

Límites de velocidad de WooCommerce

WooCommerce en sí no aplica límites de velocidad en la API: la limitación de velocidad se gestiona a nivel de servidor (reglas de límite de velocidad de nginx, reglas de WAF de Cloudflare). Los hosts típicos de WooCommerce permiten entre 100 y 1000 solicitudes por minuto. Depende del servidor.

Límites de velocidad de Shopify

Shopify aplica límites de velocidad explícitos a nivel de API:

Para herramientas de migración y sincronización de datos, la gestión de los límites de velocidad es fundamental. k-sync usa lógica de reintento con retroceso exponencial cuando se alcanza el límite de velocidad de Shopify.

Paginación

Paginación en WooCommerce

// Basada en páginas
GET /wp-json/wc/v3/products?per_page=100&page=1
GET /wp-json/wc/v3/products?per_page=100&page=2

// Los encabezados de respuesta incluyen X-WP-Total y X-WP-TotalPages
// per_page máximo: 100

Paginación en Shopify

// REST API: Paginación basada en cursor
GET /admin/api/2024-01/products.json?limit=250
// Encabezado de respuesta: Link: <https://...>; rel="next"
// Sigue el enlace del cursor "next" para las páginas siguientes
// límite máximo: 250

// GraphQL: Paginación de cursor basada en Connection
query {
  products(first: 50, after: "cursor_string") {
    pageInfo { hasNextPage endCursor }
    nodes { id title }
  }
}

La paginación basada en cursor de Shopify es más fiable para conjuntos de datos grandes (no se pierden registros si se añaden nuevos elementos durante la paginación). La paginación basada en páginas de WooCommerce puede perder registros si se añaden o eliminan productos mientras se pagina.

Comparativa de webhooks

Webhooks de WooCommerce

Webhooks de Shopify

// Verificación de webhook (Node.js)
const crypto = require('crypto');
const hmac = crypto.createHmac('sha256', SHOPIFY_WEBHOOK_SECRET);
hmac.update(rawBody, 'utf8', 'hex');
const digest = hmac.digest('base64');
const valid = digest === req.headers['x-shopify-hmac-sha256'];

Diferencias en la estructura de datos para objetos habituales

Productos

Campo de WooCommerceEquivalente en Shopify
idid
nametitle
slughandle
descriptionbody_html
short_descriptionSin equivalente directo — usa metacampo o añádelo al inicio de body_html
status: publish/draftstatus: active/draft
sku (producto simple)variants[0].sku
price/regular_pricevariants[0].price
sale_pricevariants[0].compare_at_price
categories (array)Sin categorías nativas — usa colecciones (relación independiente)
tags (array)tags (cadena separada por comas)
images (array)images (array) con asociaciones de variante
variations (array)variants (array)
attributes (para variaciones)options + valores de opción de variante

Pedidos

Campo de WooCommerceEquivalente en Shopify
id / order_numberid / order_number (valores diferentes)
status (wc-processing, wc-completed)financial_status + fulfillment_status
total / subtotaltotal_price / subtotal_price
billing (objeto)billing_address (objeto)
shipping (objeto)shipping_address (objeto)
line_items (array con product_id)line_items (array con variant_id)
shipping_linesshipping_lines
fee_linesSin equivalente directo — los gastos de gestión van en shipping_lines
tax_linestax_lines
customer_notenote

Migración de integraciones personalizadas

Sincronización con ERP / inventario

Reemplaza las llamadas REST de WooCommerce con equivalentes REST o GraphQL de Shopify. Mapeo clave:

Sistema de fulfillment de pedidos

Integraciones basadas en webhooks

Reemplaza los receptores de webhooks de WooCommerce por receptores de webhooks de Shopify:

Admin GraphQL API — por qué vale la pena aprenderla

Si tu integración gestiona grandes volúmenes de datos, las operaciones masivas de GraphQL de Shopify son significativamente más eficientes que las llamadas REST paginadas:

// Operación masiva — obtener todos los IDs y títulos de producto
mutation {
  bulkOperationRunQuery(query: """
    {
      products {
        edges {
          node {
            id
            title
            variants {
              edges {
                node {
                  id
                  sku
                  price
                }
              }
            }
          }
        }
      }
    }
  """) {
    bulkOperation { id status }
    userErrors { field message }
  }
}

Las operaciones masivas se procesan en segundo plano y devuelven una URL de archivo JSONL cuando se completan. k-sync las usa para sincronizaciones de catálogos grandes donde la paginación REST sería demasiado lenta.

Para la mayoría de los reemplazos de integraciones personalizadas, la API REST es suficiente y tiene la mayor documentación y soporte de bibliotecas. Cambia a GraphQL cuando alcances los límites de velocidad o necesites sincronizar miles de productos/pedidos con frecuencia.

Migra tu tienda con k-sync

Conecta tu tienda WooCommerce, valida tus productos y publícalos en Shopify en minutos. Gratis hasta 50 productos.

Empezar gratis

Lectura relacionada

Ver todas las guías de migración