-

Anio
- Administrateur

-
- Messages: 19651
- Âge: 37 ans
  
|
par Anio » Ven Fév 21, 2014 12:46 pm
Je copie/colle les débuts de réflexion : Tipiak a écrit:Lurkeur de ce sujet depuis longtemps, c'est grâce à (ou à cause de) celui-ci que je suis tombé dans la passion des lego. Je m'intéresse principalement aux Technic et aux City (ainsi qu'aux Duplo pour ma fille). J'ai récemment découvert les Modulars avec le Pet Shop et le Town Hall. Les anciens Modulars m'intéressent également mais sont hors de prix. Voici donc le sujet qui m'amène. Sur différents forums, dont celui-ci, il y a plusieurs personnes qui ont entreprise de reproduire certains sets en achetant les pièces à l'unité (modulars ou le fameux Faucon Millenium par exemple). Je m'y suis intéressé mais j'ai vite abandonné devant le travail nécessaire (comparer les prix Bricklink, lego, voire même remplacer certaines pièces honéreuses). Je me suis alors lancé dans la création d'une application java (mon autre passion est la programmation) qui ferait une partie du travail pour moi. Voici donc son fonctionnement actuel : - à partir d'un numéro de set, je récupère automatiquement l'inventaire du set sur Brickset (détails de toutes les pièces et leur nombre dans le set concerné) ; - je récupère ensuite automatiquement le prix de chaque pièce à l'unité sur le site Pick a Brick de Lego ainsi que Briques & Pièces du même site Lego (les prix peuvent varier et Briques & Pièces possède plus de pièces que Pick a Brick) ; - j'effectue ensuite une recherche automatique sur Bricklink pour chaque pièce en ne prenant que les boutiques qui ont la pièce en question, à un prix inférieur à celui de lego (Pick a Brick et Briques & Pièces) et avec une quantité supérieure à celle du set, et je prend le prix de la boutique la moins chère.
J'obtiens donc (au bout d'un petit quart d'heure, cela demande encore optimisation) un fichier Excel qui pour chaque pièce possède les infos suivantes : - son prix chez Lego (Pick a Brick et Briques & Pièces) et Bricklink ; - le nombre de cette pièce dans le set ; - le prix total pour cette pièce pour chacun des magasins ; - le prix le moins cher ; - la différence de prix entre Bricklink et le prix le moins cher de chez Lego ; - l'adresse du store Bricklink correspondant.
Voici mon problème. C'est intéressant de comparer les prix Lego et les prix Bricklink, mais sans connaître les frais de port de chaque boutique, cela perd un peu de son intérêt. Etant loin d'être un expert Bricklink, existe-t-il un moyen de connaître les frais de port (même approximatif) d'une boutique de manière automatique ? Peut-il être intéressant d'acheter des exemplaires d'une même pièce dans différentes boutiques bricklink ? Je poste également sur ce forum pour avoir un avis sur cette application et si vous voudriez avoir d'autres informations qui permettrait d'arriver au meilleur prix que celles que j'ai indiqué ? Cela vous intéresse-t-il par exemple de pouvoir comparer le prix d'une pièce sur les différents magasins ? Cela m'aiderait à proposer à la communauté un outil complet qui faciliterait les démarches.
Merci d'avoir lu ce pavé, et merci d'avance pour vos réponses.
Anio a écrit:Mais là, tu fais face à un impondérable. Les frais de port, c'est strictement impossible à prendre en compte. Ou alors, de façon forfaitaire, un peu à l'arrache. J'ai eu des shops US qui chargent 3$ pour une enveloppe à bulles tandis que dans un autre Etat US, le mec, il m'a collé 9$ dans la tronche pour 40 grammes (j'ai reçu, enveloppe affranchie à 6$...). Tu n'arriveras pas à faire un système qui arrive à gérer les fdp. Quand bien même tu y arriverais (et tu serais un génie), il te faudrait considérer si le shop US rajoute des frais paypal sur la transaction ou bien les supporte, ou encore s'il charge un extra fee si le prix par lot est inférieur à la norme définie par le shop, ou encore si la commande totale a plus que X lots (handling fee).
Ton application est sûrement intéressante à partir du moment où le prix Lego est inférieur au prix Bricklink dans la meilleure boutique. Dans ce cas, pas de soucis, pas de question à se poser : avec des frais de ports dérisoires, tu commandes des pièces détachées Lego (prix standard du port : 1,80€).
Mais sur Bricklink, il y a trop de paramètres différents et surtout à la discrétion du vendeur pour que tu puisses pondre un algorithme qui fasse la totalité de la démarche. Tu ne peux pas gérer : - les frais de port - les frais paypal - les frais de préparation de commande - les frais d'emballage - si t'as pas de bol, la douane - le fait que faire une commande en Chine, c'est plus risqué (perso, avec 300 commandes à mon actif, j'ai toujours évité certains pays continents) - le fait que faire 2 commandes, c'est plus d'emmerde que de faire une commande.
Ma méthode : 1) je remplis ma Wanted List manuellement, et je repère les références critiques (rares) dans celle-ci 2) je me débrouille pour aller en priorité dans les shops qui ont ces références en priorité (idéalement, j'essaie de trouver un shop qui a plusieurs références rares) 3) ensuite, j'écrème le volume restant, avec le By Shop et éventuellement Lego.
Sincèrement, quand tu claques 400€ de commandes Bricklink, faire des calculs d’apothicaire pour économiser 20€, à mon avis, c'est pas rentable. Et payer un peu plus cher pour être sûr de s'éviter des emmerdes, je peux te le garantir, ça vaut largement 20€.
J'essaie de faire le moins de commandes possible (quitte à payer les pièces plus cher) un peu pour économiser sur les frais de port, mais presque encore davantage pour économiser sur les emmerdes... Plus de commandes, c'est mathématiquement plus d'emmerdes.
Ma conclusion : tu ne peux pas programmer un algo qui se substitue au libre arbitre et bon sens de l'acheteur, et encore moins au bon vouloir du vendeur.
Anio a écrit:A ce moment là, il pourrait être intéressant de faire un algo qui ressort les refs critiques.
Refs critiques en terme de disponibilités : - dans moins de 10 shops ? - entre 10 et 20 shops ? - 20 et 50 - 75 et 100 (au delà de 100, c'est plus trop critique)
Refs critiques en terme de prix : - prix unitaire entre 2 et 5€ - prix unitaire supérieur à 5€
Egalement, et c'est un point clé que Bricklink ne gère pas :
Admettons un Wanted List avec 4 refs A (rare) B (rare) C (pas trop rare) D (pas trop rare), avec les qté respectives 2, 4, 8, 8.
Aucun shop n'a A ET B. On part sur 2 commandes, déjà pour ces 2 refs. On a donc écrémé ces 2 refs. Mais admettons que ces 2 shops ont tous les 2 les qtés 7 et 7 pour les refs C et D. Et bien Bricklink ne ressort pas automatiquement ces 2 lots avec 7 (où on aurait par exemple pu faire 7 et 1, ou 1 et 7), alors que les pièces sont effectivement dispo dans les shops. En effet, le lot dans le shop ne répond pas aux conditions du lot dans la wanted list.
Alors là, on fait la gymnastique en moins de 10 secondes, car on a 2 shops, et 2 refs restantes que l'on identifie bien.
Mais quand on a 170 références, admettons qu'on en écoule 30, pas évident d'aller checker les 140 restantes pour vérifier si, à défaut de gratter d'autres références, on peut gratter quelques quantités sur une référence (et permettre au final de faire des commandes en moins, grâce à une même ref répartie dans plusieurs shops)
Autrement dit : si on checke pas tout manuellement, il y a forcément des fois où on multiplie les commandes, pas parce que le shop n'a pas les pièces, mais parce qu'on ne voit pas qu'il les a.
Et là, il y a un truc à faire.
Mais la donne est complexe...
wardead a écrit:Je plussoie le monsieur, gérer les frais de port, c est la loose  A mon avis, si on veut gérer le port, il faut approximer (argh!) le modèle, en disant que pour nous en France, y a trois catégories de shop : * les frenchies (pas de douanes, frais de port normalement light) * les européens (pas de douanes, un peu plus de port) * le reste du monde (risque de douanes, port plus cher) en mettant une pondération sur les résultats genre par exemple un shop euro sera en moyenne 10% plus cher qu'un français et un shop monde sera 20% plus cher qu'un français. Sinon il y a aussi la méthode de contournement, en partant de ce qu'a dit anio a savoir "moins de commandes c est mieux", ca doit indirectement limiter les frais aussi de ne pas multiplier les commandes. Plus j'y reflechis, plus je me dit qu'en utilisant bricklink avec une wanted list avec les quantités a 1, on doit récupérer suffisamment d'info pour faire un calcul sympa @Anio, tu pense que tu pourrais formuler plus précisément la notion de "critique" c est d'abord une question de prix ou une question de rareté (c est pas forcément lié) A mon avis faut faire un programme par itération : * input de la liste de pieces qu'on cherche avec quantité * input des parametres de depart (plutot optimiser le prix ou optimiser le nombre de commandes, privilégier les francais ou pas...) * recup des datas via BL (wanted list + recherche par shop + recherche par piece) * calcul d'une solution * interaction avec l'utilisateur pour "optimisation intuitive" ou plutot "elimination des conneries les plus fragrantes" pour évaluer "ce qui fait le prix" dans la commande (pieces cheres, donc rares) * recalcul d'une solution avec les opti et eventuellement on recommence les deux dernieres etapes z'en pensez quoi?
Anio a écrit:Perso, je ne mettrai pas de pondération, pas de port forfaitaire, et encore moins un truc foireux pour les éventuels frais paypal ou d'emballage. Je classerai les résultats selon 4 groupes : - France - Europe - USA - Reste du monde (le canada étant dans le reste du monde ; par expérience, le port est plus élevé et le temps de livraison bcp plus long) On peut même penser à des regroupements selon le pays de résidence de l'utilisateur. Pour un américain : - USA - Canada - Europe - Reste du monde. Après, c'est à l'acheteur de jauger, éventuellement en regardant les conditions de chaque shop, et d'acheter en toute connaissance de cause. wardead a écrit:@Anio, tu pense que tu pourrais formuler plus précisément la notion de "critique" c est d'abord une question de prix ou une question de rareté
Alors là aussi, pas évident de répondre. Ca dépend des objectifs de l'acheteur, du but poursuivi. Par exemple, le corner café coute très cher, et un acheteur veut comme on dit, le "bricklinker". Il y a la personne qui va vouloir refaire le set à la pièce (et variante de pièce) près, peu importe le prix. Ca, c'est le collectionneur pur et dur. De l'autre côté, il va y avoir une personne qui substituera volontairement une pièces à une autre pour peu que la modif ne soit pas (trop) visible. Ca dépend aussi du type de MOC. Un MOC City ou Espace, on peut facilement changer des couleurs sur le MOC sans que ça pose problème. "Les pièces bleu clair sont trop rares et ça fait chier pour les commandes / trop chère et j'estime que c'est abusé pour mon petit camion/vaisseau ? Très bien, je le fais en vert lime." Sur un MOC comme un UCS Star Wars, tu fais pas de chichi : tu changes pas la couleur sur un MOC Star Wars, c'est pas la fête. Et, logiquement je dirai, tu ne fais pas une substitution bancale parce qu'il y a 6 pièces à 4€ l'une à acheter. De mon point de vue, je placerai la criticité sur la disponibilité.Ton algo fais la gymnastique et tout et tout, et ça ressort comment avoir au mieux sa liste de pièces (un tableau : 1 commande ici avec ça ça ça et ça, et une commande là-bas avec ça ça et ça). Et avec ces résultats, si l'acheteur décèle une ref pas raisonnable, il change son MOC, il MàJ sa wanted list en conséquence, et il refait la manip : l'algo lui dira comment avoir sa nouvelle WL à 100% et de manière optimisée, avec la référence problématique supprimée/substituée. On y revient : l'acheteur reste le maître à bord (quand c'est pas le vendeur...). Et il faut admettre que bien des paramètres découlent aussi de sa manière de procéder. L'algo peut dire comment parvenir au mieux à ce que l'acheteur à défini, mais il ne peut pas définir ce à quoi l'acheteur doit parvenir.
Tipiak a écrit:Voici une 1ère ébauche. Le fichier est généré tel quel, sauf pour la mise en page  La colonne "Critique" est basé sur le prix unitaire (< 1; entre 1 et 3; > 3), mais je me demande si ça ne serait pas plus pertinent de se baser sur le prix total pour la pièce. La colonne "Dispo" se basera sur le nombre de store BL proposant la pièce en qté suffisante pour le set. Pour l'instant il n'y a aucun regroupement pour les stores BL, mais il est prévu de faire un autre fichier avec pour chaque store BL les pièces à commander et les totaux par store. La recherche BL se fait que sur les stores qui ont au moins la quantité requises de pièces pour le set. Mais d'après vos retours, il faudrait plutôt faire des combinaisons entre stores pour essayer d'arriver au prix le moins cher. J'étudie comment mettre ça en place. Mes essais se font sur le Modular Green Grocer
Avis aux programmeurs ou utilisateurs de Bricklink, vos commentaires sont les bienvenus ! 
|