Shopping par catégorie

Page d'accueil » Services & Supporte » Services API ouvert

ApiOpenStep.jpg
Convention d'interface commune

   1. Adresse d'interface d'API:
       http://www.sunsky-api.com
       API URL exemple: http://www.sunsky-api.com/openapi/category!getChildren.do

   2. Paramètre commun:
       key: La clé de SUNSKY API vous avez obtenu Plateforme Open API.
       signature: La signature pour les paramètres est générée avec les valeurs de paramètre et le secret que vous avez obtenu de la plate-forme API ouverte de SUNSKY.

   Attention: Les paramètres doivent être triés par nom avant la génération de la signature.

   3. Format de résultat
       La valeur de retour est formatée en JSON.
       (a) Exemple de Résultat Réussi:
           { result: "success", data: [{"id":1032,"code":"003","gmtCreated":"01/31/2013 00:00","name":"N Style Phone","parentId":408,"status":1}] }
       (b) Exemple de Résultat échoué:
           { result: "error", messages: [  "The record you visiting does NOT exist." ] }

   4. Contrôle de fréquence d'appel
       SUNSKY API limitera la fréquence d'appels au cas où les appels en masse surchargeraient les serveurs.
       Veuillez vous référer à ceci pour obtenir les informations de contrôle de fréquence: 
         http://www.sunsky-api.com/admin/apiAccessControl!list.do

   Attention: Tous les paramètres et les valeurs de retour sont sensibles à la casse.

Interface 1: Obtenir les sous-catégorie spécifiée dans les paramètres

    (a) URL: /openapi/category!getChildren.do
    (b) Paramètres: 
          Si vous ne transmettez aucun paramètre, cette API renverra toutes les catégories..
          Vous pouvez spécifier les paramètres ci-dessous pour filtrer les catégories à récupérer:
          * parentId: ID de la catégorie à laquelle vous souhaitez obtenir ses sous-catégories directes, facultatif;
          * gmtModifiedStart: pour rechercher les catégories modifiées depuis "gmtModifiedStart", au format MM / dd / yyyy HH: mm: ss (ex: 31/10/2013 01:23:20), facultatif;

    (c) Résultat:
           Résumé:
           * Si le paramètre parentId n'est pas transmis, un tableau de toutes les catégories est renvoyé;
           * Si "0" est spécifié pour parentId, un tableau de catégories de niveau supérieur est renvoyé;
           * Si vous spécifiez un numéro différent pour parentId, renvoyez un tableau de sous-catégories directes;
           * Si vous spécifiez une date pour gmtModifiedStart, retournez un tableau de catégories qui ont changé depuis "gmtModifiedStart";
           Champs:
           * id: ID unique de la catégorie;
           * code: Le code de la catégorie. Les sous-catégories de cette catégorie sont triées par code.
           * name: Le nom complet de la catégorie;
           * shortName: Le nom court de la catégorie, qui peut être vide;
           * hsCode: HS code du produit de la catégorie peut être vide. Si HS code est vide, veuillez vous reporter à HS code de la catégorie parental;
           * status: Statut de la catégorie, veuillez vous reporter à l'annexe A;
           * parentId: ID parent de la catégorie;
           * gmtModified: changez l'heure au formatMM/dd/yyyy HH:mm:ss (ex: 10/31/2013 01:23:20);

      Astuce: Comment obtenir les catégories modifiées?

            (1) Avant d'appeler getChildren API, charger un temps T0 précédemment enregistré à partir db / file;
            (2) Utiliser gmtModifiedStart = T0 appel getChildren API, elle retourne la catégorie car il a changé le T0;
            (3) Mettre à jour la base de données locale en utilisant les données de catégorie renvoyées par getChildren API;
            (4) La mise à jour catetories T0 retours getChildren API dans max gmtModified, puis enregistrez T0 à db / file;
            (5) Augmenter le numéro de page et répétez les étapes 2 à 4 jusqu'à ce que getChildren API ne renvoie pas de données.

