Skip to main content
Glama

Fulfiller — print catalogue & quotes

Créer un panier

create_cart

Crée un panier anonyme, éventuellement avec ses premières lignes (cotées à l’ajout, prix FIGÉ). Un panier n’est PAS une commande : rien n’est engagé, et le total est HT — hors TVA et hors port. Chaque ligne désigne le produit par son productId (rendu par search_products) ; le sku est facultatif. unitPriceHt et lineTotalHt sont promotion déduite. Renvoie le panier complet : n’appelez pas get_cart juste après.

Input Schema

NameRequiredDescriptionDefault
linesNoLignes initiales (0 à 5). Un panier vide est légitime.
idempotencyKeyNoUUID optionnel. Rejouer le MÊME appel avec la même clé renvoie le panier déjà créé au lieu d’en créer un second : à utiliser si vous devez réessayer après une erreur.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • changedInput schema / properties / lines / items / properties / productId / description
      Previous value: -"Identifiant produit (`zeloomProductId`) rendu par search_products."New value: +"Identifiant produit rendu par search_products (alias : `zeloomProductId`)."
    • changedInput schema / properties / lines / items / properties / selection / description
      Previous value: -"Sélection d’options. Une option non précisée prend la valeur de la préselection par défaut du produit (`preselections` de get_product_configuration), comme sur le site ; `{\"options\": []}` cote donc la configuration par défaut. La résolution est TOLÉRANTE : code ou libellé, sans souci de casse ni d’accents ; une valeur partielle est retenue si une SEULE valeur la contient (« vinyle » → « Impression sur vinyle adhésif contrecollé », « A5 » → « 14,8 x 21 cm (A5) »), ou par ses mesures (« 148x210 mm ») ; parmi plusieurs, la plus proche est retenue et signalée. Ce qui n’est pas retenu tel quel est signalé dans `alerts` et dans `summary`."New value: +"Sélection d’options : même forme et mêmes règles que `selection` de quote_product (codes ou libellés, défauts du produit, `preset`, tailles)."
    • removedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / option / description
      Removed value: -"Code de l’option, tel que rendu par get_product_configuration. Un libellé (« Délai de livraison ») est rattaché à la seule option qui lui correspond, et c’est signalé."
    • removedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / quantity / description
      Removed value: -"Quantité demandée (type QUANTITY). Hors des paliers du produit, l’alerte donne les quantités possibles et la plus proche."
    • removedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / size / description
      Removed value: -"Gabarit de taille (option de type SIZE). Gabarit FIXE (bornes min = max) : le code suffit, ses dimensions sont complétées, et des dimensions données dans un sens ou dans l’autre (60×80 ou 80×60) désignent le même gabarit. Gabarit à SAISIE LIBRE (`allowsCustomInput`) : width et height sont requises, dans l’unité de l’option (`unit`, souvent cm : une bâche de 3 m × 1 m s’écrit width 300, height 100) et dans les bornes du gabarit."
    • removedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / size / properties / code / description
      Removed value: -"Code ou libellé du gabarit, ou ses mesures (« 60x80 », « 148x210 mm ») : elles désignent le gabarit fixe de ces dimensions, sinon le gabarit sur mesure."
    • removedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / type / description
      Removed value: -"Seuls ces 4 types sont SÉLECTIONNABLES. Un autre type déclaré par la configuration (LIST_OF_RANGES, QUANTITY_BY_VALUE) est décrit mais non sélectionnable : le défaut du produit s’applique."
    • removedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / value / description
      Removed value: -"Code ou libellé de la valeur retenue (types LIST_OF_VALUES et DELIVERY_TIME)."
    • addedInput schema / properties / lines / items / properties / selection / properties / preset
      Added value: +{
      +  "maxLength": 128,
      +  "type": "string"
      +}
    • changedInput schema / properties / lines / items / properties / sku / description
      Previous value: -"SKU exact rendu par search_products. REQUIS : il n’existe pas de résolution inverse productId → sku."New value: +"SKU exact rendu par search_products. FACULTATIF : absent, il est déduit du productId (PRODUCT_AMBIGUOUS si plusieurs fiches vendent ce produit : le message cite leurs SKU)."
    • changedInput schema / properties / lines / items / required
      Previous value: -[
      -  "productId",
      -  "sku",
      -  "selection"
      -]New value: +[
      +  "productId",
      +  "selection"
      +]
  2. Changed6 schema fields changed
    • changedInput schema / properties / lines / items / properties / selection / description
      Previous value: -"Sélection d’options. `{\"options\": []}` est valide et cote la configuration par défaut du produit. La résolution est TOLÉRANTE : un code approchant est résolu, et l’écart est signalé dans `alerts`."New value: +"Sélection d’options. Une option non précisée prend la valeur de la préselection par défaut du produit (`preselections` de get_product_configuration), comme sur le site ; `{\"options\": []}` cote donc la configuration par défaut. La résolution est TOLÉRANTE : code ou libellé, sans souci de casse ni d’accents ; une valeur partielle est retenue si une SEULE valeur la contient (« vinyle » → « Impression sur vinyle adhésif contrecollé », « A5 » → « 14,8 x 21 cm (A5) »), ou par ses mesures (« 148x210 mm ») ; parmi plusieurs, la plus proche est retenue et signalée. Ce qui n’est pas retenu tel quel est signalé dans `alerts` et dans `summary`."
    • changedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / option / description
      Previous value: -"Code de l’option, tel que rendu par get_product_configuration."New value: +"Code de l’option, tel que rendu par get_product_configuration. Un libellé (« Délai de livraison ») est rattaché à la seule option qui lui correspond, et c’est signalé."
    • changedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / quantity / description
      Previous value: -"Quantité demandée (type QUANTITY)."New value: +"Quantité demandée (type QUANTITY). Hors des paliers du produit, l’alerte donne les quantités possibles et la plus proche."
    • changedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / size / description
      Previous value: -"Gabarit et dimensions personnalisées (option de type SIZE)."New value: +"Gabarit de taille (option de type SIZE). Gabarit FIXE (bornes min = max) : le code suffit, ses dimensions sont complétées, et des dimensions données dans un sens ou dans l’autre (60×80 ou 80×60) désignent le même gabarit. Gabarit à SAISIE LIBRE (`allowsCustomInput`) : width et height sont requises, dans l’unité de l’option (`unit`, souvent cm : une bâche de 3 m × 1 m s’écrit width 300, height 100) et dans les bornes du gabarit."
    • changedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / size / properties / code / description
      Previous value: -"Code du gabarit de taille."New value: +"Code ou libellé du gabarit, ou ses mesures (« 60x80 », « 148x210 mm ») : elles désignent le gabarit fixe de ces dimensions, sinon le gabarit sur mesure."
    • changedInput schema / properties / lines / items / properties / selection / properties / options / items / properties / value / description
      Previous value: -"Code de la valeur retenue (types LIST_OF_VALUES et DELIVERY_TIME)."New value: +"Code ou libellé de la valeur retenue (types LIST_OF_VALUES et DELIVERY_TIME)."
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare it is a non-read, non-destructive, closed-world write. The description adds substantial behavior the annotations cannot convey: prices are frozen at add time, promotions already deducted, totals are HT excluding VAT and shipping, and nothing is committed. The return-shape note ('renvoie le panier complet') closes the loop.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, then the critical caveats (not an order, HT pricing, frozen price), then a routing instruction. Dense but nearly every clause carries needed information; only the pricing-field mention slights toward restating output fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, and the description compensates by stating that the complete cart is returned so no follow-up get_cart is needed. Idempotent retry behavior is covered by the schema's idempotencyKey description. Adequate for a mutation tool with optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested properties are already documented in rich detail (sku optionality, PRODUCT_AMBIGUOUS, quantity semantics, selection shape). The description mostly restates provenance (productId from search_products, sku facultatif) rather than adding new semantics, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Crée un panier anonyme') plus optional initial lines, and immediately disambiguates the concept from an order ('Un panier n'est PAS une commande'). An agent can distinguish this from get_cart/update_cart/delete_cart without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete when-not ('n'appelez pas get_cart juste après'), points to the sibling that supplies productId (search_products), and hints at re-quoting via quote_product when volume changes. It does not explicitly say when to prefer this over update_cart, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources