Produto Simples

Existem algumas diferenças na atualização de produtos simples e variáveis, nesta página mostraremos como alterar produtos simples

PUT - Atualizando um produto simples

A atualização de informações é realizada através do método PUT, mantendo o mesmo header e conservando o atributo que deverá ser alterado.

Para realizar a atualização, é preciso utilizar o método PUT no mesmo endpoint de produtos acrescido do código SKU do produto simples conforme abaixo:

https://api.skyhub.com.br/products/{SKU}

Request headers:

KeyValue

X-User-Email

email_de_usuario

X-Api-Key

token_de_integracao de sua conta SkyHub

X-Accountmanager-key

token_account único de cada Plataforma/ERP

Accept

application/json

Content-Type

application/json

Request body:

{
  "product": {
    "Atributo": "Novo Valor"
  }
}

O objeto product deve ser preservado na request, caso contrário um erro será retornado na tentativa de atualizar o produto.

Example request:

No exemplo abaixo, estamos alterando somente o nome do produto, então todos os demais atributos foram retirados da requisição, para facilitar o entendimento.

curl --location --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "name": "Nome Atualizado do Produto"
  }
}'

Response esperado:

204 [Success] - No content

Para a atualização de imagens é necessário atentar-se a URL indexada: Para realizar alterações nas imagens de um produto é preciso encaminhar uma nova URL, ou seja, não é possível reutilizar a URL previamente enviada; somente com URLs diferentes a nova imagem será refletida pelo marketplace.

[Ver Comunicado: Envio de Imagens para o Marketplace]

Como atualizar o atributo crossdocking

O crossdocking é o atributo responsável pela definição do prazo do item, isto é, ele representa o tempo que o seller leva para fabricar o produto após o pagamento do pedido ter sido aprovado.

O atributo crossdocking precisa ser definido dentro do array specifications, onde são informados os campos key e value.

O valor (value) deve ser preenchido apenas em números e representa a quantidade de dias.

A seguir temos um exemplo de requisição para atualização do atributo crossdocking:

curl --location --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
	"product": {
		"specifications": [{
			"key": "crossdocking",
			"value": "10"
		}]
	}
}'

Como atualizar preço e estoque

Assim como quaisquer atualizações em produtos, para alterações nos campos de preço (price e promotional_price) e estoque deve ser utilizado o método PUT no /products/{SKU}.

A seguir temos exemplos de requisições para as atualizações de preço e estoque para produtos simples:

Atualização de preço:

curl --location -g --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "price": 100.00,
    "promotional_price": 80.00
  }
}'

Atualização de estoque:

curl --location -g --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "qty": 1000
  }
}'

Atualização de preço e estoque:

curl --location -g --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "qty": 1000,
    "price": 100.00,
    "promotional_price": 80.00
  }
}'

Nas atualizações de preço e estoque não deve ser enviada a estrutura completa do produto, ou seja, é preciso enviar apenas os respectivos campos (qty, price e promotional_price).

Criação de variação em produtos simples

Quando desejar tornar um Produto Simples em Produto Variável, é necessário enviar no body a estrutura de um Produto Variável, com o Array 'variations' especificando as variações a serem criadas e também o 'variation_attributes' especificando os atributos variantes.

IMPORTANTE:

Só indicamos a criação de variações em produtos simples enquanto o SKU não tiver conectado ao Marketplace.

E se o produto já estiver conectado?

Se um produto simples já estiver conectado e uma nova variação é enviada no produto, automaticamente será excluída a oferta do produto simples no Marketplace.

O produto só será criado novamente no Marketplace desta vez como variável, quando o parceiro realizar uma nova conexão do produto.

curl --location -g --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "sku": "foo", // String
    "name": "foo", // String
    "description": "foo", // String
    "status": "enabled", // String
    "price": 0.0, // Integer
    "cost": 0, // Integer
    "brand": "foo", // String
    "weight": 0, // Integer
    "height": 0, // Integer
    "width": 0, // Integer
    "length": 0, // Integer
    "variations": [ //Exemplo de Variação

      {
        "sku": "foo-1",
        "qty": 0,
        "ean": "foo", // String
        "specifications": [ 
          {
            "key": "Cor",
            "value": "Preto"
          },
          {
            "key": "Tamanho",
            "value": "G"
          },
          {
            "key": "price",
            "value": "39.90"
          }
        ]
      }
    ],
    "variation_attributes": [
      "Cor",
      "Tamanho"
    ]
  }
}'

Last updated