Interface 2: Obtenir une liste de produits

    (a) URL: /openapi/product!search.do 
    (b) Paramètres: 
           * categoryId: L'ID de la catégorie dans laquelle rechercher le produit (y compris ses sous-catégories), facultatif;
           * pageSize: Taille du tableau de produits renvoyé par page.Le paramètre par défaut est 40 et la valeur maximale, 100.
           * page: Numéro de page, le réglage par défaut est 1;
           * gmtModifiedStart: Pour obtenir le produit modifié depuis "gmtModifiedStarted", le format est MM / dd / yyyy HH: mm: ss (ex: 31/10/2013 01:22:31), facultatif;
           * status: Statut du produit, veuillez vous reporter à l'annexe B, facultatif;
           * brandName: Nom de marque, tel que iPartsBuy, Xiaomi, Huawei, Meizu, facultatif;
    (c) Résultat:
           Résumé: 
           * Cette API renvoie les produits correspondant à vos critères.
           Champs:
           * total: Le nombre total de produits répondant aux critères que vous spécifiez;
           * pageCount: Le nombre de pages calculées par Total et pageSize;
           * result: Une liste des résultats de données produit, voir Interface 'openapi/product!detail.do' pour plus de détails.

      Astuce: Comment obtenir un produit modifié?

            (1) Avant d'appeler API de recherche, charger un temps T0 précédemment enregistré à partir db / file;
            (2) Utiliser gmtModifiedStart = T0 appel de API de recherche, il retournera le produit a été effectuée depuis T0 avait changé;
            (3) Metter à jour la base de données locale à l'aide des données de produit renvoyées par API.
            (4) La mis à jour T0 à API de recherche pour retourner le produit gmtModified maximum, puis enregistrer T0 à db / file;
            (5) Augmenter le numéro de page et répétez les étapes 2 à 4 jusqu'à ce que API de recherche ne renvoie pas de données.

Interface 3: Obtenir les détails du produit spécifié

    (a) URL: /openapi/product!detail.do 
    (b) Paramètres: 
           * itemNo: Le numéro de modèle du produit pour lequel vous souhaitez obtenir des informations détaillées.
    (c) Résultat:
           Résumé: 
           * Cette API renvoie des informations complètes sur le produit spécifié.
           Champs:
           * id:  ID unique du produit;
           * categoryId:  ID de catégorie du produit;
           * itemNo: Numéro de modèle du produit;
           * groupItemNo:  Le numéro de modèle du produit. S'il ne s'agit pas de plusieurs modèles, le modèle de groupe est identique au modèle de produit;
           * name: Nom du produit;
           * barcode: Code à barres du produit;
           * description: Description du produit;
           * leadTime: Description du délai de livraison, ex: " La commande du jour avant 18 heures (GMT + 8)", "1 à 3 jours", "2 à 5 jours";
           * gmtListed: Heure de lancement du produit, le format est MM / dd / yyyy HH: mm: ss (ex, 10/31/2013 01:23:20). Les produits sont nouveaux dans un délai de 90 jours du lancement;
           * gmtModified: Heure de modification du produit, le format est MM / dd / yyyy HH: mm: ss (ex, 10/31/2013 01:23:20);
           * warehouse: L'entrepôt de livraison du produit, ex: CN, HK ou RU;
           * stock: Si l'entrepôt est un entrepôt à l'étranger (pas CN), ce champ est la quantité en stock actuelle; 
           * moq: Quantité minimum de commande, la valeur par défaut est 1;
           * brandName: Nom de marque, tel que 'Huawei';
           * modelLabel: Si le produit est multi-modèle, il sera utilisé pour distinguer les attributs du produit (ex: couleur, taille, etc.).
           * modelList: Si le produit est multi-modèle, il retournera une liste de modèles.
                        Chaque élément de la liste est composé de key-value, key est le modèle de produit et value est la description de l'attribut de modèle.
                        ex: [ { key: 'S-MPH-001', value: 'White' }, { key: 'S-MPH-002', value: 'Black' } ]
           * optionList: Liste de produits similaires
                       {
                              display: "text" or "picture",
                              items: [ {
                                     itemNo: "S-MPH-0002",
                                     keywords: "Plastic Case for S7"
                              } ]
                       }
           * price: Prix actuel du produit;
           * priceList: La liste des prix des produits, qui varie en fonction de la quantité achetée.
                        Chaque élément de la liste est un objet key-value, key correspond à la quantité et value correspond à la quantité correspondante.
                        ex: [ { key: 2, value: '2.98' }, { key: 10, value: '2.49' } ] 
           * clearance: Le produit est-il en liquidation?
           * orgPrice: Si le produit est un produit en liquidation ou promotionnel, ce champ contient le prix d'origine;
           * priceExpired: Si le produit est un produit promotionnel, ce champ contient l'heure d'expiration de l'événement au format MM / dd / yyyy HH: mm (ex, 31/10/2013 00:00). Peut être vide;
           * status: Statut du produit, voir l'annexe B pour plus de détails;
           * unitWeight:  Le poids individuel du produit;
           * packQty:  La quantité de produits dans une boîte;
           * packWeight: Poids d'une boîte de produits, en kg;
           * packLength&packWidth&packHeight: Volume d'une boîte de produits, en mm;
           * containsBattery: Contient-il une batterie? true ou false;
           * giftItemNo: Si le produit contient un cadeau, ce champ contient le modèle de cadeau correspondant;
           * brands: Si ce produit est un accessoire, ce champ répertorie les modèles de marques qui lui sont compatibles. "/openapi/product!search.do" ne renvoie pas ce champ. 
                     Par exemple: [ { brand: { name: "Apple" }, models: [ { name: "iPhone" }, { name: "iPad" } ] } ]
           * params: Paramètres clés du produit. “/openapi/product!search.do”ne renvoie pas ce champ.
                     Par exemple: [ { name: "Connectivity" , values: [ "WIFI", "3G", "GPS" ] } ]

Interface 4: Télécharger l'image du produit spécifié

    (a) URL: /openapi/product!getImages.do 
    (b) Paramètres: 
           * itemNo: Le modèle de produit que vous souhaitez obtenir.     
           * size: Taille de l'image du produit, en pixels, facultatif.
                   La taille maximale est de 800 x 800 et certaines anciennes images de produits peuvent être de 500 x 500.
           * watermark: image en filigrane, facultatif.
    (c) Résultat:
           Résumé: 
           * Si ce modèle n'existe pas, il retournera 404, sinon il retournera un flux de données zip.

Interface 5: Obtenir l'image du produit modifié

    (a) URL: /openapi/product!getImageChangeList.do 
    (b) Paramètres: 
           * pageSize: Le nombre de modifications renvoyées par page, par défaut 40, maximum 100;
           * page: Numéro de page, par défaut 1;
           * gmtModifiedStart: Récupérer le modèle de produit dont l'image a changé depuis "gmtModifiedStart", au format MM / dd / yyyy HH: mm: ss (ex, 30/10/2016 11:14:01);
    (c) Résultat:
           Résumé: 
           * total: Nombre total de résultats correspondant au filtre.
           * pageCount: Le nombre total de pages.
           * result: le résultat renvoyé contient un numéro de modèle de produit et l'heure de mise à jour de l'image correspondante, par exemple [{"itemNo": "S-MPH-001", "gmtModified": "10/31/2016 01:04:22"}]
     Veuillez télécharger à nouveau l'image du produit correspondante en fonction de la liste de modèles de produits modifiée.

      Conseil: Comment obtenir une image de produit du changement?

            (1) Avant d'appeler API changelist, charger un temps T0 précédemment enregistré à partir db / file;
            (2) Utiliser gmtModifiedStart = T0 appel API changelist, il retournera le produit depuis T0 les changements d'image;
            (3) Téléchargez à nouveau l'image du produit correspondant au modèle répertorié dans la liste des modifications;
            (4) Sera mis à jour T0 pour changelist API retourner le plus grand gmtModified du produit, puis enregistrez T0 à db / file;
            (5) Augmenter le numéro de page et répétez les étapes 2 à 4 jusqu'à ce que changelist API ne renvoie pas de données.

Interface 6: Obtenir une liste des pays pouvant être expédiés

    (a) URL: /openapi/order!getCountries.do 
    (b) Paramètres: 
           Non.
    (c) Résultat:
           Résumé: 
           * Obtenir le transport liste du Pays / région, y compris l'état / province (s'il y en a).
           Champs:
           * id: ID unique du pays;
           * code: Le code pays, conformément à la norme ISO 3166;
           * name: Le nom du pays;
           * shipToState: Les frais de livraison sont-ils calculés en fonction de l'état? Peut-être moins cher. true/false;
           * stateList: Une liste optionnelle d'état / province du pays, les champs ci-dessous:
                   ** code: Le code de l'état / province;
                   ** name: Le nom de l'état / province;

