andre machado

Members
  • Content Count

    43
  • Joined

  • Last visited

Everything posted by andre machado

  1. Cara, eu tenho um problemão com isso, até hoje não consegui calcular 100% o lucro do combatente, por que, eu pego o valor do produto, verifico se é frete grátis, e retiro o valor do frete. Esse valor do frete as vezes calcula errado, eu não entendi ainda, alguem poderia aproveitar e responder com algum algoritmo mostrando as variáveis necessárias e seus ifs, para pegar o lucro de uma venda menor de r$ 120,00 e outro para a venda maior de r$ 120,00 ? Eu sei é bem simples, mas me perdi, tem algum parametro, dado, que estou errando, e é relacionado a este frete ai!
  2. O valor real sempre está no mercado pago. Fique atento quando lhe der prejuíso e notifique o mercado livre pelo chat. No mais, quando é saldo positivo demais, deve ser algo relacionado a pontuação do mercado livre onde o sistema do mercado livre paga algumas coisas relacionadas ao frete então pode omitir grande parte do frete, neste caso nem mesmo ao mercado pontos me parece coerente, voce está no lugar errado, tem que abrir chat com o mercado livre e identificar o que se relaciona essa divergencia, para todas, mas se preocupe mesmo nas que lhe dão prejuíso, por exemplo, um resultado de saldo menor do que o visto no mercado livre, que é cobrança indevida, ocorria muito, e a cada mudança na plataforma os programadores lá podem errar. Sou vendedor a tres anos e sempre que ocorreu isso o mercado livre identificou o do mercado pago como real, e falou em valor indevido, já tive positivos enegativos, sempre corrigidos pela equipe de tecnologia deles após abrir chat
  3. Se o estoque está baixo em determinado produto é importante reservar o estoque, independente da situação, hoje não se pode mais ter cancelamento que tu é "amarelado", e também não pode ter atraso! Seja para se adiantar com o estoque no qual é possível para quem trabalha com estoque baixo, inúmeras coisas podem ser feitas neste meio tempo. Eu trabalho com estoque real na quantidade 3, para vários anúncios na quantidade 3. Ocorre as vezes deles estourarem estoque de um anúncio e ir no outro comprar novamente seja o próprio ou outro comprador, dá uma bagunça danada, e saber a intenção de compra é importante!
  4. Fácil, amigo, presta atenção, as Vendas tu nao pode ficar com informação atrasada, portanto, no momento da listagem de vendas, faça uma verificação se o status e o substatus está igual ao seu banc ode dados, se nao estiver, voce atualiza ele, logo, voce manterá atualizado seu banco e então apenas calcule a quantidade de vendas com read to print, eu pego as vendas 100% sincronizado aqui sem lentidão. O segredo tá em, reatualizar as vendas com o status e substatus diferente, tem que fazer essa requisição uma por uma, liste 20, ou 50 no máximo por tela, dependendo do seu servidor e quantidade de vendas, o recomendado é 20 para pequenos (no meu caso) com uma opção para listar 50
  5. Bom dia, qual informação tenho que requisitar para pegar aqueles boletos que estão pendente compensar ? Estou tentando pelo payments e orders payments: $params = array(); $url = "/payments/search?&access_token={$_SESSION['access_token']}&sort=date_desc&offset={$offset}&limit={$limit}"; $result = $meli->get($url, $params); orders: $params = array(); $url = "/orders/search?seller={$id_usuario}&access_token={$_SESSION['access_token']}&sort=date_desc&offset={$offset}&limit={$limit}"; $result = $meli->get($url, $params); É por aqui ? Eu já vasculhei tudo mas nao aparece, nao sei se é por que não tem nenhum boleto pendente, eu quero evitar falta de estoque prevendo o que será comprado.
  6. Me parece que, usando: $query=iconv('UTF-8', 'ASCII//TRANSLIT', $query); Funcionou, converteu de "Mão" para "Mao", Encontrou no mercado livre tanto Mão, quanto Mao, Mas logo depois de sincronizar eu insiro no banco o que não tem, e, trago o resultado do banco, me parece que, o meu banc ode dados que está retornando com diferença na acentuação, e me trazendo somente "Mao", O que fazer pro banco de dados capturar tanto a como ã, assim por diante ?
  7. Também tentei: $params =urlencode( array( 'access_token' => $_SESSION['access_token'], 'orders' =>'stop_time_desc', 'limit'=>$limit, 'offset'=>$offset, 'query'=>$query_mercadolivre )); O erro é: Warning: urlencode() expects parameter 1 to be string, array given in /.../controller.phpon line Fatal error: Unsupported operand types in /.../controller.phpon line Também tento: $params = array( 'access_token' => $_SESSION['access_token'], 'orders' =>'stop_time_desc', 'limit'=>$limit, 'offset'=>$offset, 'query'=>urlencode($query_mercadolivre )); O erro é: Notice: Undefined property: stdClass::$results in
  8. Bom dia, a questão do espaço eu consegui resolver colocando um underline com replace. Porém, a questão da acentuação não. Eu digito: "Mão", o meu html é UTF-8, e o meu php é UTF-8, quando dou echo no que digito por algum motivo mostra no formato ISO-8859-1, ou seja, "Mão" corretamente. Se eu mando essa query para o mercado livre me retorna erro: Notice: Trying to get property of non-object in /.../controller.phpon line Para tirar a acentuação eu converto pelo php em UTF-8 pelo código: $query=iconv('UTF-8', 'ASCII//TRANSLIT', $query); Então, "Mão" é convertido e ao dar echo aparece como "Mao", logo, é enviado essa string pro mercado livre e faz a busca normalmente, mas pela query "Mao", sem acentuação, e, o mercado livre, não encontra as palavras que estão cadastradas lá com acentuação. Então, não consigo resolver o problema de acentuação. Se eu uso $query = urlencode($query); Ocorre o seguinte erro: Sincronizando "m%C3%A3o" ... Notice: Undefined property: stdClass::$results in
  9. O que eu faço então? No momento to dando insert e update em cada requisição, a diferenca é que, nao deixo o banco repetir, uso um unique_id, e, executo com cron a cada 1 minuto. Mas posteriormente o cron executar vem denovo aquela requisição e um novo update é feito (no mesmo resource) Como reaproveitar essas requisições?
  10. Se é informação repetida, tu dá o unique_id no resource. Não esquece de enviar o ok resposta 200 pro servidor do mercado livre no ato do recebimento, antes de incluir o dado no banco de dados, então, se por algum motivo for dado repetido, o unique id irá reter e não irá usar o banco nele. Quando usar a notificação de fato, pode dar um delete na linha do banco, e quando voce receber ela novamente, então será inclusa ao banco. É assim que eu faço, Eu tenho um cron rodando a cada 1 minuto executa todas notificações salvas no banco. Sendo que cada vez que recebo a notificação eu salvo no banco e dou o ok 200, além de proteger o banco com unique id dentro deste 1 minuto. Fica super rápido Mas a parte do cron a cada 1 minuto você pode eliminar caso necessite de maior exatidão no sistema que está sua api. O meu é provisório pois pretendo futuramente rodar no mesmo momento do recebimento.
  11. Oi, é php sim. Tá, mas eu coloco isso onde. em baixo do codigo que recebo o json numa variavel ? E essa resposta se dará ao recebimento dessa notificação em específica, para cada terá este retorno é isso ? Por que não vi parametros ou onde colocar, eu não faço ideia como se usa a resposta do ok, mas tenho um codigo limpo apenas recebendo o json, e incluindo os dados no meu banco de dados para depois tratar notificação por notificação, acontece que está entrando várias repetidas, no qual quero evitar dando o ok quando recebido. Uma alternativa foi dar um unique id no banco para esse dado, mas, não é o correto.
  12. Erro 403 é sempre relacionado com permissão e nunca um erro de código. Pense nas permissões da API relacionado diretamente ao mercado livre, o que conheço é somente o que está na página do seu mercado livre developers, na configuração da api, tente marcar tudo que está relacionado com a operação lá, pode ser que esteja faltando este item. Posteriormente, deslogue ou kicke a account do seu mercado livre api, e faça login por ela novamente.
  13. Bom dia, eu estou recebendo as notificações e tratando o json normalmente, capturo o dado e levo ao banco de dados, faço o que tem de ser feito, porém, a notificação se repete mesmo após eu capturar o json, Não sei que código deve ser utilizado para enviar o ok status 200 para o mercado livre parar de me notificar sobre aquele item, O que ocorre é que, eu fico repetidamente tratando o mesmo item (dado) Sei que o servidor deve retornar esse status, mas não sei como fazer!
  14. Obrigado! Vou testar mais tarde; Respondendo ao seu tópico: 1 - É necessário passar o Token 2 - Já consegue listar os últimos anuncios pela API ? 3 - Se já consegue listar, para editar basta usar o código de gestão do item, na documentação está em: https://developers.mercadolivre.com.br/pt_br/items-e-buscas Para ver o título você está usando o seguinte código pelo GET: $ curl -X GET https://api.mercadolibre.com/items/MLA608007087?access_token=$ACCESS_TOKEN Lembre desta parte da documentação? /items/{Item_id} Obtém listagem de gestão. Tente agora editar a quantidade pelo exemplo quando tu clica ao lado em PUT: $ "curl -X PUT -H ""Content-Type: application/json"" -H ""Accept: application/json"" -d { ""available_quantity"": 6 } https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN" Consegue atualizar a quantidade ? O procedimento é igual para o título!
  15. Olá, Quero um auxilio para saber qual procedimento adotar, ou como tratar um valor recebido pelo callback! 1 - Capturei o retorno em uma variavel $retorno 2 - Criei uma tabela no banco com os campos do retorno e inseri lá $retorno = file_get_contents('php://input'); $json = json_decode($retorno); Este código a baixo de exemplo está funcionando! $application_id = $json->application_id; $resource = $json->resource; $user_id = $json->user_id; $topic = $json->topic; $attempts = $json->attempts; $sent = $json->sent; $received = $json->received; Tabela no banco: O que faço com esta informação ? Eu imagino que devo atualizar o item no banco de dados, capturando todos dados dele e dando update, é assim que funciona a operação ? Qual o procedimento voces adotam, para que eu possa me guiar se estou fazendo certto, pois a informação é pouca e não sei exatamente o que foi alterado, se foi preço, etc, eu mesmo devo atualizar tudo ? Variável $retorno dá o resultado: Thank u!
  16. Dá um foreach set estoque = x nos items da variação (:
  17. Olá amigo, procura pelo comando que lista somente o item_id de determinado vendedor. Você vai conseguir atingir um limite de 1000 resultados somente com o item_id Posteriormente, procura fazer algo com essa quantidade, seja buscar os dados idnviduais de cada item e na primeira vez inserir no teu banco de dados com o dado da data de criação e atualização, assim podendo filtar melhor, e fazendo algum tipo de paginação, ou então buscando de categoria por categoria em um while até concluir a inserção no banco, uma coisa é certa, faça algo que mantenha mil resultados, mais que isso, tu procura pelo comando como listar mais de 1000 resultados de anuncios tem um segredo lá
  18. Olá, só consigo fazer funcionar se eu digito uma unica palavra sem acentuação. Quando digito com espaço, exemplo: "fonte notebook", então dá erro: Linha 166: if (count($result['body']->results)>0) { Ele dá erro no resultado, ou seja não funciona, eu sei que o erro é no $params exatamente no $query. Mas não sei arrumar, de jeito nenhum. O Query vem exatamente o que foi digitado, na verdade apenas limpo com um $query = trim($query); Código:
  19. Me parece que estão falando sobre isso com a palavra login offline do usuário dono da account no mercado livre. Mas blz entendi sua resposta, estou no caminho correto. Pergunto pois justamente sou novo no login oAuth/2 e vejo que qualquer erro pode transformar o sistema super lento!
  20. Olá a pergunta deve ser repetida, mas vasculhei o forum antes e encontrei alguma informação mas a dúvida permanece. Sei que o código normal é $meli = new Meli($appId, $secretKey); Encontrei o código para multiusuário pelo id $meli = new Meli('APP_ID', 'SECRET_KEY', $_SESSION['access_token'], $_SESSION['refresh_token']); Neste caso imagino que cada login que os usuários fazem no sistema eu devo armazenar a access_token e o refresh_token para quando quiser "usar" a conta dele offline eu me conectar nestes dados. Mas a dúvida é a seguinte, O sistema "esquece" o access_token e depois tem que renovar por refresh_token, O refresh_token não tem um prazo de expirar ? Se o usuário ficar muito tempo fora do sistema a conexão se perde ? Qual o limite de tempo ? Eu tenho que cuidar o expires e ficar renovando ele pelo próprio sistema para não cair ? Poderiam me direcionar para a documentação do login offline, e dar alguma dica se estou no caminho certo ? Estou me orientando pela resposta aqui no forum de Thavo Uma orientação se é assim como falei, ou não ?
  21. Já criei um tópico no forum mas acho que ficou confuso, até hoje não consegui. Simplesmente preciso ordenar uma lista de anúncio por order de data de criação decrescente, e ordenar por data de modificação decrescente. O que preciso é o famoso finalizam por último um pouco diferente, não encontro esta ordenação na documentação. Se for possível conhecer mais opções além da ordenação por preço. Meu código é $query=""; $params = array(); $url = "/sites/MLB/search?seller_id={$id_usuario}&sort=date_updated&offset={$offset}&limit=50&status=active"; $result = $meli->get($url, $params); Preciso de um entendimento, nem que seja uma ordenação entre as que pedi já serve. Também tentei o código: $params = array( 'access_token' => $_SESSION['access_token'], 'orders' =>'stop_time_desc', 'limit'=>50, 'offset'=>1, 'status'=>'active' ); $url="/users/{$id_usuario}/items/search"; Mas o resultado só vem o id do item e eu penso em buscar um resultado com os dados de cada item sem precisar fazer uma nova consulta, igual o primeiro. No segundo código eu consegui um resultado melhor mas fica mais lento por causa de duas requisições, então penso que posso estar no caminho errado. Penso em usar este segundo código incluindo os anuncios no meu banco de dados quando não existir nele o id do item, e mostrar pelo banco com uma condição, se a data de modificação for diferente então atualiza o produto no banco, mas mesmo assim, não sei se estou certo, o primeiro código pareceu tão simples e bom se tivesse como ordenar e filtrar melhor. De qualquer forma a opção dois trás finalizam por último, diferente de últimos criados! Qual o correto para a operação?
  22. To encontrando alguns dados do item (: https://developers.mercadolivre.com.br/pt_br/api-docs-pt-br/items-e-buscas#modal2 /items/{Item_id} Obtém listagem de gestão. Mas ainda não consegui listar com ordenação, Só acho ainda que isso pode causar lentidão se eu estou em uma consulta de listar itens tenho que consultar um específico. Sobre a ordenação, faço interno no código mesmo?
  23. Pelo que entendi é só o básico mesmo que está escrito no array(), por exemplo aquilo que acompanha de "available_sorts" Se for isso mesmo tenho que fazer na mão muita ordenação e filtro tornando o api mais lento devido a quantidade de requisição é isto mesmo ? Eu consigo ordenar os pedidos por ordem decrescente (data) mas os anúncios não encontrei a opção até o momento, nem mesmo por mostrar a data de criação e modificação, se é que tem no api (: