sortie du produit
1. Description du document
Ce document est destiné aux développeurs tiers ou aux commerçants auto-développés qui gèrent les produits Tmall/Taobao (ne prenant pas en charge les assurances, les hôtels, les billets et les voyages
2) ; , Introduction de fond
Le système de schéma est un nouvel ensemble de spécifications d'API ouvertes définies conjointement par la plateforme ouverte et l'équipe produit Tmall/Taobao pour résoudre les problèmes que les changements fréquents dans la plateforme de gestion de produits Tmall/bazaar posent aux développeurs . les frais de développement et de maintenance. La plate-forme de produits Tmall/Taobao utilise l'API de la plate-forme ouverte pour renvoyer les éléments et les règles impliqués dans la gestion des produits sous forme de XML en utilisant un langage plus proche du développeur. Une fois que le développeur a analysé le XML, un fichier XML d'informations sur le produit est généré. sur les règles et les éléments du XML. Appelez l'API de la plateforme ouverte pour télécharger pour terminer la gestion du produit.
Lors du développement d'outils de gestion de produits basés sur le système Schema, la meilleure solution recommandée est que les développeurs établissent un mappage dynamique dans l'application pour gérer la relation de données entre le XML obtenu et la base de données locale, de sorte que lorsque Tmall/ Taobao change, les données obtenues Le XML changera également avec le changement. À ce stade, il vous suffit de définir la nouvelle relation de mappage entre XML et la base de données locale dans la gestion du mappage dynamique pour vous adapter au changement, modifiant ainsi le Tmall/d'origine. Taobao. Une fois les modifications apportées, les développeurs doivent les modifier en conséquence.
3. Ressources ouvertes
1. API
Le système de schéma utilisera l'API suivante pour terminer la gestion du produit (téléchargement d'image, prix, modification de l'inventaire en utilisant l'API d'origine)
//open.taobao.com/doc/api_cat_detail.htm?scope_id=11430&category_id=102
2. SDK
Utiliser le nouveau système pour développer la gestion des produits L'outil comprend deux parties de SDK :
a. TOP API SDK - la méthode de téléchargement reste la même que l'ancienne méthode.
b. Schema SDK - La plate-forme ouverte fournira un SDK distinct pour analyser les règles de produit XML et générer des informations sur le produit XML. L'adresse de téléchargement est l'adresse du disque cloudhttp://box.cloud.taobao.com/. file /downloadFile.htm?shareLink=qUMsITX
Le SDK de la version PHP est merci aux étudiants de HappyGo pour l'avoir co-construit.
3. Compte de test
Fournit actuellement un environnement sandbox pour les tests. Tous les développeurs peuvent utiliser le compte de test sandbox pour les tests. Le compte de test sandbox est : mallb140 (mot de passe : tmall1234). été testé. Pour les catégories, veuillez utiliser la catégorie 50008901, pour les catégories générales, veuillez utiliser la catégorie 162116.
4. Canaux d'assistance
Une fois que les développeurs ont lu attentivement ce document, si vous avez des questions, veuillez rejoindre le groupe Want Want (836280177) pour consultation
4. Portée du support
4.1 Système de schéma couverture
Le système Schema peut prendre en charge la gestion des produits de Tmall dans toutes les catégories, et l'interface du marché devrait être entièrement ouverte avant juin
Les développeurs de Tmall doivent prêter attention à l'annonce suivante : //open. taobao.com/support/annonce_detail.htm?id=24939
4.2 Notes sur la gestion des produits à l'aide du système Schema
4.2.1 Nouveaux produits sur Tmall
L'utilisation du système Schema pour les mises à jour ne fonctionne pas il faut juger s’il s’agit d’un système darwinien. Le processus de base pour appeler de nouveaux produits sur Tmall est le suivant :
1. Jugement de l'utilisateur
Étant donné que le système Schema Tmall/Market dispose de deux ensembles d'interfaces, vous devez utiliser taobao.user.seller.get pour juger la boutique actuelle Ce n'est que si elle appartient à Tmall que l'interface Tmall Schema peut être appelée.
2. Récupération de produits
Tous les produits sur Tmall sont liés à un produit spécifique, donc lorsque les utilisateurs téléchargent de nouveaux produits, ils doivent d'abord vérifier si d'autres marchands ont téléchargé des informations sur les produits sur Tmall. S'il n'y a pas de produit, alors s'il n'y a pas de produit, alors. Vous devez télécharger de nouveaux produits et attendre que le statut du produit soit disponible avant de lancer de nouveaux produits.
Appelez l'interface tmall.product.match.schema.get pour obtenir les règles de correspondance des produits, générer du XML correspondant aux produits selon les règles, appelez
tmall.product.schema.match pour exécuter le produit correspondance, s'il correspond Lorsque vous atteignez un produit, appelez tmall.product.schema.get pour interroger l'état du produit. Si vrai est renvoyé, le produit peut être publié directement, sinon vous devez attendre si la correspondance est vide, cela signifie que le produit qui doit être publié n'existe actuellement pas sur Tmall. Les informations sur le produit nécessitent d'abord la publication d'un nouveau produit. Obtenez les règles impliquées dans la publication du produit en appelant l'interface tmall.product.add.schema.get, générez le fichier XML de version du produit en fonction des règles, appelez tmall.product.schema.add pour publier le produit, vous devez également pour appeler tmall.product.schema .getRequérez l'état du produit. Si true est renvoyé, le produit peut être publié directement, sinon vous devez attendre. A noter que si tmall.product.add.schema.get est vide, cela signifie que la catégorie n'a pas d'attributs clés, et vous pouvez simplement publier le produit directement.
3. Sortie du produit
Lorsque le statut du produit correspondant est vrai, de nouveaux produits peuvent être ajoutés. Appelez tmall.item.add.schema.get pour obtenir les règles de sortie du produit, générez un nouveau fichier XML selon les règles, appelez tmall.item.schema.add pour mettre à jour le produit, veuillez utiliser taobao lors du téléchargement images.image.upload interface.
Lors de la publication de produits, vous rencontrerez occasionnellement des erreurs telles que [isv.item-service-error:ITEM_PROPERTIES_ERROR--Erreur d'attribut "xxx" : les attributs de catégorie n'existent pas dans les attributs standard], généralement depuis que le serveur de l'industrie a ajusté les attributs de catégorie, il est nécessaire d'appeler l'interface tmall.product.update.schema.get pour obtenir les règles de mise à jour du produit, vérifier si la valeur d'un élément requis est vide et régénérer l'appel XML des informations de mise à jour du produit Le tmall.product.schema.updatel'interface peut être complétée et complétée
4. Rappel spécial
Si les développeurs ont besoin d'obtenir toutes les nouvelles règles pour les produits d'une certaine catégorie, ils peuvent appeler tmall en même temps . L'interface product.add.schema.get obtient les règles impliquées dans la sortie du produit. Ensuite, lors de la saisie des paramètres, veuillez noter que product_id est passé en 0 et isv_init est passé en true pour appeler tmall.item.add.schema.get. pour obtenir les règles générales de sortie des produits ( Pas toutes les règles).
4.2.2 Modification du produit Tmall
1) Modification du prix du produit
Il est recommandé d'utiliser l'interface indépendante de mise à jour des prix des produits tmall.item.price.update pour les prix des produits et des SKU.
2) Synchronisation de l'inventaire des produits
Il est recommandé d'utiliser une interface indépendante de synchronisation de l'inventaire des produits pour l'inventaire des produits et des SKU taobao.item.quantity.update/taobao.skus.quantity.update pour mettre à jour
3) Titre du produit et autres mises à jour d'informations
L'interface du système de schéma prend en charge les éléments partiels (TITLE (titre), SUBTITLE (sous-titre, argument de vente), SHORT_TITLE (titre court sans fil), DESC (description du PC), WAP_DESC ( Description sans fil), FENQIGOU (achat à tempérament), VERTICAL_IMAGE (image verticale), DRESS_ONLY_FOR_TMALL (exclusivité Tmall), SHOP_SAME_STYLE (même style dans le centre commercial) ) pour les mises à jour incrémentielles, veuillez vous référer au retour de l'interface pour les paramètres prenant en charge les incréments.
Le développeur appelle l'interface tmall.item.increment.update.schema.get pour transmettre l'identifiant spécifique du produit et les champs qui doivent être mis à jour (C'est aussi un fichier XML. Ne serait-ce que le titre est modifié, les update_fields dans le XML définissez simplement le titre pour la valeur ; si vous devez en mettre à jour plusieurs, définissez plusieurs valeurs) Obtenez les règles de mise à jour de ce champ pour ce produit, générez le XML du produit de mise à jour incrémentielle selon les règles, et appelez tmall.item.schema.increment.update Mise à jour incrémentielle complète. Lors de la génération du fichier XML du produit mis à jour, tous les champs des règles obtenues doivent être assemblés avec la valeur par défaut et renvoyés.
Étant donné que les éléments pris en charge par les mises à jour incrémentielles peuvent être étendus, il est recommandé aux utilisateurs d'appeler l'interface tmall.item.increment.update.schema.get tous les jours et de saisir uniquement le paramètre item_id pour obtenir les éléments prenant en charge les mises à jour incrémentielles. dans la catégorie à laquelle appartient le produit actuel.
Il est recommandé aux développeurs d'encapsuler indépendamment chaque élément pris en charge par l'interface incrémentale, afin que les performances soient meilleures et qu'il y ait moins d'erreurs.
4) Autres mises à jour d'informations
En plus des informations ci-dessus, d'autres mises à jour d'informations sur le produit doivent être mises à jour à l'aide de l'interface de mise à jour complète du schéma. Appelez tmall.item.update.schema.get pour obtenir les règles complètes de mise à jour du produit. Après avoir généré les informations XML de mise à jour du produit conformément aux règles (toutes les informations qui n'ont pas besoin d'être modifiées doivent renvoyer la valeur par défaut. uniformément), appelez tmall .item.schema.update pour mettre à jour.
4.2.3 Lancement du produit Taobao
Le processus d'appel de base pour le lancement du produit Taobao est le suivant :
1. Jugement de l'utilisateur
Puisque le système Schema, Tmall/Market dispose de deux ensembles d'interfaces , Vous devez utiliser taobao.user.seller.get pour déterminer si le magasin actuel appartient à Taobao pour appeler l'interface Taobao Schema.
2. Sortie du produit
Appelez taobao.item.add.schema.get pour obtenir les règles de sortie du produit, générer un nouveau produit XML selon les règles, appelez taobao.item.schema.add pour mettre à jour le produit, veuillez l'utiliser lorsque téléchargement d'images.interface taobao.picture.upload.
4.2.4 Mise à jour du produit Taobao
1) Modification du prix du produit
Il est recommandé d'utiliser l'interface indépendante de mise à jour du prix du produit taobao.item.price.update pour les prix des produits et des sku.
2) Synchronisation de l'inventaire des produits
Il est recommandé d'utiliser une interface indépendante de synchronisation de l'inventaire des produits pour l'inventaire des produits et des SKU taobao.item.quantity.update/taobao.skus.quantity.update pour mettre à jour
3) Titre du produit et autres mises à jour d'informations
L'interface du système Schema prend en charge les mises à jour incrémentielles de certains éléments (titre, point d'accès, description et description sans fil Les paramètres prenant en charge l'incrément doivent être transmis via l'interface ). tout ou pas La réponse reçue de prévaudra.
Le développeur appelle l'interface taobao.item.increment.update.schema.get pour transmettre l'identifiant spécifique du produit et le champ qui doit être mis à jour (Il s'agit également d'une chaîne, telle que la mise à jour du titre, il vous suffit de l'obtenir ) Le produit met à jour les règles de ce champ, génère une mise à jour incrémentielle du produit XML conformément aux règles et appelle taobao.item.schema.increment.update pour terminer la mise à jour incrémentielle. Lors de la génération du fichier XML du produit mis à jour, tous les champs des règles obtenues doivent être assemblés avec la valeur par défaut et renvoyés.
Les éléments pris en charge par les mises à jour incrémentielles pouvant être étendus, il est recommandé aux utilisateurs d'appeler chaque jour l'interface taobao.item.increment.update.schema.get et de saisir uniquement le paramètre item_id pour obtenir la catégorie du produit actuel qui prend en charge l’élément de mises à jour incrémentielles.
Il est recommandé aux développeurs d'encapsuler indépendamment chaque élément pris en charge par l'interface incrémentale, afin que les performances soient meilleures et qu'il y ait moins d'erreurs. Il convient de noter que l'interface incrémentielle ne garantit pas une incrémentation réussie dans tous les scénarios. Pour les données fortement requises par certaines règles de fonctionnement, l'interface incrémentielle sera vérifiée par les règles et signalera une erreur. Et pour certains domaines modulaires, tels que la description sans fil wl_description, l'ensemble du module complet effectue une vérification incrémentielle de manière uniforme.
4) Autres mises à jour d'informations
En plus des informations ci-dessus, d'autres mises à jour d'informations sur le produit doivent être mises à jour à l'aide de l'interface de mise à jour complète du schéma. Appelez taobao.item.update.schema.get pour obtenir les règles complètes de mise à jour du produit. Après avoir généré les informations XML de mise à jour du produit conformément aux règles (toutes les informations qui n'ont pas besoin d'être modifiées doivent renvoyer la valeur par défaut. uniformément), appelez taobao .item.schema.update pour mettre à jour.
5. Description du système de schéma
La structure du schéma d'un produit est composée de plusieurs champs. L'exemple suivant est un fragment de la règle XML obtenue via l'interface d'acquisition de règles d'incrémentation de produit (tmall.item.increment.update.schema.get) :
<field id="title" name="商品标题" type="input"> <rules> <rule name="valueTypeRule" value="text"/> <rule name="requiredRule" value="true"/> <rule name="minLengthRule" value="1" exProperty="include"/> <rule name="maxLengthRule" value="30" exProperty="include"/> </rules> <default-value>韩版2014秋冬新款女装高领套头长款纯色毛衣TK4178</default-value> </field>
Vous pouvez voir le produit de le fragment ci-dessus La règle de titre est générée via un nœud en XML. Vous pouvez voir que le champ sous une structure de schéma contient trois contenus : id, nom et type. Il contient également plusieurs règles et valeur par défaut. peut comprendre C'est le titre du produit. Cette information est un champ de type de saisie. Le type de valeur est du texte, obligatoire, et la longueur des caractères n'est pas inférieure à 1 caractère et pas supérieure à 30 caractères. Yishe style coréen 2014 automne et hiver nouveau pull à col haut pour femme long pull de couleur unie TK4178婏.
La structure complète du schéma est composée comme suit :
Plusieurs types auxquels les développeurs doivent prêter une attention particulière sont :
1. TipRule
Prenez le prix comme un exemple :
<field id="price" name="商品价格" type="input"> <rules> <rule name="valueTypeRule" value="decimal"/> <rule name="requiredRule" value="true"/> <rule name="tipRule" value="一口价 应在 销售属性表中所填 最高与最低价格 范围区间内。"/> <rule name="minValueRule" value="0.00" exProperty="not include"/> <rule name="maxValueRule" value="100000000.00" exProperty="not include"/> <rule name="383278799_1" value="商品价格必须在销售属性表中所填最高与最低价格范围区间内"/> <rule name="tipRule" value="为避免一口价变动引发的违规,请谨慎输入价格。" url="http://rule.tmall.com/tdetail-1168.htm?tag=self"/> </rules> <default-value>338.00</default-value> </field>
TipRule est généralement utilisé pour les règles complexes qui ne peuvent pas être directement décrites. L'ISV doit divulguer la règle à l'utilisateur sur la page
2. DevTipRule
Prenez la suite. modèle de vente à titre d'exemple :
<field id="after_sale_id" name="售后说明模板ID" type="input"> <rules> <rule name="valueTypeRule" value="long"/> <rule name="devTipRule" value="请使用taobao.aftersale.get接口获取售后说明模板信息" url="//open.taobao.com/apidoc/api.htm?path=cid:4-apiId:10448"/> </rules>
DevTipRule est généralement utilisé pour donner des conseils aux développeurs et n'a pas besoin d'être affiché aux utilisateurs. Les développeurs peuvent obtenir des informations spécifiques via cette règle, telles que la manière de les obtenir. Informations sur le modèle après-vente dans l'exemple.
3.DisableRule
Prenant l'heure de début comme exemple :
<field id="item_status" name="商品状态" type="singleCheck"> <rules> <rule name="requiredRule" value="true"/> </rules> <options> <option displayName="出售中" value="0"/> <option displayName="定时上架" value="1"/> <option displayName="仓库中" value="2"/> </options> <default-value>0</default-value> </field> <field id="start_time" name="开始时间" type="input"> <rules> <rule name="valueTypeRule" value="time"/> <rule name="disableRule" value="true"> <depend-group operator="and"> <depend-express fieldId="item_status" value="1" symbol="!="/> </depend-group> </rule> </rules> </field>
DisableRule=true signifie que le champ peut être ignoré. Il apparaît généralement dans un groupe avec depend-group et est utilisé pour décrire la relation de dépendance entre plusieurs champs. Par exemple, l'heure de début dans l'exemple dépend de la valeur du statut du produit qui est 1 (sortie planifiée). On peut comprendre que ce n'est que lorsque la valeur de fieldId="item_status" n'est pas égale à 1, disableRule. est vrai Ce n'est qu'à ce moment-là qu'il a été établi.
4. Règles avec unités
6. Instructions d'utilisation du système de schéma
En prenant comme exemple la mise à jour incrémentielle des titres de produits, lorsqu'un commerçant modifie les titres de produits, elle peut généralement être divisée en les étapes suivantes :
Obtenir des incréments mises à jour du produit Toutes les règles XML requises
Utilisez le SDK Schema pour lire la règle XML, obtenez un List<Field> via readXmlForList, puis appelez la méthode readXmlForMap pour lire une carte. La clé de la carte est FieldId, puis appelez le SDK. La méthode setValue définit la valeur de chaque champ. Après avoir terminé l'assemblage des données de tous les champs, les informations sur le produit XML sont générées via la méthode writeParamXmlString
1. Exemple simple
String sessionKey = “该商品对应卖家的sessionKey”;
Long itemId = 40905418326L;
String xmlData = '<?xml version="1.0" encoding="UTF-8"?><itemParam><field id="update_fields" name="更新字段列表" type="multiCheck"><values><value>title</value><value>title</value></values></field></itemParam>';
TaobaoClient client=new DefaultTaobaoClient(url, appkey, secret);
TmallItemIncrementUpdateSchemaGetRequest req=new TmallItemIncrementUpdateSchemaGetRequest();
req.setItemId(itemId);
req.setXmlData(xmlData);
TmallItemIncrementUpdateSchemaGetResponse response = client.execute(req , sessionKey);
String xmlStirng = response.getUpdateItemResult();
List<Field> fieldList = SchemaReader.readXmlForList(xmlStirng);
/**
* 对fieldList进行各种修改操作数据组装
*/
String addXml = SchemaWriter.writeParamXmlString(fieldList);
TmallItemSchemaIncrementUpdateRequest addReq = new TmallItemSchemaIncrementUpdateRequest();
addReq.setItemId(itemId);
addReq.setXmlData(addXml);
TmallItemSchemaIncrementUpdateResponse updateRes = client.execute(updateReq , sessionKey);
Long itemId = Long.parseLong(updateRes.getUpdateItemResult());
2 .
3. Une mise à jour incrémentielle complète des informations produit xml du titre
InputField field1 = new InputField(); field1.setValue("input值"); SingleCheckField field2 = new SingleCheckField(); field2.setValue("singleCheck值"); MultiInputField field3 = new MultiInputField(); List<String> values1 = new ArrayList<String>(); values1.add("multiInput值"); field3.setValues(values1); MultiCheckField field4 = new MultiCheckField(); List<Value> values2 = new ArrayList<Value>(); values2.add(new Value("multiInput值")); field4.setValues(values2); ComplexField field5 = new ComplexField(); ComplexValue complexValue = new ComplexValue(); complexValue.setInputFieldValue("inputId", "input值"); complexValue.setSingleCheckFieldValue("checkId", new Value("input值")); field5.setComplexValue(complexValue); MultiComplexField field6 = new MultiComplexField(); List<ComplexValue> values3 = new ArrayList<ComplexValue>(); ComplexValue complexValue2 = new ComplexValue(); complexValue2.setInputFieldValue("inputId", "input值"); complexValue2.setSingleCheckFieldValue("checkId", new Value("input值")); values3.add(complexValue2); field6.setComplexValues(values3); LabelField field7 = new LabelField(); LabelGroup labelGroup = new LabelGroup(); Label label = new Label(); label.setDesc("label描述"); labelGroup.add(label); field7.setLabelGroup(labelGroup);
4. Une règle XML complexe et des informations XML
Règle XML :http://yunpan.taobao.com/s/1IcqnB2UBuF
Entrez Informations de référence XML : http://yunpan.taobao.com/s/8cdLFtDxi2
7. Idées d'amarrage du système de schéma
Dans l'amarrage du système de schéma, les idées précédentes doivent être ajusté. Faites attention à trois points :
1. Détection des changements
L'activité évoluant très rapidement, le développeur met en place une fonction de détection des changements. Pour les commerçants Tmall, les règles sous la catégorie correspondante du commerçant sont régulièrement. extrait tous les jours, comparez les différences XML et ajustez le traitement commercial en fonction des différences
2. Cartographie dynamique
? les développeurs doivent implémenter une fonctionnalité de mappage dynamique pour chaque commerçant, en mappant les données locales avec les éléments de la structure XML renvoyés en ligne un par un et en modifiant la méthode précédente de codage en dur des paramètres. C'est la chose la plus importante pour accéder au. système de schéma Choses3. Faites attention au type de champ
Lors de la mise en œuvre, les développeurs doivent prendre en compte le type et les règles du champ, et faire attention aux méthodes de traitement des différents types de champs et aux pré- vérification et transparence des différentes règles, tandis que les champs commerciaux sont gérés par des capacités de cartographie dynamique
8. FAQ
Q : Comment demander la mise à jour de la liste des champs lors de l'utilisation de l'interface incrémentielle pour mettre à jour les arguments de vente ?
A : Vérifiez l'entrée si l'option de l'argument de vente correspondant dans la règle XML obtenue via l'interface get est transmise dans update_fields dans le XML. La plage de toutes les valeurs doit être obtenue conformément à la règle XML.
Q : L'erreur de type suivante a été rencontrée :
[msg] => Erreur de service à distance
[sub_msg] => ; Erreur d'attribut « Matériel de compte, matériel de compte externe » : attribut de catégorie dans Les attributs standard n'existent pas : matériel de compte inférieur, matériel de compte externe
A : Généralement, les attributs de la catégorie sont ajustés par les serveurs de l'industrie lors de la rencontre. cette situation que ce soit pendant la sortie ou la mise à jour du produit, s'il s'agit d'un produit Tmall, appelez l'interface tmall.product.update.schema.get pour obtenir les règles de mise à jour du produit, mettez à jour le produit conformément aux règles, puis mettez à jour le produit et publier le produit ; s'il s'agit d'un produit du marché, obtenir directement la dernière règle XML puis mettre à jour ou publier les produits.
Q : L'erreur suivante a été rencontrée :
{"error_response":{"code":15,"msg": "Erreur de service à distance", "sub_code": "isv.invalid-parameter:cid", " sub_msg":"La catégorie de produits n'est pas autorisée, veuillez resélectionner la catégorie","request_id":"9wy7rnl2x7k7"}}
A : Apparaît généralement dans les marchands Tmall. Tmall a une liste de catégories de produits que les marchands peuvent publier. et les marques sont contrôlées. Les développeurs peuvent appeler l'interface tmall.brandcat.control.get pour obtenir les catégories que le commerçant actuel est autorisé à publier et contrôler la plage d'ID de catégorie dans l'interface dans le schéma.
FAQ
- Il n'y a pas encore de FAQ sur ce document