Interface 7: Obtenir les prix des produits et les frais d'expédition

    (a) URL: /openapi/order!getPricesAndFreights.do 
    (b) Paramètres: 
           * countryId: ID unique du pays;
           * state: Le code d'état de l'adresse de livraison, voir '/openapi/order!getCountries.do', facultatif;
           * items.#.itemNo, items.#.qty: La liste d'articles pour calculer les prix et les frais d'expédition.
                   ** Le # est un nombre entier permettant de distinguer les éléments, ex: items.1.itemNo, items.2.itemNo...
                   ** itemNo: Le numéro de modèle du produit;
                   ** qty: La quantité correspondant au modèle de produit;
    (c) Résultat:
           Résumé: 
           * Obtenez les prix des produits et les frais d'expédition.
          Champs:
           * priceList: Les prix pour les articles, les champs comme ci-dessous:
                   ** productId: ID unique du produit;
                   ** itemNo: Le numéro d'article du produit;
                   ** qty: La quantité pour l'article;
                   ** price: Le prix individuel du produit;
                   ** orgPrice: Le prix initial du produit, le prix final peut être moins cher que le prix original;
                   ** amount: Le final sous-total pour l'article;
                   ** orgAmount: le sous-total d'origine du produit, le montant final peut être moins cher;
           * freightList: Les frais de livraison pour les articles, les champs ci-dessous:
                   ** id: ID unique de la méthode d'expédition;
                   ** name: Le nom de la voie d'expédition;
                   ** logo: Méthode d'expédition Logo URL address;
                   ** description: Description de la méthode d'expédition;
                   ** website: Le site officiel du mode d'expédition;
                   ** transitTime: Description du temps d'expédition;
                   ** shippingCost: Frais d'expédition;

Interface 8: Créer une commande

    (a) URL: /openapi/order!createOrder.do 
    (b) Paramètres: 
           * siteNumber: Vous possédez un numéro de commande ou un autre numéro de référence supplémentaire à la commande SUNSKY, facultatif. Longueur maximale: 32 caractères.
           * useBalanceOnly: Si la valeur est true, vous devez disposer d'un solde suffisant sur le site Web SUNSKY. Dans le cas contraire, une exception "INSUFFICENT_BALANCE" sera apparue.
                   Si la valeur est false, la commande sera créée avec le mode de paiement virement bancaire lorsque le solde de votre compte est insuffisant. La valeur par défaut est false, facultatif.
           * coupon: Le code de coupon utilisé;
           * deliveryAddress.countryId: ID du pays;
           * deliveryAddress.state: Code d'état, voir '/openapi/order!getCountries.do'. 
                   Si le pays/ l'état ne dispose pas d'informations, saisissez-les manuellement. Longueur maximale: 40 caractères;
           * deliveryAddress.city: Ville. Longueur maximale: 40 caractères;
           * deliveryAddress.company: Nom de la société, facultatif, longueur maximale: 100 caractères;
           * deliveryAddress.address: Adresse municipale, longueur maximale: 100 caractères;
           * deliveryAddress.address2: Adresse postale 2, longueur maximale: 100 caractères;
           * deliveryAddress.postcode: Code postal, longueur maximale: 20 caractères;
           * deliveryAddress.receiver: Nom complet du destinataire, longueur maximale: 32 caractères;
           * deliveryAddress.telephone: Téléphone du destinataire, facultatif, mais recommandé. Longueur maximale: 20 caractères;
           * deliveryAddress.shippingWayId:  ID du mode de livraison.
                   Vous pouvez obtenir une liste des méthodes d'expédition en appelant '/openapi/order!getPricesAndFreights.do', et obtenez l'attribut id de la liste 'freightList' dans le résultat;
           * deliveryAddress.shipment: drop -- OEM; wholesale -- achetez vous-même, facultatif. La valeur par défaut est 'en gros';
           * items.#.itemNo, items.#.qty: La liste des articles pour créer une commande.
                   ** Le # est un nombre entier permettant de distinguer les éléments, ex: items.1.itemNo, items.2.itemNo...
                   ** itemNo: Le numéro d'article du produit;
                   ** qty: La quantité pour l'article;
    (c) Résultat:
           Résumé: 
           * Soumettre les informations sur le produit et l'adresse de livraison pour créer une commande de SUNSKY.
           Champs:
           * number: Le numéro de commande;
           * status: Le statut de la commande. Voir l'annexe C;
           * amount: Le sous-total des articles;
           * shippingCost: Le coût d'expédition de la commande;
           * totalAmount: Le montant total de la commande. Le montant total = les sous-totaux + le coût d'expédition;
           * siteNumber: Voir '/openapi/order!createOrder.do';
           * packStatus: 0-Préparation; 1-Emballage; 2-Principalement emballé; 3-Emballé et prêt à expédier;
           * trackingNumber: Le numéro de suivi de la commande;
           * gmtCreated: L'heure de création de la commande, au format 'MM/dd/yyyy HH:mm'(ex: 10/31/2013 05:01);
           * gmtPaid: L'heure payée de la commande, au format 'MM/dd/yyyy HH:mm'(ex: 10/31/2013 05:01);
           * gmtShipped: L'heure d'expédition de la commande, au format 'MM/dd/yyyy HH:mm'(ex 10/31/2013 05:01);
           * deliveryAddress.*: Les informations sur l'adresse de livraison. Voir  '/openapi/order!createOrder.do';
                   Champs supplémentaire:
                   ** shippingWay.id: ID unique de la méthode d'expédition;
                   ** shippingWay.name: Le nom de la méthode d'expédition;
           * detailList: La liste détaillée des commandes avec les champs suivants:
                   ** productId: ID unique du produit;
                   ** itemNo: Le numéro d'article du produit;
                   ** title: Le nom du produit;
                   ** qty: La quantité du produit;
                   ** price: Le prix unitaire final de l'article;
                   ** amount: Le final sous-total pour l'article;;
                   ** scaned: 0-Pas prêt à emballer; 1-Emballé;
                   ** delayToShip: 0-Normal; 1-Délai pour expédier;

