Aller au contenu

Créer des commandes

POST /orders

Crée une ou plusieurs commandes de préparation. Chaque commande reçoit un identifiant unique (orderUniqueID) qui ne peut pas être réutilisé.

ParamètreTypeDéfautDescription
validationOnlyboolfalseSi true, valide sans persister
ChampTypeMaxDescription
activityCodestring3Code activité
activityNamestring30Libellé de l’activité
orderUniqueIDstring20Identifiant unique de la commande. Format : ^(?!.*\s)[A-Z0-9_\-.#/\\]+$ (pas d’espaces)
customerOrderPlacementDateDateTimeDate de passation de la commande client
ChampTypeMaxRequisDescription
subActivityCodestring3NonCode sous-activité
operationTypestring1NonType d’opération
customerOrderIDstring30NonN° de commande client
prepOrderGroupIDstring14NonGroupe de préparation
commandChannelDescriptionstring50NonCanal de commande
commandTypestring50NonType de commande
expectedPrepDateDateTimeNonDate de préparation souhaitée
dOManagedCustomerNumberstring50ConditionnelN° client géré. Obligatoire si config.CheckCustomer est activé
ChampTypeMaxDescription
deliveryAddressLastnamestring30Nom du destinataire
deliveryAddressAddress1string35Adresse ligne 1
deliveryAddressPostalCodestring20Code postal
deliveryAddressCitystring50Ville
deliveryAddressCountrystring2Code pays ISO 3166-1 alpha-2
deliveryAddressPhonestring20Téléphone
deliveryAddressEmailstring100Email
ChampTypeMaxDescription
deliveryAddressTitlestring5Civilité
deliveryAddressFirstnamestring30Prénom
deliveryAddressCompanystring50Société
deliveryAddressAddress2string35Adresse ligne 2
deliveryAddressAddress3string35Adresse ligne 3
deliveryAddressFaxstring20Fax
deliveryAddressNameOptionstring50Nom complémentaire
deliveryAddressCommentstring200Commentaire livraison

Mêmes champs que l’adresse de livraison, préfixés par billingAddress : billingAddressTitle, billingAddressLastname, billingAddressFirstname, billingAddressCompany, billingAddressAddress1 à 3, billingAddressPostalCode, billingAddressCity, billingAddressCountry, billingAddressPhone, billingAddressFax, billingAddressEmail

Tous optionnels.

ChampTypeMaxRequisDescription
transportServiceCodestring50OuiCode service transport
transportCodestring50NonCode transport
deliveryPickupPointIDstring25NonID du point relais
pickupPointCountryCodestring2NonCode pays du point relais
carrierImposedboolNonTransporteur imposé
ChampTypeRequisDescription
totalInvoiceHTintConditionnelTotal HT en centimes. Obligatoire hors UE
totalInvoiceTTCintNonTotal TTC en centimes
shippingCostintConditionnelFrais de port en centimes. Obligatoire hors UE
paymentCurrencystring (30)ConditionnelDevise ISO 4217 (ex: "EUR", "USD"). Obligatoire hors UE
discountAmountintNonMontant remise en centimes
discountRateintNonTaux remise (ex: 10 pour 10%)
customerInvoiceNumberstring (30)NonN° facture (défaut : orderUniqueID)
ChampTypeRequisDescription
saturdayDeliveryRequiredboolNonLivraison samedi
recipientNotificationboolNonNotification destinataire
counterReimbursementRequestedboolNonContre-remboursement
counterReimbursementAmountintNonMontant CR en centimes
ChampTypeMaxDescription
deliveryCommentstring200Commentaire livraison
shippingLabelMessagestring100Message étiquette
specificGiftMessagestring200Message cadeau
preparationInstructionsstring200Instructions de préparation
ChampTypeMaxDescription
customField1, customField2string200Texte libre
customField3 à customField11string256Texte libre
customField12 à customField15DateTimeDates

ChampTypeMaxRequisDescription
orderLineIDstring35OuiIdentifiant de la ligne (doit être > “0”)
articleReferencestring17OuiRéférence article. Doit exister dans le référentiel (erreur 211)
quantityToPrepareintOuiQuantité à préparer. Doit être > 0 (erreur 202)
ownerStockCodestring3NonCode propriétaire stock
unitPriceHTintConditionnelPrix unitaire HT en centimes. Obligatoire hors UE
unitPriceTTCintNonPrix unitaire TTC en centimes
articleVATRateintNonTaux TVA (ex: 20 pour 20%)
articleVATAmountintNonMontant TVA en centimes
articleOriginCountrystring15ConditionnelPays d’origine. Obligatoire hors UE
articleCN23CustomsCodestring15ConditionnelCode douane CN23. Obligatoire hors UE
articleNatureCN23string35NonNature CN23
attachedLotNumberstring35NonN° de lot imposé
articleHasSerialNumberboolNonArticle avec n° de série
articleHasDLUOboolNonArticle avec DLUO
articleHasLotNumberboolNonArticle avec n° de lot
allowPackagingSubstitutionboolNonSubstitution d’emballage autorisée. Défaut : false
gradeCodestring3NonCode qualité. Défaut : "STD"
articlePreparationCommentstring100NonCommentaire préparation
articleCommentstring200NonCommentaire article
articleRequiresIngredientLabelboolNonÉtiquette ingrédients requise
customField1, customField2intNonChamps personnalisés numériques
customField3, customField4DateTimeNonChamps personnalisés date
customField5 à customField11string256NonChamps personnalisés texte
customField12string200NonChamp personnalisé texte

ChampTypeMaxRequisDescription
clientOrderIDstring30OuiIdentifiant de la sous-commande
clientOrderPlacementDateDateTimeNonDate de passation
subOrderHeaderstring30NonEn-tête
subOrderClientMessagestring200NonMessage client
subOrderBreakCriterionstring5NonCritère de rupture
orderEntriesOrderEntry[]OuiLignes (au moins une)
customField1, customField2intNonChamps personnalisés numériques
customField3, customField4DateTimeNonChamps personnalisés date
customField5 à customField11string256NonChamps personnalisés texte
customField12string200NonChamp personnalisé texte
  • activityCode, activityName, orderUniqueID, customerOrderPlacementDate
  • Adresse livraison : deliveryAddressLastname, deliveryAddressAddress1, deliveryAddressPostalCode, deliveryAddressCity, deliveryAddressCountry, deliveryAddressPhone, deliveryAddressEmail
  • transportServiceCode
  • Au moins une ligne ou une sous-commande
  • orderUniqueID : ^(?!.*\s)[A-Z0-9_\-.#/\\]+$ — pas d’espaces
  • deliveryAddressCountry : ISO 3166-1 alpha-2
  • orderEntries OU orderSubOrders, jamais les deux (erreur 103)
  • Chaque sous-commande doit avoir au moins une ligne (erreur 213)
  • quantityToPrepare > 0 (erreur 202)
  • articleReference doit exister dans le référentiel (erreur 211)
  • orderUniqueID ne doit pas déjà exister en base (erreur 203)
  • Pas de doublons d’orderUniqueID dans un même envoi (erreur 205)
  • orderLineID doit être > "0" (erreur 104)

Pays UE : FR, MC, DE, AT, BE, BG, CY, HR, DK, ES, EE, FI, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, SE, CZ

Si le pays de livraison n’est pas dans cette liste, deviennent obligatoires :

  • totalInvoiceHT, shippingCost, paymentCurrency
  • Sur chaque ligne : articleOriginCountry, unitPriceHT, articleCN23CustomsCode
  • Validation code postal / ville via API data.geopf.fr/geocodage/ (Géoplateforme IGN) (erreur 802)
  • Monaco : utiliser country = "FR", postalCode = "98000" (pas "MC")
  • Validation et reformatage E.164 pour les pays : FR, ES, BE, DE, LU, PT, AT, UK, IT, GF, MF, MQ, YT, NL, IE, MC, CH, PL (erreur 207)
CodeDescription
103Présence simultanée de orderEntries et orderSubOrders
104Format orderUniqueID invalide (regex) ou orderLineID"0"
201Champ obligatoire manquant
202Valeur incorrecte (ex: quantityToPrepare ≤ 0, ForcedPrioDateMinNumberOfDays > 900)
203orderUniqueID déjà existant en base
205orderUniqueID en doublon dans le même envoi
206Activité non autorisée
207Numéro de téléphone invalide
211Article inconnu dans le référentiel
213Commande ou sous-commande sans ligne
216Client inconnu dans le référentiel (si config.CheckCustomer activé)
302Code pays de destination invalide
802Adresse française non reconnue
[
{
"activityCode": "001",
"activityName": "Mon activité",
"orderUniqueID": "CMD-2024-001",
"customerOrderID": "WEB-12345",
"customerOrderPlacementDate": "2024-06-15T10:30:00Z",
"transportServiceCode": "COLISSIMO",
"deliveryAddressTitle": "M.",
"deliveryAddressLastname": "Dupont",
"deliveryAddressFirstname": "Jean",
"deliveryAddressAddress1": "15 rue de la Paix",
"deliveryAddressPostalCode": "75002",
"deliveryAddressCity": "Paris",
"deliveryAddressCountry": "FR",
"deliveryAddressPhone": "0612345678",
"deliveryAddressEmail": "jean.dupont@email.com",
"totalInvoiceTTC": 5990,
"shippingCost": 590,
"orderEntries": [
{
"orderLineID": "1",
"articleReference": "ART-001",
"quantityToPrepare": 2,
"unitPriceHT": 2200,
"unitPriceTTC": 2640,
"articleVATRate": 20
},
{
"orderLineID": "2",
"articleReference": "ART-002",
"quantityToPrepare": 1,
"unitPriceHT": 710,
"unitPriceTTC": 852,
"articleVATRate": 20
}
]
}
]
Fenêtre de terminal
curl -X POST "https://api.ezyconnect.com/orders" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '[{"activityCode":"001","activityName":"Mon activité","orderUniqueID":"CMD-2024-001","customerOrderPlacementDate":"2024-06-15T10:30:00Z","transportServiceCode":"COLISSIMO","deliveryAddressLastname":"Dupont","deliveryAddressAddress1":"15 rue de la Paix","deliveryAddressPostalCode":"75002","deliveryAddressCity":"Paris","deliveryAddressCountry":"FR","deliveryAddressPhone":"0612345678","deliveryAddressEmail":"jean.dupont@email.com","orderEntries":[{"orderLineID":"1","articleReference":"ART-001","quantityToPrepare":2}]}]'
{
"status": 0,
"operationId": "e5f6a7b8-9012-cdef-3456-789012345678",
"errors": {},
"passed": ["CMD-2024-001"]
}