Guide de développement de boutiques personnalisées

Comment créer une intégration de boutique personnalisée pour ShipStation, des définitions de champs XML et des exemples de requête et de réponse XML attendues.

L'option Boutique personnalisée dans ShipStation permet à un développeur de créer une connexion personnalisée pour une source de commande qui n'a pas d'intégration prédéfinie avec ShipStation.

Une connexion à une boutique personnalisée vous permet d'importer des commandes dans ShipStation en un seul clic et permet à ShipStation d'envoyer automatiquement le statut de l'expédition et les informations de suivi à votre panier ou à votre place du marché une fois l'étiquette créée.

Nécessite des compétences avancées en matière de développement

Veuillez noter que la boutique personnalisée nécessite des compétences de développement avancées pour être configurée. De nombreux clients ShipStation possédant ces compétences ont utilisé cette documentation pour intégrer leurs boutiques personnalisées du début à la fin.

La prise en charge de ShipStation pour les magasins personnalisés est limitée, mais si vous rencontrez des erreurs au cours du processus de configuration, notre équipe d’assistance peut fournir des informations supplémentaires afin que vous ou votre développeur puissiez prendre des mesures correctives.

Commencer

Fonctionnement de la boutique personnalisée

Pour l'intégrer à la boutique personnalisée, vous devez présenter un point de terminaison Web qui renvoie le XML selon le format XML dans ce guide.

Le point de terminaison Web sera utilisé pour traiter deux requêtes majeures :

  • GET : permet à ShipStation de récupérer les informations relatives aux commandes depuis votre boutique personnalisée, notamment l'adresse du destinataire, les produits, les clients, etc. 

  • POST : permet à ShipStation de renvoyer les informations d'expédition à la boutique lorsqu'une commande est expédiée, y compris le mode de livraison, le statut de l'expédition, le numéro de suivi, etc.

Lorsque votre point de terminaison Web est prêt, vous pouvez ensuite connecter ShipStation à votre boutique via l'option de connexion à la boutique personnalisée. Une fois connecté, vous pouvez ensuite importer des commandes et renvoyer les détails de l’expédition.

Authentification

ShipStation utilise l'authentification HTTP de base lors de l'appel de votre point de terminaison Web. Utilisez une en-tête d'authentification de base pour transmettre les informations d'identification.

Créer votre point de terminaison Web

Pour permettre à ShipStation d'accéder à votre source de commande aux données GET et POST, vous devez créer votre point de terminaison de boutique personnalisé aux spécifications définies dans ce guide.

Appel GET

ShipStation fera un appel API GET pour extraire les informations de commande de la boutique connectée. 

ShipStation demandera les informations de commande au point de terminaison Web que vous exposez. Il doit afficher un code XML conforme aux spécifications définies dans les sections suivantes.

URL du point de terminaison GET

ShipStation utilisera le format d'URL suivant lors de la requête d'informations de commande à partir du point de terminaison Web que vous créez :

[Your Web Endpoint]?action=export&start_date=[Start Date]&end_date=[End Date]&page=1 [Your Web Endpoint]?action=export&start_date=[Start Date]&end_date=[End Date]&page=1

Paramètres d'URL d'appel GET

Paramètres d'URL

Description

Action

Cette valeur sera toujours « exportée » lorsque ShipStation demandera des informations sur la commande.

date_de_début

La date de début en heure UTC. Format : MM/jj/aaaa HH:mm (notation de 24 heures).

Par exemple : 03/23/2012 21:09

date_de_fin

La date de fin en heure UTC. Même format que la date_de_début.

Votre page doit renvoyer des données pour toute commande modifiée entre la date de début et la date de fin, quel que soit le statut de la commande. Les données de commande doivent être renvoyées au format XML, comme indiqué dans l'exemple suivant. Tous les champs de texte libre doivent être placés dans une section CDATA pour éviter toute erreur d'analyse.

Une section CDATA commence par "<![CDATA[" et se termine par "]]>".

Pagination

Pour les magasins avec des centaines ou des milliers de commandes par jour, nous vous recommandons de paginer vos résultats. Pour ce faire, choisissez le nombre maximal d'enregistrements à renvoyer avec chaque réponse. Incluez ensuite le nombre total de pages en tant qu'attribut dans l'élément Commandes au niveau de la barre.

Lors de la première requête vers votre point de terminaison, ShipStation ajoutera un paramètre URL appelé « page ». Par exemple :

https://www.yourstore.com/shipstationxml.php?action=export&start_date=01%2f23%2f2012+17%3a28&end_date=01%2f23%2f2012+17%3a33&page=1 

Si le nœud Commandes indique qu'il y a des pages supplémentaires, ShipStation demandera les pages suivantes jusqu'à ce que toutes les commandes aient été récupérées.

Exemple de corps de réponse GET

Vous trouverez ci-dessous un exemple du corps de réponse XML attendu par ShipStation lorsqu'un appel GET est passé pour obtenir des informations de commande. Vous trouverez des définitions détaillées des champs dans le Guide de référence de la boutique personnalisée.

<?xml version="1.0" encoding="utf-8"?>
<Orders pages="1">
  <Order>
    <OrderID><![CDATA[123456]]></OrderID>
    <OrderNumber><![CDATA[ABC123]]></OrderNumber>
    <OrderDate>10/18/2019 21:56 PM</OrderDate>
    <OrderStatus><![CDATA[paid]]></OrderStatus>
    <LastModified>12/8/2011 12:56 PM</LastModified>
    <ShippingMethod><![CDATA[USPSPriorityMail]]></ShippingMethod>
    <PaymentMethod><![CDATA[Credit Card]]></PaymentMethod>
    <CurrencyCode>EUR</CurrencyCode> 
    <OrderTotal>123.45</OrderTotal>
    <TaxAmount>0.00</TaxAmount>
    <ShippingAmount>4.50</ShippingAmount>
    <CustomerNotes><![CDATA[Please make sure it gets here by Dec. 22nd!]]></CustomerNotes>
    <InternalNotes><![CDATA[Ship by December 18th via Priority Mail.]]></InternalNotes>
    <Gift>false</Gift>
    <GiftMessage></GiftMessage>
    <CustomField1></CustomField1>
    <CustomField2></CustomField2>
    <CustomField3></CustomField3>
    <Customer>
      <CustomerCode><![CDATA[customer@mystore.com]]></CustomerCode>
      <BillTo>
        <Name><![CDATA[The President]]></Name>
        <Company><![CDATA[US Govt]]></Company>
        <Phone><![CDATA[512-555-5555]]></Phone>
        <Email><![CDATA[customer@mystore.com]]></Email>
      </BillTo>
      <ShipTo>
        <Name><![CDATA[The President]]></Name>
        <Company><![CDATA[US Govt]]></Company>
        <Address1><![CDATA[1600 Pennsylvania Ave]]></Address1>
        <Address2></Address2>
        <City><![CDATA[Washington]]></City>
        <State><![CDATA[DC]]></State>
        <PostalCode><![CDATA[20500]]></PostalCode>
        <Country><![CDATA[US]]></Country>
        <Phone><![CDATA[512-555-5555]]></Phone>
      </ShipTo>
    </Customer>
    <Items>
      <Item>
        <SKU><![CDATA[FD88821]]></SKU>
        <Name><![CDATA[My Product Name]]></Name>
        <ImageUrl><![CDATA[http://www.mystore.com/products/12345.jpg]]></ImageUrl>
        <Weight>8</Weight>
        <WeightUnits>Ounces</WeightUnits>
        <Quantity>2</Quantity>
        <UnitPrice>13.99</UnitPrice>
        <Location><![CDATA[A1-B2]]></Location>
        <Options>
          <Option>
            <Name><![CDATA[Size]]></Name>
            <Value><![CDATA[Large]]></Value>
            <Weight>10</Weight>
          </Option>
          <Option>
            <Name><![CDATA[Color]]></Name>
            <Value><![CDATA[Green]]></Value>
            <Weight>5</Weight>
          </Option>
        </Options>
      </Item>
      <Item>
        <SKU></SKU>
        <Name><![CDATA[$10 OFF]]></Name>
        <Quantity>1</Quantity>
        <UnitPrice>-10.00</UnitPrice>
        <Adjustment>true</Adjustment>
      </Item>
    </Items>
  </Order>
</Orders>

Appel POST

L'appel POST permet à ShipStation de reporter les informations d'expédition à votre source de commande lorsque vous expédiez des commandes.

ShipStation contactera le même point de terminaison Web lorsqu'une commande est expédiée afin que votre système puisse être informé que la commande a été expédiée. ShipStation exécute une action appelée ShipNotify lors de l'envoi de cette notification. Votre point de terminaison Web devrait être en mesure de déterminer quand ShipStation demande des informations de commande (action = exportation) et quand il envoie une notification d'expédition (action = shipnotify).

Votre point de terminaison Web doit renvoyer un code dde statut HTTP 200 (ou 2xx) pour indiquer que les informations de suivi ont bien été reçues.

URL du point de terminaison POST

ShipStation utilisera le format d'URL suivant lors de l'envoi des informations d'expédition et de suivi au point de terminaison Web que vous créez :

[Your Web Endpoint]?action=shipnotify&order_number=[Order Number]&carrier=[Carrier]&service=&tracking_number=[Tracking Number]

Par exemple :

https://www.yourstore.com/shipstationxml.php?action=shipnotify&order_number=ABC123&carrier=USPS&service=&tracking_number=9511343223432432432

Voici une description de chaque paramètre URL :

Paramètres

Description

Action

La valeur sera toujours « avis d'expédition » lors de l'envoi de notifications d'expédition.

numéro de commande

Il s'agit de l'identifiant unique de la commande.

Transporteur

Codes API pris en charge pour les transporteurs disponibles :

Transporteur

Code API

99minutos

n9minutes

Access Worldwide

access_worldwide

Airtanss

airtranss

Angel Last Mile

angel_last_mile

APC

APC

Aramex Australia

fastway_au

Aramex AU par ShipStation

aramex_au_walleted

Aramex Nouvelle-Zélande

fastway_nz

Asendia

Asendia

Australia Post

australia_post

Australia Post eParcel

australia_post

Australia Post MyPost Business

australia_post_mypost_business

B2C Europe

b2c_europe

Better Trucks

better_trucks

Postes Canada

canada_post

Postes Canada de ShipStation

canada_post_walleted

Canpar

Canpar

Canpar de ShipStation

canpar_walleted

Castle Parcels

castle_parcels

Chronopost

Chronopost

Colis Prive

colis_prive

Colissimo

Colissimo

Colissimo de ShipStation

colissimo_walleted

CouriersPlease

couriers_please

CouriersPlease de ShipStation

couriersplease_walleted

DAI

dai

Delivengo

delivengo

Deutsche post transfrontalier

deutsche_post_cross_border

Deutsche Post DHL

deutsche_post_dhl

DHL eCommerce

dhl_global_mail

DHL eCommerce v2

dhl_e-commerce

DHL Express

dhl_express

DHL Express Australie

dhl_express_australidhl_express_australia

DHL Express Canada

dhl_express_canada

DHL Express Allemagne depuis ShipStation

dhl_express_de_walleted

DHL Express UK

dhl_express_uk

Fret direct

direct_freight

Direct Link

direct_link

DPD

DPD

DPD France

dpd_france

DPD Allemagne

dpd_germany

DPD Allemagne depuis ShipStation

dpd_germany_walleted

DPD Irlande

dpd_ireland

DPD Local

apicode-dpd-local

DPD Pays-Bas

dpd_netherlands

DPD Roumanie

dpd_romania

DX

dx

ECMS Standard Express

ecms

Endicia

Endicia

Envialia

envialia

ePost global

rr_donnelley

Estafeta

Estafeta

Evri Worldwide

evri_international

Evri de ShipStation

Hermes

Evri Royaume-Uni

hermescorp

Express 1

express_1

Fairsenden

fairsenden

FAN

fan

Fastway AU

fastway_au

Fastway NZ

fastway_nz

FedEx

FedEx

FedEx Royaume-Uni

fedex_uk

FirstMile

FirstMile

FlashBox

FlashBox

GlobalPost

global_post

Globegistics

Globegistics

Glocally

glocally

GLS canada

gls_canada

GLS Allemagne

gls_germany

GLS Germany depuis ShipStation

gls_germany_walleted

Grupo ampm

grupo_ampm

Hermes

Hermes

Hermès Allemagne

hermes_germany

IMEX

IMEX

InPost

inpost

Intelcom CA

intelcom_ca

Livraison IntelliQuick

intelliquick_delivery

International Bridge

international_bridge

Landmark Global

landmark_global

Landmark Global

landmark_global_ca

LaserShip

LaserShip

Lettre Suivie (La Poste)

lettre_suivie

Loomis express

loomis_express

LSO

LSO

Mercado Libre Shipping

mercado_libre_shipping

Metroland Parcel Services (MPS)

metroland

Mondial Relay

mondial_relay

Nationex

Nationex

CourierPost de Nouvelle-Zélande

courierpost

Courriers néo-zélandais

new_zealand_couriers

Poste Nationale de Nouvelle-Zélande

courierpost

Poste internationale de Nouvelle-Zélande

new_zealand_post_international

Newgistics

Newgistics

Nova poshta

nova_poshta

NOW Couriers

NOW Couriers

OnTrac

OnTrac

Parcelforce

Parcelforce

Parcll

parcll

Post Haste

post_haste

Posta slovenije

posta_slovenije

Poste Italiane

poste_italiane

Purolator Canada

purolator_ca

Purolator de ShipStation

purolator_walleted

Quantium

quantium

Red je Pakketje

red_je_pakketje

Rivo

Rivo

Royal Mail

royal_mail

RR Donnelley

rr_donnelley

SEKO LTL de ShipStation

seko_ltl_walleted

SEKO Omni-Channel Logistics

SEKO

SEKO Omni-Channel Logistics CA

seko_ca

SEKO Omni-Channel Logistics US

seko_us

Sendle

Sendle

Seven Senders

seven_senders

Shippie

Shippie

StarTrack

star_track

Swyft

Swyft

The Delivery Group UK

the_delivery_group_uk

TNT Australie

tnt_australitnt_australia

TNT Royaume-Uni

tnt_uk

Toll IPEC

toll_ipec

Toll Priority

toll_priority

Tusk

tusk

UPS

UPS

UPS Mail Innovations

ups_mail_innovations

Urb-it

urb_it

USPS

USPS

Via Delivery

via_delivery

Whistl

whistl

Wizmo

Wizmo

Yodel

yodel

Service

Il s'agit du nom du service d'expédition utilisé pour expédier la commande.

numéro de suivi

Numéro de suivi du colis.

Exemple de corps de requête POST

Vous trouverez ci-dessous un exemple du corps de requête XML qui sera inclus lorsque ShipStation passe un appel POST pour une notification d'expédition. Vous trouverez des définitions détaillées des champs dans le Guide de référence de la boutique personnalisée.

<?xml version="1.0" encoding="utf-8"?>
<ShipNotice>
  <OrderNumber>ABC123</OrderNumber>
  <OrderID>123456</OrderID>
  <CustomerCode>customer@mystore.com</CustomerCode>
  <CustomerNotes></CustomerNotes>
  <InternalNotes></InternalNotes>
  <NotesToCustomer></NotesToCustomer>
  <NotifyCustomer></NotifyCustomer>
  <LabelCreateDate>10/19/2019 12:56</LabelCreateDate>
  <ShipDate>10/19/2019</ShipDate>
  <Carrier>USPS</Carrier>
  <Service>Priority Mail</Service>
  <TrackingNumber>1Z909084330298430820</TrackingNumber>
  <ShippingCost>4.95</ShippingCost>
  <CustomField1></CustomField1>
  <CustomField2></CustomField2>
  <CustomField3></CustomField3>
  <Recipient>
    <Name>The President</Name>
    <Company>US Govt</Company>
    <Address1>1600 Pennsylvania Ave</Address1>
    <Address2></Address2>
    <City>Washington</City>
    <State>DC</State>
    <PostalCode>20500</PostalCode>
    <Country>US</Country>
  </Recipient>
  <Items>
    <Item>
      <SKU>FD88821</SKU>
      <Name>My Product Name</Name>
      <Quantity>2</Quantity>
      <LineItemID>25590</LineItemID>
    </Item>
  </Items>
</ShipNotice> 

Se connecter à ShipStation

Connecter une boutique personnalisée à ShipStation fonctionne de la même manière que l'ajout de toute autre intégration directe à la boutique. Consultez les instructions détaillées ci-dessous.

Ajouter une boutique personnalisée comme canal de vente

Pour connecter votre boutique personnalisée à ShipStation :

  1. Choisissez l'option Boutique personnalisée.

    Tuile de connexion à la boutique personnalisée ShipStation
  2. Saisissez les informations demandées dans le formulaire et testez votre connexion à l'aide du bouton Tester la connexion.

    Le tableau ci-dessous fournit des détails sur les champs du formulaire dans la fenêtre de connexion :

    Champ

    Description

    URL de la page CML personnalisée

    Il s'agit de l'emplacement de votre point de terminaison Web. HTTPS recommandé.

    Statut non payé

    Il s'agit du nom du statut dans votre système qui indique qu'une commande n'est pas encore payée et n'est pas encore prête à être expédiée.

    Plusieurs statuts peuvent être séparés par une virgule.

    Statut de paiement

    Il s'agit du nom du statut dans votre système qui indique qu'une commande est payée et prête à être expédiée.

    Statut de l’expédition

    Il s'agit du nom du statut dans votre système qui indique qu'une commande est expédiée.

    Statut annulé

    C'est le nom du statut dans votre système qui indique qu'une commande est annulée.

    Statut en attente

    Il s'agit du nom du statut dans votre système qui indique qu'une commande est en attente.

Les champs de statut mappent vos statuts de commande aux statuts de commande de ShipStation. Cela détermine où les commandes seront importées dans ShipStation. Ces champs sont sensibles à la casse.

Une fois la connexion établie, ShipStation commencera à communiquer avec votre point de terminaison Web pour obtenir les informations de commande.

Importer des commandes depuis la boutique personnalisée

ShipStation demande des informations de commande à votre point de terminaison Web à l'aide d'un appel GET.

Les utilisateurs de ShipStation peuvent déclencher manuellement les mises à jour de la boutique en survolant l'icône d'importation Icône d'importation ou icône de rafraîchissement des magasins. Symbole de flèche circulaire grise (dans le sens des aiguilles d'une montre), à l'intérieur d'un carré noir et en choisissant de mettre à jour toutes les boutiques ou les boutiques individuelles.

De plus, les utilisateurs peuvent activer une fonctionnalité de mise à jour automatique afin que ShipStation importe régulièrement les commandes d'une boutique automatiquement. La fréquence de mise à jour automatique dépend de l'historique des mises à jour manuelles de l'utilisateur et de plusieurs autres facteurs.

Envoyer des avis d'expédition

Par défaut, ShipStation utilise un appel POST pour envoyer des notifications d'expédition sur votre point de terminaison Web chaque fois qu'une étiquette est créée dans ShipStation.

Ces notifications peuvent être retardées, si l'utilisateur le souhaite, en définissant les options de notification dans la fenêtre Paramètres de boutique personnalisés.

Si l'utilisateur ShipStation crée des étiquettes en dehors de ShipStation, l'utilisateur peut choisir l'action Marquer comme expédié dans ShipStation, ce qui déplacera la commande vers le statut Expédié dans ShipStation et publiera également une notification d'expédition sur votre point de terminaison Web.

Guide de référence de la boutique personnalisée

Cette section inclut les informations de commande et les définitions des champs ShipNotify ainsi que le schéma XML pour valider les informations de commande.

Définitions des champs des informations sur la commande

* Indique les champs obligatoires

Nom

XPath

Max autorisé

Type

Longueur

Description

Commandes *

commandes

1

Conteneur

s/o

Nœud racine

Commande *

Commandes/Commande

Illimité

Conteneur

s/o

Nœud de conteneur pour une commande individuelle

ID de commande *

Commandes/Commande/ID de commande

1 par commande

Chaîne

s/o

Identifiant unique pour une commande. Ne s'affiche pas à qui que ce soit.

Numéro de commande *

commandes/commande/numéro de commande

1 par commande

Chaîne

1...50

Numéro de commande visible par l'utilisateur. Cette valeur peut être identique à l'ID de commande.

Date de commande *

Commandes/Commande/Date de commande

1 par commande

Date/Time

16

La date à laquelle la commande a été passée. Format : MM/jj/aaaa HH:mm. Les notations sur 12 et 24 heures sont autorisées. La valeur par défaut est UTC si aucun fuseau horaire n'est spécifié.

Statut de la commande *

Commandes/Commande/Statut de commande

1 par commande

Chaîne

1---50

Statut de la commande dans votre système. Vous pourrez mapper ce statut à un statut ShipStation lorsque vous connecterez votre point de terminaison Web en tant que canal de vente dans ShipStation.

Dernière modification*

Commandes/Commande/DernièreModification

1 par commande

Date/Time

16

La dernière fois que la commande a été modifiée dans votre système. Format : MM/jj/aaaa HH:mm. La valeur par défaut est UTC si aucun fuseau horaire n'est spécifié.

Mode d'expédition

Commandes/Commande/Méthode d'expédition

1 par commande

Chaîne

0...100

Recommandé si vous connaissez le mode de livraison qui sera utilisé pour expédier la commande. ShipStation peut mapper vos méthodes d'expédition aux services réels.

Mode de paiement

Commandes/commande/mode de paiement

1 par commande

Chaîne

0...50

Mode de paiement de la commande (par exemple PayPal, chèque, mandat)

Code de devise

Commandes/Commande/Code de devise

1 par commande

Chaîne

3

Doit être un code de devise ISO 4217 (USD, EUR, etc)

Total de la commande *

Commandes/Commande/CommandeTotal

1 par commande

Decimal

9,2 (précision, échelle)

Montant total de la commande. (Neuf chiffres au total, jusqu'à 7 chiffres avant la virgule et jusqu'à 2 après).

MontantTaxe

Commandes/Commande/Montant des taxes

1 par commande

Decimal

9,2

Montant de la taxe, le cas échéant.

Montant de l’expédition *

Commandes/Commande/Montant de l'expédition

1 par commande

Decimal

9,2

Montant de l'expédition.

Notes du client

Commandes/Commande/Notes du client

1 par commande

Chaîne

0...1000

Remarques laissées par le client lors de la commande.

Notes internes

Commandes/Commandes/Notes internes

1 par commande

Chaîne

0...1000

Notes privées qui ne sont consultées que par votre entreprise.

Cadeau

Commandes/Commande/Cadeau

1 par commande

Boole

« vrai » si cette commande est un cadeau

Message du Cadeau

Commandes/Commande/Message cadeau

1 par commande

Chaîne

0...1000

Contient le message cadeau du client.

Champ personnalisé 1

Commandes/Commande/Champ personnalisé1

1 par commande

Chaîne

0...100

Champ personnalisé qui apparaîtra dans la grille des commandes de ShipStation. Peut également être utilisé dans les critères des filtres et des règles d'automatisation de ShipStation.

Champ personnalisé 2

Commandes/Commande/Champ personnalisé2

1 par commande

Chaîne

0...100

Champ personnalisé 2

Champ personnalisé 3

Commandes/Commande/Champ personnalisé3

1 par commande

Chaîne

0...100

Champ personnalisé 3

Entrepôt demandé

Commandes/Commande/Entrepôt demandé

1 par commande

Chaîne

0...100

Lieu d'expédition (doit correspondre au nom)

Source

Commandes/Commande/Source

1 par commande

Chaîne

0...50

Source de la commande (p. ex. eBay, États-Unis, Amazon, Buy.com)

Client *

Commandes/Commande/Client

1 par commande

Conteneur

s/o

Nœud de conteneur pour les informations du client.

Code client *

Commandes/Commande/Client/Code client

1 par commande

Chaîne

1...50

Identifiant unique du client dans votre système. C'est souvent un nom d'utilisateur ou une adresse courriel.

Facturer à *

Commandes?Commande/Client/Facturer à

1 par commande

Conteneur

s/o

Nœud conteneur pour les informations de facturation du client.

Nom*

Commandes/Commande/Client/Facturer à/Nom

1 par commande

Chaîne

1...100

Le nom de facturation.

Compagnie

Commandes/Commande/Client/Facturer à/Entreprise

1 par commande

Chaîne

1...100

L'entreprise facturée.

Téléphone

Commandes/Commande/Client/Facturer à/Téléphone

1 par commande

Chaîne

0...50

Le numéro de téléphone de facturation.

Courriel

Commandes/Commande/Client/Facturer à/Courriel

1 par commande

Chaîne

0...100

Recommandé pour que ShipStation puisse informer le client lorsqu'une commande est expédiée.

Expédier à *

Commandes/Commande/Client/Expédier à

1 par commande

Conteneur

s/o

Nœud de conteneur pour les informations d'expédition du client.

Nom*

commandes/commande/client/expédier à/nom

1 par commande

Chaîne

1...100

Nom du destinataire.

Compagnie

Commandes/Commande/Client/Expédier à/Entreprise

1 par commande

Chaîne

1...100

Entreprise du destinataire.

Adresse 1 *

Commandes/Commande/Client/Expédier à/Adresse1

1 par commande

Chaîne

1...200

Adresse du destinataire ligne 1.

Adresse 2

Commandes/Commande/Client/Expédier à/Adresse2

1 par commande

Chaîne

1...200

Adresse du destinataire ligne 2.

Ville *

Commandes/Commande/Client/Expédier à/Ville

1 par commande

Chaîne

1...100

Ville du destinataire.

État *

Commandes/Commande/Client/Expédier à/État

1 par commande

Chaîne

2...100

Les adresses aux États-Unis et au Canada nécessitent le code d'État/de territoire à 2 caractères.

Code postal *

Commandes/Commande/Client/Expédier à/Code postal

1 par commande

Chaîne

0...50

Requis pour les adresses nationales et de nombreuses adresses internationales.

Pays *

Commandes/Commande/Client/Expédier à/Pays

1 par commande

Chaîne

2

Code de pays ISO 3116-1 à 2 caractères.

Téléphone

Commandes/Commande/Client/Expédier à/Téléphone

1 par commande

Chaîne

0...50

Obligatoire dans certains cas (par ex. (pour les expéditions de nuit ou les expéditions internationales). Pas de format spécifique.

Articles *

Commandes/Commandes/Articles

1 par commande

Conteneur

Nœud conteneur pour les articles de la commande.

article

Commandes/Commandes/Articles/Article

Illimité

Conteneur

Nœud de conteneur pour une ligne de commande individuelle.

ID de la ligne

Commandes/Commande/Articles/Article/ID de la ligne

1 par article

Chaîne

1...50

Identifiant unique pour la ligne.

UGS*

Commandes/Commande/Articles/Article/SKU

1 par article

Chaîne

1...50

Identifiant unique du produit commandé.

Nom*

Commandes/Commande/Articles/Article/Nom

1 par article

Chaîne

1...200

Nom du produit

URL d’image

Commandes/Commande/Articles/Article/ImageUrl

1 par article

Chaîne

0...500

URL de l'image du produit

Poids

Commandes/Commande/Articles/Article/Poids

1 par article

Decimal

9,2

Poids d'une seule ligne.

WeightUnits

Commandes/Order/Items/Item/Unités de poids

1 par article

Enum

La valeur doit être l'une des suivantes : Livres, Onces, Grammes

Quantité *

Commandes/Commande/Articles/Article/Quantité

1 par article

nombre entier

1...99999

Quantité d'articles commandés.

Prix unitaire *

Commandes/Commande/Articles/Article/Prix unitaire

1 par article

Decimal

9,2

Prix d’un seul article.

Emplacement

Ordres/Order/Items/Item/emplacement

1 par article

Chaîne

0...100

Emplacement du produit dans l'entrepôt

Ajustement

Commandes/Commande/Articles/Article/Ajustement

1 par article

Boole

« vrai » si l'article représente un coupon, une réduction ou un autre ajustement. Notez que toute ligne qui constitue un ajustement doit avoir une valeur « prix unitaire » négative.

Options

Commandes/Commande/Articles/Article/Options

1 par article

Conteneur

Note sur le conteneur pour les options de l'article (par ex. couleur, taille, etc.)

Option

Commandes/Commande/Articles/Article/Options/Option

10 par article

Conteneur

Nœud conteneur pour une valeur d’option individuelle.

Nom*

Commandes/Commande/Articles/Article/Options/Option/Nom

1 par option

Chaîne

1...100

Le nom de l'option (par exemple, Taille).

Valeur *

Commandes/Commandes/Articles/Article/Options/Option/Valeur

1 par option

Chaîne

1...100

La valeur de l'option (par exemple, XL).

Poids

Commandes/Commande/Articles/Article/Options/Option/Poids

1 par option

Decimal

9 (avec une précision de 2 décimales)

Si l'option ajoute du poids à l'article, vous pouvez spécifier le poids supplémentaire ici. Cela doit être dans les mêmes unités spécifiées dans Unités de poids. Il doit s'agir du poids supplémentaire pour une seule quantité.

Schéma XML pour la validation des informations sur les commandes

Le XML de commande sera validé par rapport au schéma suivant :

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="Orders">  
  <xs:complexType>
   <xs:sequence>
    <xs:element name="Order" maxOccurs="unbounded" minOccurs="0">
     <xs:complexType>
      <xs:all>
       <xs:element type="String50" name="OrderID" minOccurs="0"/>
       <xs:element type="String50" name="OrderNumber"/>
       <xs:element type="DateTime" name="OrderDate"/>
       <xs:element type="String50" name="OrderStatus"/>
       <xs:element type="DateTime" name="LastModified"/>
       <xs:element type="String100" name="ShippingMethod" minOccurs="0"/>
       <xs:element type="String50" name="PaymentMethod" minOccurs="0"/>
       <xs:element type="xs:decimal" name="OrderTotal"/>
       <xs:element type="xs:decimal" name="TaxAmount" minOccurs="0"/>
       <xs:element type="xs:decimal" name="ShippingAmount" minOccurs="0"/>
       <xs:element type="String1000" name="CustomerNotes" minOccurs="0"/>
       <xs:element type="String1000" name="InternalNotes" minOccurs="0"/>
       <xs:element type="xs:boolean" name="Gift" minOccurs="0"/>
       <xs:element type="String1000" name="GiftMessage" minOccurs="0"/>
       <xs:element type="String100" name="CustomField1" minOccurs="0"/> 
       <xs:element type="String100" name="CustomField2" minOccurs="0"/>
       <xs:element type="String100" name="CustomField3" minOccurs="0"/>
       <xs:element type="String100" name="RequestedWarehouse" minOccurs="0"/>
       <xs:element type="String50" name="Source" minOccurs="0" />
       <xs:element name="Customer">   
         <xs:complexType>
          <xs:all>
           <xs:element type="String100" name="CustomerCode"/>
           <xs:element name="BillTo">
             <xs:complexType>
              <xs:all>
               <xs:element type="String100" name="Name"/>
               <xs:element type="String100" name="Company" minOccurs="0"/>
               <xs:element type="String50" name="Phone" minOccurs="0"/>
               <xs:element type="Email" name="Email" minOccurs="0"/>
               <xs:element type="String200" name="Address1" minOccurs="0"/>
               <xs:element type="String200" name="Address2" minOccurs="0"/>
               <xs:element type="String100" name="City" minOccurs="0"/>
               <xs:element type="String100" name="State" minOccurs="0"/>
               <xs:element type="String50" name="PostalCode" minOccurs="0"/>
               <xs:element type="StringExactly2" name="Country" minOccurs="0"/>
              </xs:all>
             </xs:complexType>
           </xs:element>
           <xs:element name="ShipTo">
            <xs:complexType>
              <xs:all>
               <xs:element type="String100" name="Name"/>
               <xs:element type="String100" name="Company" minOccurs="0"/>
               <xs:element type="String200" name="Address1"/>
               <xs:element type="String200" name="Address2" minOccurs="0"/>
               <xs:element type="String100" name="City"/>
               <xs:element type="String100" name="State" minOccurs="0"/>
               <xs:element type="String50" name="PostalCode" minOccurs="1"/>
               <xs:element type="StringExactly2" name="Country"/>
               <xs:element type="String50" name="Phone" minOccurs="0"/>
            </xs:all>
           </xs:complexType>
          </xs:element>
         </xs:all>
        </xs:complexType>
       </xs:element>
       <xs:element name="Items">
        <xs:complexType>
          <xs:sequence>
           <xs:element name="Item" maxOccurs="unbounded" minOccurs="0">
            <xs:complexType>
              <xs:all>
               <xs:element type="String50" name="LineItemID" minOccurs="0"/>
               <xs:element type="String100" name="SKU"/>
               <xs:element type="String200" name="Name"/>
               <xs:element type="xs:boolean" name="Adjustment" minOccurs="0"/>
               <xs:element type="xs:anyURI" name="ImageUrl" minOccurs="0"/>
               <xs:element type="xs:decimal" name="Weight" minOccurs="0"/>
               <xs:element name="WeightUnits" minOccurs="0">
               <xs:simpleType>
               <xs:restriction base="xs:string">
               <xs:patternvalue="pound|pounds|lb|lbs|gram|grams|gm|oz|ounces|Pound|Pounds|Lb|Lbs|Gram|Grams|Gm|Oz|Ounces|POUND|POUNDS|LB|LBS|GRAM|GRAMS|GM|OZ|OUNCES"/>
              </xs:restriction>
             </xs:simpleType>
            </xs:element>
            <xs:element type="xs:int" name="Quantity"/>
            <xs:element type="xs:decimal" name="UnitPrice"/>
            <xs:element type="String100" name="Location" minOccurs="0"/>
            <xs:element name="Options" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Option" maxOccurs="100" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <xs:element type="String100" name="Name"/>
                        <xs:element type="String100" name="Value"/>
                        <xs:element type="xs:decimal" name="Weight" minOccurs="0"/>
                     </xs:all>
                    </xs:complexType>
                   </xs:element>
                 </xs:sequence>
                </xs:complexType>
               </xs:element>
              </xs:all>
             </xs:complexType>
            </xs:element>
           </xs:sequence>
          </xs:complexType>
         </xs:element>
        </xs:all>
       </xs:complexType>
      </xs:element>
     </xs:sequence>
     <xs:attribute type="xs:short" name="pages"/>
    </xs:complexType>
   </xs:element>
   <xs:simpleType name="DateTime">  
    <xs:restriction base="xs:string">
     <xs:pattern value="[0-9][0-9]?/[0-9][0-9]?/[0-9][0-9][0-9]?[0-9]? [0-9][0-9]?:[0-9][0-9]?:?[0-9]?[0-9]?. ?[aApP]?[mM]?"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="Email">
  <xs:restriction base="xs:string">
  </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringExactly2">
   <xs:restriction base="xs:string">
    <xs:minLength value="2"/>
    <xs:maxLength value="2"/>
   </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String30">
    <xs:restriction base="xs:string">
      <xs:maxLength value="30"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String50">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String100">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String200">
    <xs:restriction base="xs:string">
      <xs:maxLength value="200"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String1000">
    <xs:restriction base="xs:string">
      <xs:maxLength value="1000"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

Définitions des champs ShipNotify

Nom

XPath

Occurrence maximale

Type

Longueur

Description

Avis d'expédition

Avis d'expédition

1

Conteneur

s/o

Nœud racine

ID de commande

Avis d'expédition/ID de commande

1

Chaîne

1...50

Identifiant unique pour une commande

Numéro de commande

Avis d'expédition/Numéro de commande

1

Chaîne

1...50

Identifiant de commande visible par l'utilisateur.

Code client

Avis d'expédition/Code client

1

Chaîne

1...50

Identifiant unique du client dans votre système. C'est souvent un nom d'utilisateur ou une adresse courriel.

Notes du client

Avis d'expédition/Notes du client

1

Chaîne

0...1000

Remarques laissées par le client lors de la commande.

Notes internes

Avis d'expédition/Notes internes

1

Chaîne

0...1000

Notes privées qui ne sont consultées que par votre entreprise.

Remarques à l'attention du client

Avis d'expédition/Remarques à l'intention du client

1

Chaîne

0...1000

Notes publiques à communiquer au client.

Notifier le client

Avis d'expédition/Notifier le client

1

Boole

Si ShipStation envoie au client un courriel de notification d'expédition, cette valeur sera « fausse» .

DateCréationÉtiquette

Avis d'expédition/Date de création de l'étiquette

1

Date/Time

La date à laquelle l'étiquette d'expédition a été créée. Heure UTC. Format : MM/jj/aaaa HH:MM.

Date d'expédition

Avis d'expédition/Date d'expédition

1

Date

La date d'expédition du colis.

Transporteur

Avis d'expédition/transporteur

1

Chaîne

0...50

Le transporteur utilisé (USPS, UPS, FedEx)

Service

Avis d'expédition/service

1

Chaîne

0...50

Le service d'expédition utilisé.

Numéro de suivi

Avis d'expédition/Numéro de suivi

1

Chaîne

0...50

Le numéro de suivi du colis.

Frais d'expédition

Avis d'expédition/Coût d'expédition

1

Decimal

9,2

Le coût d'expédition du colis.

Destinataire

Avis d'expédition/destinataire

1

Conteneur

s/o

Nœud de conteneur pour l'adresse du destinataire.

Nom

Avis d'expédition/destinataire/nom

1

Chaîne

1...100

Nom du destinataire.

Compagnie

Avis d'expédition/destinataire/entreprise

1

Chaîne

0...100

Entreprise du destinataire.

Adresse 1

Avis d'expédition/destinataire/adresse1

1

Chaîne

1...200

Adresse du destinataire ligne 1.

Adresse 2

Avis d'expédition/destinataire/adresse2

1

Chaîne

1...200

Adresse du destinataire ligne 2.

Ville

Avis d'expédition/destinataire/ville

1

Chaîne

0...100

Ville du destinataire.

État

Avis d'expédition/destinataire/État

1

Chaîne

Les adresses aux États-Unis et au Canada nécessitent le code d'État/de territoire à 2 caractères.

Code postal

Avis d'expédition/destinataire/code postal

1

Chaîne

0...50

Requis pour les adresses nationales et de nombreuses adresses internationales.

Pays

Avis d'expédition/destinataire/pays

1

Chaîne

2

Code pays à 2 caractères.

articles

Avis d'expédition/Articles

1

Conteneur

Nœud du conteneur pour les articles de l'expédition.

article

Avis d'expédition/Articles/Article

Illimité

Conteneur

Nœud de conteneur pour une ligne d'expédition individuelle.

ID de la ligne

ShipNotice/Items/Item/ID de ligne

1 par article

Chaîne

1...50

Identifiant unique pour la ligne.

UGS

Avis d'expédition/articles/article/SKU

1 par article

Chaîne

1...100

Identifiant unique du produit qui a été expédié.

Nom

Avis d'expédition/Articles/Article/Nom

1 par article

Chaîne

1...200

Nom du produit.

Quantité

Avis d'expédition/Articles/Article/Quantité

1 par article

nombre entier

1...99999

Quantité d'articles expédiés.