discovery-tecnologia / dsc-mercado-livre

Biblioteca de integração com o Mercado Livre
Apache License 2.0
72 stars 29 forks source link

Atributos e Variações #9

Closed luzgustavo closed 6 years ago

luzgustavo commented 6 years ago

Diego, seria interessante permitir o cadastro de atributos e variações com estoque, SKU, etc. Foi a única coisa que senti falta, pois o restante está perfeito.

dilowagner commented 6 years ago

Legal @luzgustavo!

Vou verificar para implementar na próxima versão...

Abraço!

dilowagner commented 6 years ago

Ola @luzgustavo

Publiquei a versao 1.5.1 com a pull request que contempla as funcionalidades com relação ao gerenciamento de Variações nos Anuncios.

Mais uma vez obrigado por contribuir!

Abraço cara, valeu!

luzgustavo commented 6 years ago

Diego, vi a atualização, mas me diga como proceder para variações combinadas, COR/TAMANHO por exemplo. Como é configurado o attributeCombination se eu já sei os atributos e valores que devo enviar? Grato

Em qua, 17 de out de 2018 às 22:47, Diego Wagner notifications@github.com escreveu:

Closed #9 https://github.com/discovery-tecnologia/dsc-mercado-livre/issues/9.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/discovery-tecnologia/dsc-mercado-livre/issues/9#event-1911066525, or mute the thread https://github.com/notifications/unsubscribe-auth/ApwOFGmrDtLk0SPZRuKLL0pyuUPsFRFKks5ul928gaJpZM4XEcxS .

-- Abraços

Gustavo da Luz http://www.gustavodaluz.com.br falecom@gustavodaluz.com.br (E-mail) msn@gustavodaluz.com.br (Msn)

dilowagner commented 6 years ago

Opa @luzgustavo , entao...

Isso vai depender muito da categoria que vc escolhe para o seu Produto... vou usar essa como exemplo: https://api.mercadolibre.com/categories/MLB46595/attributes#json

O AttributeCombination e um array de Objetos que sao enviados A estrutura que precisamos enviar no attribute_combinations seria essa...

"variations":[  
      {  
         "attribute_combinations":[  
            {  
               "name":"Tipo de acessório",
               "value_id":"3786926",
               "value_name":"Capa"
            },
            {  
               "name":"Tipo de acessório",
               "value_id":"3786927",
               "value_name":"Kit de ferramentas"
            },
         ]
      }
]

Ok, voce precisa montar uma logica ou uma tela para o seu usuario escolher uma Categoria (Final). Com base nessa escolha, vc precisaria exibir os possiveis atributos para esta Categoria...


$item = new Item();
$item->setTitle('Test item - no offer');
....

// Gambiarra aqui so pra ilustrar
$service = new CategoryService();
// Consulta os atributos de uma determinada categoria
$attributes = $service->findCategoryAttributes('MLB46595');

$attributeCombination = new AttributeCombination();
foreach($attributes as $attr) {

    if($attr->getId() == 'ACCESSORY_TYPE') {

        $id = $attr->getId();
        $attributeCombination->setName($attr->getName());
        $value = $attr->getValues()->first(); // pego o primeiro item da Collection apenas como exemplo...
        $attributeCombination->setValueId($value->getId());
        $attributeCombination->setValueName($value->getName());

        break;
    }
}

// Primeira variacao
$variation = new Variation();
$variation->setPrice(120);
$variation->setAvailableQuantity(10);
$variation->addAttributeCombination($attributeCombination); // o add variation e um array, ou seja, vc pode ir adicionando aqui...
$variation->setPictureIds([
    'http://mla-s2-p.mlstatic.com/968521-MLA20805195516_072016-O.jpg'
]);

$item->addVariation($variation); // lembrando que vc pode adicionar outras variacoes

Eu sei que eh meio complexo mesmo... mas...

Tem esse Post aqui, que talvez ilustre a ideia tambem! https://developers-forum.mercadolibre.com/topic/2225-problema-ao-enviar-produto-com-varia%C3%A7%C3%A3o-itemvariationsattribute_combinationsmissing/

Qualquer coisa, posta aqui! Valeu!

luzgustavo commented 6 years ago

Beleza, era só pra saber como passar os atributos, se é o Json no mesmo padrão eu sei o caminho, achei que era atraves de alguma função interna.

Valeu pela atenção meu velho. Abraço

Em Sex, 19 de out de 2018 21:57, Diego Wagner notifications@github.com escreveu:

Opa @luzgustavo https://github.com/luzgustavo , entao...

