usage - gpupo/netshoes-sdk GitHub Wiki


Administração de Produtos

Para informações do formato de $data veja o arquivo vendor/gpupo/netshoes-sdk/Resources/fixture/Product/new.json

Acesso a lista de produtos cadastrados

<?php
//..
$produtosCadastrados = $sdk->factoryManager('product')->fetch(); // Collection de Objetos Product

Acesso a informações de um produto cadastrado e com identificador conhecido:

<?php
//..
$produto = $sdk->factoryManager('product')->findById(9)); // Objeto Produto
echo $product->getName(); // Acesso ao nome do produto de Id 9

Acesso ao Status de um Product

<?php
//..
$status = $sdk->factoryManager('product')->fetchStatusById(9)); // Objeto Status
$status->isPending(); // boolean ou RuntimeException code 404 (inexistente)

Criação de um produto

<?php
$product = $sdk->createProduct($data);

Gravação de Product

<?php
//..
$sdk->factoryManager('product')->save($product);

Atualização de Product

<?php
$manager = $sdk->factoryManager('product');
$previous = $sdk->createProduct($previousData);
$product = $sdk->createPrevious($data);
$manager->update($product, $previous);

A atualização compara $product com $previous é uma instância de Product para identificar apenas os campos que precisam de atualização;

Importante: $previous deve ser armazenada localmente, para reduzir a quantidade de requisições à API;

Atualização de Sku

<?php
$manager = $sdk->factoryManager('sku');
$previous = $sdk->createSku($previousData);
$sku = $sdk->createSku($data);
$manager->update($sku, $previous);

A atualização compara o SKU atual com $previous é uma instância de Sku para identificar apenas os campos que precisam de atualização;

Importante: $previous deve ser armazenada localmente, para reduzir a quantidade de requisições à API;

Administração de Pedidos

Fluxo de status dos pedidos:

Created --> Approved --> Invoiced --> Shipped --> Delivered

Para informações do formato de $data veja o arquivo vendor/gpupo/netshoes-sdk/Resources/fixture/Order/new.json

A seguir seguem exemplos de mudanças de status de um pedido:

Invoiced

<?php
//..
$order = $sdk->createOrder($data)->setOrderStatus('invoiced');
$invoice = $sdk->createInvoice([
	'number'    => 4003,
	'line'      => 1,
	'accessKey' => '1789616901235555001000004003000004003',
	'issueDate' => '2016-05-10T09:44:54.000-03:00',
]);
$order->getShipping()->setInvoice($invoice);
echo $sdk->factoryManager('order')->update($order)->getHttpStatusCode()); // 200

Shipped

<?php
//..
$order = $sdk->createOrder($data)->setOrderStatus('shipped');
$transport = $sdk->createTransport([
	"carrier"               => "Correios",
	"trackingNumber"        => "PJ521644335BR",
	"shipDate"              => "2016-05-10T10:46:00.000-03:00",
	"estimatedDeliveryDate" => "2016-05-10T10:46:00.000-03:00",
]);
$order->getShipping()->setTransport($transport);
echo $sdk->factoryManager('order')->update($order)->getHttpStatusCode()); // 200

Delivered

<?php
//..
$order = $sdk->createOrder($data)
	->setOrderStatus('delivered')
	->getShipping()->getTransport()
	->setDeliveryDate("2016-05-10T10:53:00.000-03:00");
echo $sdk->factoryManager('order')->update($order)->getHttpStatusCode()); // 200

Trade Order

Acesso ao output padrão Trading Order

<?php
//..
use Gpupo\NetshoesSdk\Entity\Order\Order;
use Gpupo\NetshoesSdk\Entity\Order\Manager;
//...
$manager = new Manager();
$tradeOrder = $manager->export($order);