magazord-plataforma / marketplace-sdk
SDK de integração com a API do marketplace da plataforma Magazord
Installs: 7 505
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 0
Open Issues: 0
Requires
- php: >=5.4.0
- justinrainbow/json-schema: ^5.0
- nategood/httpful: 0.2.20
This package is auto-updated.
Last update: 2024-04-29 02:30:47 UTC
README
SDK PHP de integração com a API do marketplace da plataforma Magazord
Instalação
Disponível via Composer.
Uso
Anúncios (/items)
Envio do anúncio para o marketplace (POST /items)
// Criar o objeto de envio $sender = new \MagaMarketplace\ItemSender($endpoint, $user, $password); // Criar o objeto com os dados do anúncio $item = new \MagaMarketplace\Domain\Item\Item(); $item->setId('XT1580-PRETO'); $item->setTitle('Smartphone Motorola Moto X Force XT1580 Desbloqueado Preto'); $item->setBrand('Motorola'); $item->setCategory('Smartphone'); $item->setDescription('Feito para quem procura poder e exclusividade, o Motorola Moto X Force XT1580 chegou para conquistar um mundo de fãs...'); $item->setDimensions(new \MagaMarketplace\Domain\Item\Dimension()); $item->getDimensions()->setHeight(15.00); $item->getDimensions()->setLength(0.90); $item->getDimensions()->setWidth(7.80); $item->setWeight(0.169); $item->setEan('7892597338238'); $item->setStock(new \MagaMarketplace\Domain\Item\Stock()); $item->getStock()->setQuantity(10); $item->setImages(array( 'https://d2yd0u3irqwx65.cloudfront.net/img/2015/12/produto/25671/19/large/moto-x-force-xt1580-preto.jpg', 'https://d2yd0u3irqwx65.cloudfront.net/img/2015/12/produto/25675/19/large/traseira-motorola-moto-x-force-xt1580-preto.jpg' )); $item->setVideos(array()); $item->addAttribute('SO', 'Android'); $item->addAttribute('SO Versão', '6.0'); $item->addAttribute('Câmera Frontal', '5MP'); $item->addAttribute('Câmera', '21MP'); $item->setPrice(new \MagaMarketplace\Domain\Item\Price()); $item->getPrice()->setDefault(2499.99); $item->getPrice()->setSale(1999.99); $item->setProductId('8030'); $item->addVariation('Cor', 'Preto'); $item->setWarranty('1 ano'); $item->setActive(true); // Realizando o envio $response = $sender->post($item); if ($response->isSuccess()) { echo 'Sucesso!'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Consulta de anúncios (GET /items)
// Criar o objeto de envio $sender = new \MagaMarketplace\ItemSender($endpoint, $user, $password); // Criar o objeto com os filtros da consulta $filter = new \MagaMarketplace\Domain\Filter\ItemListFilter(); // Setar filtros necessários // $filter->setStatus(\MagaMarketplace\Domain\Item\ItemResponse::STATUS_SELLING); // Parametros de paginação de registros $filter->setOffset(0); $filter->setLimit(10); // Realizando a consulta $response = $sender->getList($filter); if ($response->isSuccess()) { // $response é uma instancia de \MagaMarketplace\Domain\Item\ItemListResponse echo 'Sucesso! <br>'; foreach ($response->getList() as $itemResponse) { echo $itemResponse->getId() . ' - ' . $itemResponse->getTitle() . '<br>'; } } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Consulta de anúncio por id (GET /items/{id})
// Criar o objeto de envio $sender = new \MagaMarketplace\ItemSender($endpoint, $user, $password); // Realizando a consulta $response = $sender->get('XT1580-PRETO'); if ($response->isSuccess()) { // $response é uma instancia de \MagaMarketplace\Domain\Item\ItemResponse echo 'Sucesso! ' . $response->getTitle() . '<br>'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Atualização do preço do anúncio (PUT /items/{id}/price)
$price = new \MagaMarketplace\Domain\Item\Price(); $price->setDefault(2499.99); $price->setSale(2199.99); $response = $sender->putPrice('XT1580-PRETO', $price); if ($response->isSuccess()) { echo 'Sucesso!'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Atualização do Estoque do anúncio (PUT /items/{id}/stock)
$stock = new \MagaMarketplace\Domain\Item\Stock(); $stock->setQuantity(20); $response = $sender->putStock('XT1580-PRETO', $stock); if ($response->isSuccess()) { echo 'Sucesso!'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Ativar/desativar anúncio (PUT /items/{id}/active)
$active = new \MagaMarketplace\Domain\Item\Active(); $active->setActive(true); $response = $sender->putActive('XT1580-PRETO', $active); if ($response->isSuccess()) { echo 'Sucesso!'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Pedidos (/orders)
Criar pedido no marketplace (POST /orders) (Somente SANDBOX)
// Criar o objeto de envio $sender = new \MagaMarketplace\OrderSender($endpoint, $user, $password); // Data atual $dateTime = new \DateTime(); // Criar o objeto com os dados do pedido $order = new \MagaMarketplace\Domain\Order\Order(); $order->setSiteId('00120042342415'); $order->setStore('Cissa Magazine'); $order->setDateCreated($order->toDateTimeString($dateTime)); // Ex: 2017-01-03T14:09:03-02:00 $order->setClient(new \MagaMarketplace\Domain\Order\Client()); $order->getClient()->setName('Consumidor Final'); $order->getClient()->setDocumentNumber('999.999.999-99'); $order->getClient()->addPhone('47 99999999', \MagaMarketplace\Domain\Order\Telephone::TYPE_CELLPHONE); $order->setShippingAddress(new \MagaMarketplace\Domain\Order\ShippingAddress()); $order->getShippingAddress()->setAddressType(\MagaMarketplace\Domain\Order\ShippingAddress::TYPE_RESIDENTIAL); $order->getShippingAddress()->setReceiverName('Consumidor Final'); $order->getShippingAddress()->setReceiverPhone('47 99999999'); $order->getShippingAddress()->setStreet('Estrada da Madeira'); $order->getShippingAddress()->setNumber('1875'); $order->getShippingAddress()->setAdditionalInfo('Magamobi'); $order->getShippingAddress()->setNeighborhood('Barragem'); $order->getShippingAddress()->setCity('Rio do Sul'); $order->getShippingAddress()->setZipcode(89165063); $order->getShippingAddress()->setState('SC'); $orderItem = new \MagaMarketplace\Domain\Order\OrderItem(); $orderItem->setItem(\MagaMarketplace\Domain\Link::itemsLink('XT1580-PRETO')); $orderItem->setQuantity(2); $orderItem->setPrice(1999.99); $orderItem->setStatus(\MagaMarketplace\Domain\Order\Order::STATUS_NEW); $orderItem->setTotal($orderItem->getPrice() * $orderItem->getQuantity()); $order->addItem($orderItem); $order->setFreight(14.99); $order->setTotalAmount($order->getFreight() + $orderItem->getTotal()); $dateTime->modify('+6days'); $order->setEstimatedDeliveryDate($order->toDateString($dateTime)); $order->setShippingService('PAC'); // Enviar $response = $sender->post($order); if ($response->isSuccess()) { // $response é uma instancia de \MagaMarketplace\Domain\Order\OrderResponse echo 'Sucesso! Número pedido ' . $response->getId(); } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Consulta de pedidos (GET /orders)
// Criar o objeto de envio $sender = new \MagaMarketplace\OrderSender($endpoint, $user, $password); // Criar o objeto com os filtros da consulta $filter = new \MagaMarketplace\Domain\Filter\OrderListFilter(); // Setar filtros necessários //$filter->setStatus(\MagaMarketplace\Domain\Order\OrderResponse::STATUS_APPROVED); // Parametros de paginação de registros $filter->setOffset(0); $filter->setLimit(10); // Realizando a consulta $response = $sender->getList($filter); if ($response->isSuccess()) { // $response é uma instancia de \MagaMarketplace\Domain\Order\OrderListResponse echo 'Sucesso! <br>'; foreach ($response->getList() as $orderResponse) { echo $orderResponse->getId() . ' - ' . $orderResponse->getClient()->getName() . '<br>'; } } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Consulta de pedido por id (GET /orders/{id})
$orderId = '67'; // Criar o objeto de envio $sender = new \MagaMarketplace\OrderSender($endpoint, $user, $password); // Realizando a consulta $response = $sender->get($orderId); if ($response->isSuccess()) { // $response é uma instancia de \MagaMarketplace\Domain\Order\OrderResponse echo 'Sucesso! ' . $response->getClient()->getName() . '<br>'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Atualização status do pedido para aprovado (PUT /orders/{id}/approved) (Somente SANDBOX)
$sender = new \MagaMarketplace\OrderSender($endpoint, $user, $password); $tracking = new \MagaMarketplace\Domain\Order\Approved(); $tracking->addItem('XT1580-PRETO', 2); $tracking->setEventDate($tracking->toDateTimeString(new \DateTime())); $response = $sender->putApproved($orderId, $tracking); if ($response->isSuccess()) { echo 'Sucesso!'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Atualização status do pedido para enviado/em transporte (PUT /orders/{id}/shipped)
$tracking = new \MagaMarketplace\Domain\Order\Shipping(); $tracking->addItem('XT1580-PRETO', 2); $tracking->setEventDate($tracking->toDateTimeString(new \DateTime())); $tracking->setCarrier(new \MagaMarketplace\Domain\Order\Carrier()); $tracking->getCarrier()->setName('Correios'); $tracking->setTrackingNumber('PN424048589BR'); $tracking->setInvoice(new \MagaMarketplace\Domain\Order\Invoice()); $tracking->getInvoice()->setNumber(123456); $tracking->getInvoice()->setLine('1'); $tracking->getInvoice()->setIssueDate($tracking->getEventDate()); $tracking->getInvoice()->setAccessKey('42160412687276000179550010005396501000415050'); $response = $sender->putShipped($orderId, $tracking); if ($response->isSuccess()) { echo 'Sucesso!'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Atualização status do pedido para entregue (PUT /orders/{id}/delivered)
$tracking = new \MagaMarketplace\Domain\Order\Delivery(); $tracking->addItem('XT1580-PRETO', 2); $tracking->setEventDate($tracking->toDateTimeString(new \DateTime())); $response = $sender->putDelivered($orderId, $tracking); if ($response->isSuccess()) { echo 'Sucesso!'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }
Atualização status do pedido para cancelado (PUT /orders/{id}/canceled)
$tracking = new \MagaMarketplace\Domain\Order\Canceled(); $tracking->addItem('XT1580-PRETO', 2); $tracking->setEventDate($tracking->toDateTimeString(new \DateTime())); $tracking->setReason('Solicitado pelo cliente'); $response = $sender->putCanceled($orderId, $tracking); if ($response->isSuccess()) { echo 'Sucesso!'; } else { // $response é uma instancia de \MagaMarketplace\Domain\Error echo 'Erro:' . $response; }