Isso vai depender muito da categoria que vc escolhe para o seu Produto... vou usar essa como exemplo: https://api.mercadolibre.com/categories/MLB46595/attributes#json

O AttributeCombination e um array de Objetos que sao enviados A estrutura que precisamos enviar no attribute_combinations seria essa...

"variations":[ { "attribute_combinations":[ { "name":"Tipo de acessório", "value_id":"3786926", "value_name":"Capa" }, { "name":"Tipo de acessório", "value_id":"3786927", "value_name":"Kit de ferramentas" }, ] } ]

Ok, voce precisa montar uma logica ou uma tela para o seu usuario escolher uma Categoria (Final). Com base nessa escolha, vc precisaria exibir os possiveis atributos para esta Categoria...

$item = new Item();$item->setTitle('Test item - no offer');....// Gambiarra aqui so pra ilustrar$service = new CategoryService();// Consulta os atributos de uma determinada categoria$attributes = $service->findCategoryAttributes('MLB46595');$attributeCombination = new AttributeCombination();foreach($attributes as $attr) { if($attr->getId() == 'ACCESSORY_TYPE') { $id = $attr->getId(); $attributeCombination->setName($attr->getName()); $value = $attr->getValues()->first(); // pego o primeiro item da Collection apenas como exemplo... $attributeCombination->setValueId($value->getId()); $attributeCombination->setValueName($value->getName()); break; }}// Primeira variacao$variation = new Variation();$variation->setPrice(120);$variation->setAvailableQuantity(10);$variation->addAttributeCombination($attributeCombination); // o add variation e um array, ou seja, vc pode ir adicionando aqui...$variation->setPictureIds([ 'http://mla-s2-p.mlstatic.com/968521-MLA20805195516_072016-O.jpg']);$item->addVariation($variation); // lembrando que vc pode adicionar outras variacoes

Eu sei que eh meio complexo mesmo... mas...

Tem esse Post aqui, que talvez ilustre a ideia tambem!

https://developers-forum.mercadolibre.com/topic/2225-problema-ao-enviar-produto-com-varia%C3%A7%C3%A3o-itemvariationsattribute_combinationsmissing/

Qualquer coisa, posta aqui! Valeu!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/discovery-tecnologia/dsc-mercado-livre/issues/9#issuecomment-431535473, or mute the thread https://github.com/notifications/unsubscribe-auth/ApwOFChJ2dIH3YsalfHfveRAG3rwJuvvks5umnUSgaJpZM4XEcxS .

luzgustavo commented 5 years ago

Fala Diego, cá estou eu te atormentando novamente. Enfim, resumindo, tentei usar a opção de autorização de sua biblioteca e rodar minha aplicação depois de realizada esta validação com APP_ID e KEY, porém estou recebendo um erro, veja se pode me dizer o que é:

Fatal error: Uncaught TypeError: Return value of Doctrine\Common\Annotations\AnnotationRegistry::registerLoader() must be an instance of Doctrine\Common\Annotations\void, none returned in /var/www/html/ml/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php:117Stack trace:#0 /var/www/html/ml/vendor/dsc/mercado-livre/src/Configuration.php(29): Doctrine\Common\Annotations\AnnotationRegistry::registerLoader('class_exists')#1 /var/www/html/ml/vendor/dsc/mercado-livre/src/Environment.php(31): Dsc\MercadoLivre\Configuration->construct()#2 /var/www/html/ml/vendor/dsc/mercado-livre/src/Meli.php(29): Dsc\MercadoLivre\Environment->construct()#3 /var/www/html/ml/admin/syncro.php(97): Dsc\MercadoLivre\Meli->__construct('162697631533406...', 'CtYa72pBLXp4VGl...')#4 {main} thrown in /var/www/html/ml/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php on line 117

Tentei dar um composer update mas não resolveu.

Desde já agradeço.

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail Livre de vírus. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail. <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Em sex, 19 de out de 2018 às 22:27, Gustavo da Luz gustavordaluz@gmail.com escreveu:

Beleza, era só pra saber como passar os atributos, se é o Json no mesmo padrão eu sei o caminho, achei que era atraves de alguma função interna.

Valeu pela atenção meu velho. Abraço

Em Sex, 19 de out de 2018 21:57, Diego Wagner notifications@github.com escreveu:

Opa @luzgustavo https://github.com/luzgustavo , entao...

Isso vai depender muito da categoria que vc escolhe para o seu Produto... vou usar essa como exemplo: https://api.mercadolibre.com/categories/MLB46595/attributes#json