Interface 9: Rechercher la commande

    (a) URL: /openapi/order!getOrderList.do 
    (b) Paramètres: 
           * pageSize: Nombre de commandes de pages, par défaut 40, maximum 100;
           * page: Numéro de page, par défaut 1;
           * status: Le statut de la commande, facultatif. Voir l'annexe C pour plus de détails;
           * siteNumber: Facultatif. Voir '/openapi/order!createOrder.do';
           * gmtCreatedStart: Pour récupérer les commandes créées après (y compris) 'gmtCreatedStart', au format MM/dd/yyyy(ex: 10/31/2013), facultatif;
           * gmtCreatedEnd: Pour récupérer les commandes créées avant (y compris)'gmtCreatedEnd', au format MM/dd/yyyy(ex: 10/31/2013), facultatif;      
    (c) Résultat:
           Résulé: 
           * Cette API renvoie les commandes correspondant aux conditions que vous avez spécifiées.
           Champs:
           * total: Le nombre total de commandes correspond aux conditions que vous avez spécifiées.
           * pageCount: Le nombre total de pages.
           * result: La liste des commandes, voir '/openapi/order!createOrder.do' pour plus de détails. 
                     Cette interface ne renvoie pas les données de champ 'detailList',utiliser '/openapi/order!getOrderDetails.do pour plus de détails.

Interface 10: Obtenir les détails de la commande

    (a) URL: /openapi/order!getOrderDetails.do 
    (b) Paramètres: 
           * number: Numéro de commande SUNSKY;
    (c) Résultat:
           Résumé: 
           * Cette API renvoie les détails complets de la commande.
           Champs:
           * Voir '/openapi/order!createOrder.do' pour plus de détails;

Interface 11: Voir le solde de SUNSKY

    (a) URL: /openapi/order!getBalance.do 
    (b) Paramètres: 
           Non      
    (c) Résultat:
           Résumé: 
           * Cette API est utilisée pour afficher le solde SUNSKY.
           Champs:
           Juste une chaîne de caractères, par exemple "1200.00".

