Skip to main content

Configuración básica

Puedes instalar la integración de Shopify desde nuestro Marketplace. Una vez instalada, podrás crear y listar productos, administrar colecciones (manuales y automáticas), crear pedidos y borradores de pedido, consultar pedidos, gestionar clientes y crear fulfillments (envíos) con información de tracking.

Funcionalidades

Crear producto

Crear un producto nuevo con soporte para variantes, imágenes, opciones, etiquetas y estado de publicación. Inputs:
  • title (string) — Nombre/título del producto.
  • body_html (opcional, string) — Descripción del producto en HTML.
  • vendor (opcional, string) — Marca/proveedor.
  • product_type (opcional, string) — Tipo/categoría de producto.
  • tags (opcional, string) — Etiquetas separadas por comas.
  • status (opcional, enum: active | draft | archived) — Estado del producto (por defecto active).
  • variants (opcional, array de objeto) — Variantes del producto:
    • price (opcional, string)
    • sku (opcional, string)
    • inventory_quantity (opcional, number)
    • inventory_management (opcional, string)
    • inventory_policy (opcional, string)
    • option1 (opcional, string)
    • option2 (opcional, string)
    • option3 (opcional, string)
    • weight (opcional, number)
    • weight_unit (opcional, string)
    • requires_shipping (opcional, boolean)
    • barcode (opcional, string)
    • compare_at_price (opcional, string)
    • fulfillment_service (opcional, string)
    • taxable (opcional, boolean)
    • grams (opcional, number)
  • images (opcional, array de objeto) — Imágenes del producto:
    • src (string)
    • alt (opcional, string)
    • position (opcional, number)
  • options (opcional, array de objeto) — Opciones de producto:
    • name (string)
    • values (array de string)
  • published_scope (opcional, string) — Alcance de publicación (por defecto web).
Ejemplo:
{
  "title": "Remera Unisex Básica",
  "body_html": "<p>Remera 100% algodón, suave y cómoda.</p>",
  "vendor": "MiMarca",
  "product_type": "Indumentaria",
  "tags": "básico,unisex,algodon",
  "status": "active",
  "variants": [
    {
      "price": "19.99",
      "sku": "REM-UNI-BLA-S",
      "inventory_quantity": 50,
      "inventory_management": "shopify",
      "inventory_policy": "deny",
      "option1": "Blanco",
      "option2": "S",
      "weight": 0.2,
      "weight_unit": "kg",
      "requires_shipping": true,
      "barcode": "1234567890123",
      "compare_at_price": "24.99",
      "fulfillment_service": "manual",
      "taxable": true,
      "grams": 200
    },
    {
      "price": "19.99",
      "sku": "REM-UNI-BLA-M",
      "inventory_quantity": 40,
      "option1": "Blanco",
      "option2": "M"
    }
  ],
  "images": [
    { "src": "https://cdn.ejemplo.com/img/remera-1.jpg", "alt": "Remera blanca", "position": 1 },
    { "src": "https://cdn.ejemplo.com/img/remera-2.jpg", "position": 2 }
  ],
  "options": [
    { "name": "Color", "values": ["Blanco", "Negro"] },
    { "name": "Talle", "values": ["S", "M", "L"] }
  ],
  "published_scope": "web"
}

Listar productos

Obtener listado de productos con información básica. Soporta filtros de colección y búsqueda por título. Inputs:
  • limit (opcional, number) — Máximo de productos a devolver (por defecto 50).
  • collection_id (opcional, string) — Filtrar por ID de colección.
  • query (opcional, string) — Buscar por título.
Ejemplo:
{
  "limit": 25,
  "collection_id": "123456789",
  "query": "remera"
}

Obtener información de un producto

Obtener información detallada de un producto específico. Inputs:
  • product_id (string) — ID del producto.
Ejemplo:
{
  "product_id": "123456789"
}

Crear colección manual (Custom Collection)

Crear una colección manual donde los productos se agregan explícitamente. Inputs:
  • title (string) — Nombre de la colección.
  • body_html (opcional, string) — Descripción en HTML.
  • handle (opcional, string) — Identificador amigable (URL).
  • image (opcional, objeto):
    • src (opcional, string)
    • alt (opcional, string)
    • attachment (opcional, string) — Imagen en base64.
  • published (opcional, boolean) — Visibilidad (por defecto true).
  • sort_order (opcional, enum: alpha-asc | alpha-desc | best-selling | created | created-desc | manual | price-asc | price-desc)
  • template_suffix (opcional, string)
  • collects (opcional, array de objeto) — Productos a incluir:
    • product_id (number)
