private function deleteAll($data)
 {
     $this->populate($data);
     if ($this->StockKeepingUnitImageRemove() === true) {
         $message = 'Imagens de sku removidas com sucesso';
         Handler::success($message, json_encode(array('status' => 'true')));
     } else {
         $message = 'Falha na integração: Imagens não removidas';
         Handler::error($message, json_encode(array('status' => 'false')));
     }
 }
 private function slugGenerator($data)
 {
     VtexRest::validateJson($data);
     $dataSlug = json_decode($data);
     if (property_exists($dataSlug, 'name')) {
         $slug = URI::slug_generator($dataSlug->name);
     } else {
         Handler::error('Falha na integração: O name não foi enviado para geração do slug: ' . __METHOD__, is_string($data) ? $data : '');
     }
     Handler::success('Slug gerado com sucesso', json_encode(array('slug' => $slug)));
 }
 private function update($data)
 {
     VtexRest::validateJson($data);
     $restParams = Config::get('vtex_params_rest');
     $service = $restParams['url_price_update'];
     $key = $restParams['app_key'];
     $token = $restParams['app_token'];
     $response = VtexRest::execute($data, $service, $key, $token);
     if (Uteis::isJson($response)) {
         $jsonDecode = json_decode($response);
         if (is_array($jsonDecode) and isset($jsonDecode[0]) and property_exists($jsonDecode[0], 'itemId')) {
             Handler::success('Preço de sku atualizado com sucesso', $response);
         } elseif (is_object($jsonDecode) and property_exists($jsonDecode, 'error')) {
             Handler::error('#A: Falha no processo de Integração: Preço de sku não atualizado. ' . __METHOD__, $response);
         } else {
             Handler::error('#B: Falha no processo de Integração: Preço de sku não atualizado. ' . __METHOD__, $response);
         }
     } else {
         Handler::error('Falha no processo de Integração: Preço não atualizado :: Retorno fora do padrão: ' . __METHOD__, is_string($response) ? $response : '');
     }
 }
 private function addAddress($data, $profileId)
 {
     VtexRest::validateJson($data);
     $restParams = Config::get('vtex_params_rest');
     $service = $service = preg_replace('/@PROFILEID@/', $profileId, $restParams['url_client_add_address']);
     $key = $restParams['app_key'];
     $token = $restParams['app_token'];
     $response = VtexRest::execute($data, $service, $key, $token);
     if (Uteis::isJson($response)) {
         $jsonDecode = json_decode($response);
         if (is_object($jsonDecode) and property_exists($jsonDecode, 'profileId')) {
             Handler::success('Endereço criado criado com sucesso', $response);
         } elseif (is_object($jsonDecode) and property_exists($jsonDecode, 'error')) {
             Handler::error('#A: Falha no processo de Integração: Endereço não criado. ' . __METHOD__, $response);
         } else {
             Handler::error('#B: Falha no processo de Integração: Endereço não criado. ' . __METHOD__, $response);
         }
     } else {
         Handler::error('Falha no processo de Integração: Endereço não criado :: Retorno fora do padrão json: ' . __METHOD__, is_string($response) ? $response : '');
     }
 }
 private function getReservations($data)
 {
     VtexRest::validateJson($data);
     $restParams = Config::get('vtex_params_rest');
     $service = $restParams['url_stock_reservations'];
     $dataStock = json_decode($data);
     if (property_exists($dataStock, 'itemId') and property_exists($dataStock, 'wareHouseId')) {
         $service = preg_replace(array('/@WAREHOUSEID@/', '/@ITEMID@/'), array($dataStock->wareHouseId, $dataStock->itemId), $restParams['url_stock_reservations']);
     } else {
         Handler::error('Falha na integração: É preciso enviar os parâmetros (itemId e wareHouseId) para realizar a consulta: ' . __METHOD__, is_string($data) ? $data : '');
     }
     $data = null;
     $key = $restParams['app_key'];
     $token = $restParams['app_token'];
     $response = VtexRest::execute($data, $service, $key, $token, false);
     if (Uteis::isJson($response)) {
         $jsonDecode = json_decode($response);
         if (is_object($jsonDecode) and property_exists($jsonDecode, 'error')) {
             Handler::error('#A: Falha no processo de Integração: Estoque Reservado não consultado . ' . __METHOD__, $response);
         } elseif (is_array($jsonDecode) or true) {
             Handler::success('Estoque reservado de sku consultado com sucesso', $response);
         } else {
             Handler::error('#B: Falha no processo de Integração: Estoque reservado não consultado . ' . __METHOD__);
         }
     } else {
         Handler::error('Falha no processo de Integração: Estoque reservado não consultado :: Retorno fora do padrão json: ' . __METHOD__, is_string($response) ? $response : '');
     }
 }
 public function orderTransactionIteration($data)
 {
     VtexRest::validateJson($data);
     $restParams = Config::get('vtex_params_rest');
     $dataIteration = json_decode($data);
     if (property_exists($dataIteration, 'transaction_id')) {
         $service = preg_replace('/@TRANSACTIONID@/', $dataIteration->transaction_id, $restParams['url_order_transaction_iteration']);
     } else {
         Handler::error('Falha na integração: É preciso enviar transaction_id para pegar as iterações da transação : ' . __METHOD__, is_string($data) ? $data : '');
     }
     $key = $restParams['app_key'];
     $token = $restParams['app_token'];
     $response = VtexRest::execute($data, $service, $key, $token, false);
     if (Uteis::isJson($response)) {
         $jsonDecode = json_decode($response);
         if (isset($jsonDecode[0]) and is_object($jsonDecode[0]) and property_exists($jsonDecode[0], 'TransactionId')) {
             Handler::success('Consulta de transação realizada com sucesso', $response);
         } elseif (is_object($jsonDecode) and property_exists($jsonDecode, 'error')) {
             Handler::error('#A: Falha no processo de Integração: Consulta de transação não realizada. ' . __METHOD__, $response);
         } else {
             Handler::error('#B: Falha no processo de Integração: Consulta de transação não realizada. ' . __METHOD__, $response);
         }
     } else {
         Handler::error('Falha no processo de Integração: Consulta de transação não realizada :: Retorno fora do padrão json: ' . __METHOD__, is_string($response) ? $response : '');
     }
 }
 private function active($data)
 {
     $this->populate($data);
     try {
         $soapClient = VtexSoap::createSoapclient();
         $result = $soapClient->StockKeepingUnitActive(array('idStockKeepingUnit' => $this->idStockKeepingUnit));
         if (is_object($result)) {
             $message = 'Flag Ativar Sku se possível ativada com sucesso';
             Handler::success($message, json_encode(array("result" => "true")));
         } else {
             $message = 'Flag Ativar Sku se possível não foi ativada';
             Handler::error($message, json_encode(array("result" => "false")));
         }
     } catch (SoapFault $e) {
         VtexSoap::setResponseHeader($soapClient);
         $message = "Falha no processo de Integração. Método: " . __METHOD__;
         $messageVtex = json_encode(array('message' => $e->getMessage()));
         Handler::error($message, $messageVtex);
     }
 }
 private function update($data)
 {
     $this->populate($data);
     $productDTO = $this->ProductGetByRefId();
     if ($productDTO !== NULL) {
         $this->clear()->populate($productDTO)->modifier($data);
         $response = $this->ProductInsertUpdate();
         if ($response !== NULL) {
             $message = 'Produto atualizado com sucesso';
             Handler::success($message, json_encode($response));
         } else {
             $message = 'Falha na integração: Produto não atualizado';
             Handler::error($message, json_encode($response));
         }
     } else {
         Handler::error($message = "Falha no processo de Integração. Produto não encontrado. Método: " . __METHOD__);
     }
 }
 private function bindSku($data)
 {
     $this->populate($data);
     $response = $this->StockKeepingUnitServiceInsertUpdate();
     if ($response !== NULL) {
         $message = 'Vínculo de Serviço a Sku realizado com sucesso';
         Handler::success($message, json_encode($response));
     } else {
         $message = 'Falha na integração: Vínculo de Serviço a Sku não realizado';
         Handler::error($message, json_encode($response));
     }
 }