Interface 12: Obtenez l'historique de votre solde et vos relevés

    (a) URL: /openapi/order!getBillList.do 
    (b) Paramètres: 
           * pageSize: Le nombre de relevés par page, par défaut 40, maximum 100;
           * page: Le numéro de page, par défaut 1;
           * gmtCreatedStart: Pour récupérer les données de relevés à partir de  'gmtCreatedStart', au format MM/dd/yyyy(ex: 10/31/2013), facultatif;
           * gmtCreatedEnd: Pour récupérer les données de relevés jusqu'à 'gmtCreatedEnd', au format MM/dd/yyyy(ex: 10/31/2013), facultatif;      
    (c) Résultat:
           Résumé: 
           * Cette API renvoie les données de relevés éligibles.
           Champs:
           * total: Nombre total de relevés éligibles
           * pageCount: Nombre total de pages de relevés
           * result: La liste de relevés. Les champs ci-dessous:
                     * txType: Le type de transaction,ex: prepay / createOrder / payForOrder / cancelOrder;
                     * refId: Si txType est createOrder / payForOrder / cancelOrder,le numéro de commande est associé aux relevés;
                     * amount: Le montant total de la transaction;
                     * balance: Le solde restant après la transaction;
                     * gmtCreated: L'heure de création des relevés, au format 'MM/dd/yyyy HH:mm'(ex: 10/31/2013 05:01);

Interface 13: Obtenir des produits chauds

    (a) URL: /openapi/stats!getHotItems.do 
    (b) Produit: 
           * countryId: ID unique du pays;     
    (c) Résultat:
           Résumé: 
           * Cette API renvoie le produit chaud correspondant en fonction de l'ID de pays correspondant.
           Champs:
           * itemNo: Numéro de modèle du produit.

Interface 14: Obtenir une liste de codes promo

    (a) URL: /openapi/coupon!getList.do 
    (b) Paramètres: 
           * pageSize: Le nombre de codes promo par page, par défaut 40, maximum 100;
           * page: Le numéro de page, par défaut 1;   
    (c) Résultat:
           Résumé: 
           * CetteAPI renvoie les informations sur les codes promo éligibles.
           Champs:
           * total: Le nombre total de codes promo éligibles.
           * pageCount: Le nombre total de pages.
           * result: Une liste de codes promo, les champs ci-dessous:
                     * code: Codes promo;
                     * description: La description du code promo, cela explique comment utiliser le code;
                     * startTime: L'heure de début du code promo, au format 'MM/dd/yyyy HH:mm'(ex: 10/31/2013 05:01);
                     * endTime: L'heure d'expiration du code promo, au format 'MM/dd/yyyy HH:mm'(ex: 10/31/2013 05:01);
                     * personLimit: Nombre d'utilisations du code promo à titre personnel;
                     * qty: Le nombre maximum de produits en promotion disponibles pour le code promo;
                     * discountType: Type de remise
                                   1 -- Montant de la remise fixe;
                                   2 -- Réduction en pourcentage; 
                                   3 -- Un montant fixe;
                     * discount: Selon les différents discountType, la valeur correspondante indique:
                                   1 -- Montant de la remise (type de chaîne de caractères);
                                   2 -- Réduction en pourcentage (type de chaîne de caractères), 90 pour 10% de réduction; 
                                   3 -- Prix final (type de chaîne de caractères);
                     * targetType: 
                                   1 -- Catégorie;
                                   2 -- Produit;
                                   3 -- Le seuil du montant de la commande (réduction totale); 
                                   4 -- Marque
                     * target: Selon les différents targetType,la valeur correspondante indique:
                                   1 -- Liste json de catégorie (type de chaîne de caractères), ex: [ { id: 'category id', name: 'Category name' } ]
                                   2 -- Liste json de produit (type de chaîne de caractères), ex: [ { id: 'product id', name: 'Product name', itemNo: 'Item #' } ]
                                   3 -- Seuil du montant de la commande (réduction totale) 200;
                                   4 -- Liste json de marque (type de chaîne de caractères), ex: [ { name: 'HAWEEL' } ];

Annexe A: Statut de la catégorie

    0 - invalide
    1 - efficace
    2 - supprimé

Annexe B: Statut du produit

    0 - invalide
    1 - efficace
    2 - supprimé
    3 - En rupture de stock

Annexe C: Statut de la commande

    1 - non payé
     2 - payé
     3 - expédié
     4 - annulé
     5 - arrivé

Annexe D: Exemple de code (Java, PHP)


Contactez SUNSKY
Directeur commercial: Ms. Britty
+86-15815598406
Plus