Informations disponibles dans le cadre du reçu de vente

  • Numéro de commande et détail des marchandises à débiter du stock de votre côté (créé par vous-même).
  • Etiquetage scanné pour élimination ultérieure.

Statuts auxquels il est possible d'envoyer un chèque de reprise

  • Le préparateur a récupéré la commande (avant de la remettre au coursier).
  • La commande a été annulée après que le préparateur l'a récupérée.
  • La commande a été collectée et remise au transporteur - Annulée ou Livrée, quel que soit le statut ultérieur.
  • La commande a été livrée ou annulée après avoir été remise au transporteur.

Configuration de l'envoi

Pour réussir la mise en place, il faut transmettre les données au gestionnaire:

  • URL de travail avec la terminaison /result-check
  • que nous utiliserons pour l'autorisation lors de la requête à l'adresse du premier point;
  • un ensemble de statuts pour lesquels nous voulons recevoir un contrôle de résultat.

Schéma

swagger: "2.0"
info:
  title: Result Check API
  description: Result Check API
  version: 1.0.0
schemes:
  - http
basePath: /
consumes:
  - application/json
produces:
  - application/json

paths:
  /result-check:
    post:
      operationId: PostResultCheck
      security:
        - Bearer: [ ]
      description: Envoi d'un chèque de résultat
      paramètres:
        - $ref: '#/parameters/ResultCheckRequest'
      réponses:
        200:
          description: Ok
        404:
          description: Erreur de validation
          schema:
            $ref: '#/definitions/Error'
        422:
          description: erreur de validation
          schéma: $ref: '#/definitions/Erreur'
        500:
          description: erreur de serveur
          schéma: $ref: '#/definitions/Error'

securityDefinitions:
  Bearer:
    description: 'Bearer <token here>'
    type: apiKey
    name: Autorisation
    in: header

paramètres:
  ResultCheckRequest:
    in: body
    name: ResultCheckRequest
    schema:
      type: objet
      properties:
        externalOrderId:
          description: identifiant de la commande dans le système du partenaire
          type: string
        status:
          description: statut de la commande
          type: string
          enum:
            - done
            - prêt
            - livrée
            - annulé
        positions:
          description: positions de l'ordre
          type: array
          éléments:
            $ref: "#/definitions/OrderPosition"
        totalPrice:
          description: prix total des articles sans remise
          type: string
        discountTotalPrice:
          description: Coût total des articles avec remises
          type: string
        deliveredDateTime:
          description: date et heure du passage de la commande à l'état "Livré".
          type: string
          format: date-time
        statusSetAt:
          description: date et heure auxquelles la commande passe au statut
          type: string
          format: date-time
        cancelledDateTime:
          description: date et heure auxquelles la commande passe au statut "Annulé"
          type: string
          format: date-time
        shopId:
          description: identifiant interne de la boutique dans le système du partenaire
          type: string
          x-nullable: false

Définitions:
  Position de la commande:
    type: objet
    propriétés:
      marques:
        description: tableau de marques numérisées
        type: array
        éléments:
          type: string
      productId:
        description: identifiant du produit
        type: string
      originalQuantity:
        description: quantité du produit commandé à l'origine. Pièces ou grammes
        type: integer
      quantity:
        description: quantité de produits dans la commande collectée. Pièces ou grammes
        type: entier
      prix:
        description: prix total des produits collectés, sans remise.
        type: string
      discountPrice:
        description: prix total des produits collectés avec prise en compte de la remise.
        type: string
      unitPrice:
        description: Prix par unité de marchandise sans tenir compte de la remise.
        type: string
      dicountUnitPrice:
        description: Prix par unité de produit avec remise
        type: string
  Erreur:
    description: Erreur.
    type: objet
    obligatoire:
      - message
    propriétés:
      message:
        description: message.
        type: string
        x-nullable: false
      code:
        description: code du message.
        type: integer
        x-nullable: false

Exemple de corps d'un chèque de retour

{
  "canceledDateTime": "0001-01-01T00:00:00.000Z",
  "deliveredDateTime": "2024-01-12T10:34:10.770Z",
  "discountTotalPrice": "69.41",
  "externalOrderId": "12-22-2201",
  "positions": [
    {
      "discountPrice": "37.41",
      "markings": [],
      "originalQuantity": 1000,
      "price": "412.11",
      "productId": "1111",
      "unitPrice": "393.23",
      "discountUnitPrice": "35.7",
      "quantity": 1048
    },
    {
      "discountPrice": "32",
      "markings": [],
      "originalQuantity": 1,
      "price": "32",
      "productId": "7574",
      "unitPrice": "32",
      "discountUnitPrice": "32",
      "quantity": 1
    }
  ],
  "shopId": "XX113",
  "status": "ready",
  "statusSetAt": "2024-01-12T10:34:10.770Z",
  "totalPrice": "444.11"
}

Spécificités du contenu du chèque

  • Une quantité nulle dans le ResultCheck signifie que l'article a été retiré de la commande par le préparateur.
  • Si seul discountPrice est présent, il s'agit d'un article nouvellement ajouté.

Prix de l'article

Dans le catalogue, il y a un prix d'article (unitPrice) et un prix réduit (discountUnitPrice). Parmi ceux-ci, prix et discountPrice sont pris en compte pour la vérification de la valeur résiduelle selon les règles suivantes:

  • pour les articles de poids:

    • prix = quantité / 1000 × prixunitaire ;
    • prix de remise = quantité / 1000 × prix unitaire de remise ;
  • pour les marchandises à la pièce:

    • prix = quantité × prix unitaire ;
    • prix de remise = quantité × prix unitaire de remise ;
    • canceledDateTime et deliveredDateTime - les champs seront remplis avec la valeur 0001-01-01T00:00:00.000Z jusqu'à ce que la commande soit livrée ou annulée.