Ejemplo:
{
  "title": "Ofertas de la Semana",
  "body_html": "<p>Selección curada de ofertas.</p>",
  "handle": "ofertas-semana",
  "image": {
    "src": "https://cdn.ejemplo.com/img/ofertas.jpg",
    "alt": "Ofertas",
    "attachment": "data:image/jpeg;base64,AAA..."
  },
  "published": true,
  "sort_order": "manual",
  "template_suffix": "collection.ofertas",
  "collects": [
    { "product_id": 111111111 },
    { "product_id": 222222222 }
  ]
}

Crear colección automática (Smart Collection)

Crear una colección automática donde los productos se agregan según reglas. Inputs:
  • title (string) — Nombre de la colección.
  • rules (opcional, array de objeto) — Reglas de selección:
    • column (string) — Campo (p. ej. vendor, title, type, tag, variant_price, variant_inventory).
    • relation (string) — Operador (p. ej. equals, not_equals, contains, starts_with, ends_with, greater_than, less_than).
    • condition (string) — Valor de comparación.
    • condition_object_id (opcional, string)
  • body_html (opcional, string)
  • handle (opcional, string)
  • image (opcional, objeto):
    • src (opcional, string)
    • alt (opcional, string)
    • attachment (opcional, string)
  • disjunctive (opcional, boolean) — Lógica de reglas: false=AND, true=OR (por defecto false).
  • sort_order (opcional, enum: alpha-asc | alpha-desc | best-selling | created | created-desc | manual | price-asc | price-desc)
  • template_suffix (opcional, string)
  • published (opcional, boolean)
  • published_scope (opcional, string) — web o global (por defecto web).
Ejemplo:
{
  "title": "Remeras en Oferta",
  "rules": [
    { "column": "tag", "relation": "contains", "condition": "oferta" },
    { "column": "type", "relation": "equals", "condition": "Indumentaria" }
  ],
  "body_html": "<p>Remeras con descuento automático.</p>",
  "handle": "remeras-oferta",
  "image": {
    "src": "https://cdn.ejemplo.com/img/remeras-oferta.jpg",
    "alt": "Remeras oferta"
  },
  "disjunctive": false,
  "sort_order": "best-selling",
  "template_suffix": "collection.promos",
  "published": true,
  "published_scope": "web"
}

Listar colecciones

Listar colecciones (custom y smart) con sus IDs y metadatos básicos. Inputs:
  • limit (opcional, number) — Máximo de colecciones a devolver (máx 250, por defecto 50).
Ejemplo:
{
  "limit": 50
}

Crear pedido (Order)

Crear un pedido confirmado en Shopify. No se cobra pago vía API; úsalo luego de confirmar la compra en el chat. Inputs:
  • line_items (array de objeto) — Ítems del pedido:
    • variant_id (opcional, number)
    • product_id (opcional, number)
    • quantity (number)
    • price (opcional, string)
    • title (opcional, string)
    • sku (opcional, string)
    • taxable (opcional, boolean)
    • requires_shipping (opcional, boolean)
  • customer (opcional, objeto):
    • id (opcional, number)
    • email (opcional, string)
    • first_name (opcional, string)
    • last_name (opcional, string)
    • phone (opcional, string)
  • email (opcional, string)
  • phone (opcional, string)
  • shipping_address (opcional, objeto):
    • first_name (opcional, string)
    • last_name (opcional, string)
    • address1 (opcional, string)
    • address2 (opcional, string)
    • city (opcional, string)
    • province (opcional, string)
    • country (opcional, string)
    • zip (opcional, string)
    • phone (opcional, string)
  • billing_address (opcional, objeto): mismos campos que shipping_address.
  • financial_status (opcional, enum: pending | authorized | partially_paid | paid | partially_refunded | refunded | voided)
  • send_receipt (opcional, boolean) — Enviar confirmación por email (por defecto false).
  • note (opcional, string)
  • tags (opcional, string) — Etiquetas separadas por comas.
Ejemplo:
{
  "line_items": [
    { "variant_id": 987654321, "quantity": 2, "price": "19.99", "sku": "REM-UNI-BLA-S" },
    { "product_id": 123456789, "quantity": 1, "title": "Gorra Negra", "price": "14.99", "requires_shipping": true }
  ],
  "customer": {
    "id": 5555555,
    "email": "[email protected]",
    "first_name": "Ana",
    "last_name": "Pérez",
    "phone": "+5491112345678"
  },
  "email": "[email protected]",
  "phone": "+5491112345678",
  "shipping_address": {
    "first_name": "Ana",
    "last_name": "Pérez",
    "address1": "Av. Siempre Viva 742",
    "address2": "Depto 3B",
    "city": "Buenos Aires",
    "province": "CABA",
    "country": "AR",
    "zip": "1000",
    "phone": "+5491112345678"
  },
  "billing_address": {
    "first_name": "Ana",
    "last_name": "Pérez",
    "address1": "Av. Siempre Viva 742",
    "city": "Buenos Aires",
    "province": "CABA",
    "country": "AR",
    "zip": "1000",
    "phone": "+5491112345678"
  },
  "financial_status": "paid",
  "send_receipt": true,
  "note": "Pedido realizado desde el chat",
  "tags": "chat,venta-directa"
}

