Atualiza a quantidade disponível em estoque. Requer permissão products:write.
mutation {
updateAvailableQuantity(input: OfficeApiUpdateAvailableQuantityInput!): OfficeApiProductResult | Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | ID! | Sim | ID global do produto. |
availableQuantityChange | Int! | Sim | Alteração na quantidade. Valor positivo adiciona estoque, negativo remove. Ex: +10 adiciona 10 unidades, -5 remove 5. |
newUnitCost | Float | Não | Novo custo unitário do produto (para controle de margem). Opcional. |
availableQuantityChange é um delta (diferença), não um valor absoluto. Para definir estoque = 50, primeiro consulte o estoque atual e calcule a diferença.
| Campo | Tipo | Descrição |
|---|---|---|
success | Boolean | Se a operação foi bem sucedida. |
productId | ID | ID do produto atualizado. |
Para sincronizar estoque com um ERP externo, consulte o estoque atual e calcule o delta:
async function syncStock(productId, desiredQuantity) {
// Consultar estoque atual
const { product } = await officeApi(`
query($id: ID!) {
product(id: $id) {
id
availableQuantity
}
}
`, { id: productId });
const currentQuantity = product.availableQuantity;
const change = desiredQuantity - currentQuantity;
if (change === 0) return; // Já sincronizado
// Aplicar delta
await officeApi(`
mutation($input: OfficeApiUpdateAvailableQuantityInput!) {
updateAvailableQuantity(input: $input) {
success
}
}
`, {
input: {
id: productId,
availableQuantityChange: change
}
});
} mutation {
updateAvailableQuantity(input: {
id: "UHJvZHVjdDo2MTIz..."
availableQuantityChange: 10
}) {
success
productId
}
} mutation {
updateAvailableQuantity(input: {
id: "UHJvZHVjdDo2MTIz..."
availableQuantityChange: -5
}) {
success
}
} mutation {
updateAvailableQuantity(input: {
id: "UHJvZHVjdDo2MTIz..."
availableQuantityChange: 100
newUnitCost: 25.50
}) {
success
}
}