Devis d’impression 3D : prix, fabricants et validation
Afficher les prix et laisser FRED ou votre client choisir le fabricant.
Publié par FRED · Mis à jour le
Choisir la source du modèle
- Nouveau fichier :
POST /v1/storefront/quotes/upload, en multipart. - Fichier déjà présent dans le compte :
POST /v1/storefront/quotesavecfile_id. - Produit du dashboard : le même appel JSON avec
product_id.
{
"product_id": "prod_abc123",
"quantity": 2,
"color": "black",
"destination": { "country": "FR", "postal_code": "34000" }
}Envoyez la clé API et une Idempotency-Key sur chaque création. Sans code postal,
les prix de production sont comparables mais aucun total livré n’est présenté.
Options facultatives
| Champ | Défaut | Utilisation |
|---|---|---|
quantity | 1 | De 1 à 50 exemplaires identiques |
material | PLA | Identifiant exact de GET /v1/materials, par exemple bambu-pla-matte ; PLA reste l’alias historique |
color | auto | Référence d’une couleur de cette matière ; auto propose une correspondance avec les couleurs du fichier |
height_mm | Taille originale | Redimensionnement proportionnel, de 5 à 350 mm ; peut demander une validation |
destination.country | FR | Pays de livraison, code à deux lettres |
destination.postal_code | Absent | Nécessaire pour le prix livré |
product_variant_id | Variante compatible par défaut | Uniquement pour un produit enregistré |
personalization | {} | Champs définis sur le produit enregistré |
Pour l’envoi multipart, country et postal_code sont des champs de formulaire
séparés ; les autres options portent le même nom. Pour plusieurs modèles différents,
demandez un devis par modèle. Cette interface couvre un objet, une configuration et
une destination à la fois.
Matières et couleurs exactes
Appelez GET /v1/materials avec votre clé API (quotes:read). La réponse contient
materials, avec pour chaque gamme son id, son name, son role et ses colors.
Chaque couleur fournit id, code, label, hex et hexes (plusieurs teintes pour
un filament multicolore). Utilisez uniquement les gammes role: "model" comme
matière principale ; les autres sont des filaments de support.
{
"file_id": "file_abc123",
"material": "bambu-pla-matte",
"color": "bambu-pla-matte:11101",
"quantity": 2,
"destination": { "country": "FR", "postal_code": "34000" }
}Une couleur PLA Basic ne peut pas être associée à PLA Matte. Les références sont
comparées au stock exact du fabricant et à sa grille de prix pour cette matière.
Le catalogue ne garantit pas qu’un fabricant ou un profil qualifié est disponible.
Sans offre compatible, le devis reste indisponible : aucun remplacement silencieux
par du PLA Basic. Avec color: "auto", une différence entre les couleurs du fichier
et les teintes proposées peut nécessiter la validation d’un aperçu.
Les anciens appels material: "PLA" avec color: "black" restent acceptés. Pour
une nouvelle intégration, utilisez les identifiants du catalogue et conservez
material et les colors de la réponse avec le devis.
Lire la réponse
Chaque entrée de options contient :
| Champ | À afficher ou utiliser |
|---|---|
id | L’option_id à conserver si vous choisissez ce fabricant |
supplier | Identifiant, nom, ville et pays du fabricant |
colors | Références ref et teintes hex du fichier de fabrication proposé |
price.production_cents | Fabrication et préparation de toute la quantité |
price.service_cents | Frais de service FRED |
price.shipping_cents | Transport pour le colis, ou null |
price.total_cents | Somme à payer, ou null tant que la livraison manque |
dispatch_hours | Délai prévu avant expédition, après paiement |
transit_hours | Transport prévu, ou null |
delivery_hours | Délai global prévu, ou null |
available | Cette option peut être sélectionnée maintenant |
reason | Motif d’indisponibilité éventuel |
expires_at | Fin de validité du prix |
estimate_source | slicer après un tranchage réussi |
indicative | Le prix ou les conditions nécessitent encore une confirmation |
estimation_notice | Explication à afficher avec le prix provisoire |
Pendant le premier tranchage, aucune option de prix provisoire n’est publiée.
Le visuel peut déjà être disponible, mais le prix et les mesures attendent un
tranchage réussi. Continuez à lire poll_url tant que le devis est en calcul.
Utilisez uniquement une option available: true pour commander, après les
éventuelles validations demandées.
Les délais sont des estimations, pas une réservation de capacité.
FRED classe les options selon sa politique de recommandation : délai, qualité, prix
et distance. recommended_option_id désigne la première option commandable.
Le fabricant le moins cher n’est donc pas forcément le recommandé.
Pour laisser FRED choisir à la commande, omettez option_id. Pour respecter le choix
fait sur votre site, transmettez-le avec quote_id. La disponibilité est vérifiée
à nouveau avant la création de la commande.
Attendre ou demander une validation
status du devis | Action de votre site |
|---|---|
processing | Lire poll_url toutes les deux secondes |
needs_destination | Demander le code postal et chiffrer la livraison |
ready | Présenter les options disponibles et permettre la commande |
action_required | Afficher l’aperçu et faire valider le modèle |
unavailable | Afficher issues, reason ou unavailable_suppliers ; ne pas proposer le paiement |
Obtenir rapidement un prix exact
Un devis boutique devient ready dès qu’une option exacte et disponible peut être
commandée. Il n’attend plus la fin du tranchage des profils alternatifs.
comparison_complete: false indique que d’autres fabricants sont encore en cours
de calcul : vous pouvez continuer à lire poll_url pour compléter la comparaison.
La recommandation peut évoluer ; transmettez option_id pour conserver le choix
présenté à votre client.
Les mesures de tranchage sont réutilisées pour le même compte, le même fichier préparé, le même profil, la même matière et la même palette. Une nouvelle quantité ou destination recalcule les tarifs sans relancer le tranchage de l’unité. Les tarifs et la disponibilité restent vérifiés à chaque nouveau devis.
Pour une boutique, demandez un devis pour chaque configuration commercialisée avant sa mise en vente, puis attendez la fin de la comparaison. Les demandes des clients peuvent ainsi réutiliser ces mesures. Une nouvelle géométrie, personnalisation, taille ou configuration machine peut nécessiter un premier tranchage : son prix exact en quelques secondes n’est pas garanti.
Si approval_required vaut true, affichez l’aperçu de l’option à votre utilisateur,
puis appelez POST /v1/preparations/{preparation_id}/approve avec
{"artifact_id":"artifact_abc123"} après sa validation explicite. Rechargez ensuite
le devis. Une validation ne remplace pas une qualification technique manquante.
Les URL d’aperçu nécessitent aussi votre authentification : servez-les via votre
serveur, sans exposer la clé API au navigateur.
Un changement de matière, quantité, taille, couleur ou modèle nécessite un nouveau devis. Le prix d’un devis existant reste figé ; un résultat expiré ne peut plus être commandé.