O AttributeCombination e um array de Objetos que sao enviados A estrutura que precisamos enviar no attribute_combinations seria essa...

"variations":[ { "attribute_combinations":[ { "name":"Tipo de acessório", "value_id":"3786926", "value_name":"Capa" }, { "name":"Tipo de acessório", "value_id":"3786927", "value_name":"Kit de ferramentas" }, ] } ]

Ok, voce precisa montar uma logica ou uma tela para o seu usuario escolher uma Categoria (Final). Com base nessa escolha, vc precisaria exibir os possiveis atributos para esta Categoria...

$item = new Item();$item->setTitle('Test item - no offer');....// Gambiarra aqui so pra ilustrar$service = new CategoryService();// Consulta os atributos de uma determinada categoria$attributes = $service->findCategoryAttributes('MLB46595');$attributeCombination = new AttributeCombination();foreach($attributes as $attr) { if($attr->getId() == 'ACCESSORY_TYPE') { $id = $attr->getId(); $attributeCombination->setName($attr->getName()); $value = $attr->getValues()->first(); // pego o primeiro item da Collection apenas como exemplo... $attributeCombination->setValueId($value->getId()); $attributeCombination->setValueName($value->getName()); break; }}// Primeira variacao$variation = new Variation();$variation->setPrice(120);$variation->setAvailableQuantity(10);$variation->addAttributeCombination($attributeCombination); // o add variation e um array, ou seja, vc pode ir adicionando aqui...$variation->setPictureIds([ 'http://mla-s2-p.mlstatic.com/968521-MLA20805195516_072016-O.jpg']);$item->addVariation($variation); // lembrando que vc pode adicionar outras variacoes

Eu sei que eh meio complexo mesmo... mas...

Tem esse Post aqui, que talvez ilustre a ideia tambem!

https://developers-forum.mercadolibre.com/topic/2225-problema-ao-enviar-produto-com-varia%C3%A7%C3%A3o-itemvariationsattribute_combinationsmissing/

Qualquer coisa, posta aqui! Valeu!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/discovery-tecnologia/dsc-mercado-livre/issues/9#issuecomment-431535473, or mute the thread https://github.com/notifications/unsubscribe-auth/ApwOFChJ2dIH3YsalfHfveRAG3rwJuvvks5umnUSgaJpZM4XEcxS .

-- Abraços

Gustavo da Luz http://www.gustavodaluz.com.br falecom@gustavodaluz.com.br (E-mail) msn@gustavodaluz.com.br (Msn)

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail Livre de vírus. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail. <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

dilowagner commented 5 years ago

Opa @luzgustavo , blz? Cara, qual a versão do PHP que você está usando? Me parece que alguma dependência está sendo atualizada acima da versão 7... já tive problemas com isso em outros projetos... vou verificar se é isso mesmo...

luzgustavo commented 5 years ago

Então, o server do meu cliente é 7.0 e vi que no composer tem exigências de versão 7.1 pra cima, deve ser isso. Pedi para atualizarem, te dou feedback em seguida, até para você atualizar as exigências da biblioteca.

Em qua, 7 de nov de 2018 às 09:28, Diego Wagner notifications@github.com escreveu:

Opa @luzgustavo https://github.com/luzgustavo , blz? Cara, qual a versão do PHP que você está usando? Me parece que alguma dependência está sendo atualizada acima da versão 7... já tive problemas com isso em outros projetos... vou verificar se é isso mesmo...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/discovery-tecnologia/dsc-mercado-livre/issues/9#issuecomment-436593679, or mute the thread https://github.com/notifications/unsubscribe-auth/ApwOFHyWEH-726rtWT7vNOD8qw1gBKh8ks5ussPrgaJpZM4XEcxS .

-- Abraços

Gustavo da Luz http://www.gustavodaluz.com.br falecom@gustavodaluz.com.br (E-mail) msn@gustavodaluz.com.br (Msn)

dilowagner commented 5 years ago

Ola @luzgustavo ! Publiquei uma nova versao (1.6.1) que corrige as dependencias do Doctrine... o doctrine-instantiator estava sendo baixado com funcionalidades do PHP > 7.1 Eu subi um container docker e testei com a versao 5.6 do PHP e realmente estava quebrando...

dilowagner commented 5 years ago

Ha outra coisa @luzgustavo! Se voce encontrar algum outro problema (ou se ainda estiver com o mesmo problema)... sugiro abrir outra Issue, pra nao poluir essa aqui... quem tiver o mesmo problema ira se confundir pra encontrar depois! Ja que o titulo dessa e Atributos e Variações

Obrigado por contribuir! Valeu abraco!