Crear borrador de pedido (Draft Order)

Crear un borrador de pedido que puede incluir ítems personalizados y generar una URL de pago. Inputs:
  • line_items (array de objeto):
    • variant_id (opcional, number)
    • title (opcional, string) — Requerido para ítems personalizados.
    • price (opcional, string) — Requerido para ítems personalizados.
    • quantity (number)
    • taxable (opcional, boolean)
    • requires_shipping (opcional, boolean)
  • customer_id (opcional, number)
  • email (opcional, string)
  • shipping_address (opcional, objeto):
    • first_name (opcional, string)
    • last_name (opcional, string)
    • address1 (opcional, string)
    • city (opcional, string)
    • province (opcional, string)
    • country (opcional, string)
    • zip (opcional, string)
  • note (opcional, string)
  • tags (opcional, string)
Ejemplo:
{
  "line_items": [
    { "variant_id": 987654321, "quantity": 1 },
    { "title": "Servicio de Personalización", "price": "9.99", "quantity": 1, "taxable": true }
  ],
  "customer_id": 5555555,
  "email": "[email protected]",
  "shipping_address": {
    "first_name": "Ana",
    "last_name": "Pérez",
    "address1": "Av. Siempre Viva 742",
    "city": "Buenos Aires",
    "province": "CABA",
    "country": "AR",
    "zip": "1000"
  },
  "note": "Aplicar descuento en el checkout",
  "tags": "borrador,promo"
}

Obtener información de un pedido

Obtener información detallada de un pedido por ID o por número de pedido. Inputs:
  • order_id (opcional, string)
  • order_number (opcional, string) — Proveer order_id o order_number.
Ejemplo:
{
  "order_number": "1001"
}

Listar clientes

Obtener listado de clientes registrados. Útil para verificar existencia antes de crear pedidos. Inputs:
  • limit (opcional, number) — Máximo de clientes a devolver (máx 250, por defecto 50).
  • query (opcional, string) — Consulta de búsqueda (p. ej. “email:[email protected]”).
Ejemplo:
{
  "limit": 30,
  "query": "email:[email protected]"
}

Crear cliente

Registrar un cliente nuevo. Email y teléfono deben ser únicos. Se recomienda proporcionar al menos nombre, email o teléfono. Inputs:
  • first_name (opcional, string)
  • last_name (opcional, string)
  • email (opcional, string)
  • phone (opcional, string) — Formato E.164.
  • addresses (opcional, array de objeto) — Hasta 10 direcciones:
    • address1 (opcional, string)
    • address2 (opcional, string)
    • city (opcional, string)
    • province (opcional, string)
    • country (opcional, string)
    • zip (opcional, string)
    • phone (opcional, string)
    • first_name (opcional, string)
    • last_name (opcional, string)
  • note (opcional, string)
  • tags (opcional, string)
Ejemplo:
{
  "first_name": "Carlos",
  "last_name": "Gómez",
  "email": "[email protected]",
  "phone": "+5491111122233",
  "addresses": [
    {
      "address1": "Calle Falsa 123",
      "address2": "Piso 2",
      "city": "Córdoba",
      "province": "Córdoba",
      "country": "AR",
      "zip": "5000",
      "phone": "+5493511234567",
      "first_name": "Carlos",
      "last_name": "Gómez"
    }
  ],
  "note": "Cliente VIP",
  "tags": "vip,newsletter"
}

Crear fulfillment (envío)

Crear un fulfillment para un pedido, actualizando su estado de envío y (opcionalmente) notificando al cliente. Inputs:
  • fulfillment_order_id (number) — ID del fulfillment order.
  • tracking_company (opcional, string) — Transportista.
  • tracking_number (opcional, string) — Número de seguimiento.
  • tracking_url (opcional, string) — URL de seguimiento.
  • notify_customer (opcional, boolean) — Enviar notificación al cliente.
Ejemplo:
{
  "fulfillment_order_id": 4444444444,
  "tracking_company": "DHL",
  "tracking_number": "DHL123456789AR",
  "tracking_url": "https://tracking.dhl.com/DHL123456789AR",
  "notify_customer": true
}