Acesso Comercial / Docs / Office / API
Ctrl K
MUTATION

insertProduct

Cria um novo produto na loja. Requer permissão products:write.

Assinatura

mutation {
  insertProduct(input: OfficeApiInsertProductInput!): OfficeApiProductResult

Parâmetros de Input

CampoTipoObrigatórioDescrição
titleString!SimNome do produto.
descriptionStringNãoDescrição do produto (aceita HTML).
priceFloatNãoPreço de venda em reais (ex: 49.90).
categoryStringNãoCategoria do produto. Default: "product".
base64Images[String]NãoImagens codificadas em base64. Formato: data:image/jpeg;base64,.... Veja Upload de Imagens.
filenames[String]NãoNome dos arquivos de imagem (correspondente ao base64Images).
section[String]NãoSeção/departamento do produto (ex: ["Roupas", "Masculino"]).
availableQuantityInt!SimQuantidade disponível em estoque.
isActiveBooleanNãoSe o produto está ativo na loja. Default: true.
brandStringNãoMarca do produto.
shippingInfoShippingInfoInputNãoDados de envio: peso, dimensões, formato.
menu[String!]NãoIDs dos menus onde o produto aparece.
groups[String]NãoGrupos/tags do produto.
seoSeoInputNãoMeta tags para SEO.

ShippingInfoInput

CampoTipoDescrição
weightFloat!Peso em kg (ex: 0.5).
formatString"box" ou "packageByMerchant".
lengthInt!Comprimento em cm.
heightInt!Altura em cm.
widthInt!Largura em cm.
fragileBoolean!Se o produto é frágil.
individualPackingBoolean!Se requer embalagem individual.

SeoInput

CampoTipoDescrição
metaTitleStringTítulo para metatag (SEO).
metaDescriptionStringDescrição para metatag (SEO).
keywordsStringPalavras-chave (SEO).

Retorno

CampoTipoDescrição
successBooleanSe a operação foi bem sucedida.
productIdIDID global do produto criado.
productProductProduto criado completo.

Exemplo Básico

GraphQL
mutation {
  insertProduct(input: {
    title: "Camiseta Azul"
    description: "100% algodão"
    price: 49.90
    availableQuantity: 100
    isActive: true
    menu: []
  }) {
    success
    productId
    product {
      id
      title
      price
    }
  }
}

Exemplo Completo com Imagens

GraphQL
mutation($input: OfficeApiInsertProductInput!) {
  insertProduct(input: $input) {
    success
    productId
    product {
      id
      title
      price
      images {
        url
      }
      availableQuantity
    }
  }
}

Variables

JSON
{
  "input": {
    "title": "Tênis Running",
    "description": "Tênis esportivo",
    "price": 299.90,
    "availableQuantity": 30,
    "isActive": true,
    "base64Images": [
      "data:image/jpeg;base64,..."
    ],
    "filenames": ["tenis-frente.jpg"],
    "section": ["Calçados"],
    "brand": "Nike",
    "menu": [],
    "shippingInfo": {
      "weight": 0.8,
      "format": "box",
      "length": 35,
      "height": 15,
      "width": 25,
      "fragile": false,
      "individualPacking": true
    },
    "seo": {
      "metaTitle": "Tênis Running",
      "metaDescription": "Tênis esportivo"
    }
  }
}