製品リリース


1. ドキュメントの説明

このドキュメントは天猫/淘宝網を対象としています (保険、ホテル、チケット、旅行はサポートされていません) ) ) サードパーティ開発者または自社開発の製品管理販売者;

2. 背景の紹介

スキーマシステムとは、Tmall/バザール製品管理プラットフォームの頻繁な変更が開発者にもたらす開発コストと保守コストを解決するために、オープン プラットフォームと Tmall/淘宝網製品チームが共同で定義した新しいオープン API 仕様セットです。天猫/タオバオ商品プラットフォームはオープンプラットフォームAPIを利用し、開発者に近い言語で商品管理に関わる要素やルールをxml形式で返し、開発者がxmlを解析した後、それに基づいて商品情報xmlを生成します。 XML 内のルールと要素に基づいて、オープン プラットフォーム API を呼び出してアップロードし、製品管理を完了します。

スキーマ システムに基づいて製品管理ツールを開発する場合、開発者がアプリケーション内で動的マッピングを確立して、取得した XML とデータを管理することが最も推奨されるソリューションです。ローカル DB のデータ関係を変更するため、Tmall/淘宝網が変更されると、取得される XML も変更されますが、このとき、動的マッピング管理で XML とローカル DB 間の新しいマッピング関係を設定するだけで、変更に適応できます。元の天気の変更 Mao/Taobao が変更されるとすぐに、開発者はそれに応じてコードのステータスを変更する必要があります。

3. リソースを開く

1. API

スキーマ システムを使用して完了します。商品管理 以下のAPI(画像アップロード、価格、在庫変更は独自APIを使用)

//open.taabao.com/doc/api_cat_detail.htm?scope_id=11430&category_id=102

# 2 . SDK

新しいシステムを使用して製品管理ツールを開発するには、SDK の 2 つの部分が必要です:

a. TOP API SDK - ダウンロード方法と古い方法 アプローチに一貫性を持たせてください。

b. スキーマ SDK - オープン プラットフォームは、製品ルール XML を解析し、製品情報 XML を生成するための別の SDK を提供します。ダウンロード アドレスはクラウド ディスク アドレスです。 http ://box.cloud.taabao.com/file/downloadFile.htm?shareLink=qUMsITX

PHP バージョン SDK HappyGo for co の学生に感謝します-それを構築します。

3. テスト アカウント

現在、テスト用のサンドボックス環境が提供されており、すべての開発者がサンドボックス テスト アカウントを使用できます。テスト用、サンドボックス テスト アカウント: mallb140 (パスワード: tmall1234)、サイズ ライブラリ カテゴリのテストにはカテゴリ 50008901 を使用し、通常のカテゴリにはカテゴリ 162116 を使用してください。

4. サポート チャネル

開発者がこのドキュメントをよく読んだ後、質問がある場合は、Want Want グループ (836280177) に参加して相談してください。

4. サポート範囲

#4.1 スキーマ システムの範囲

# スキーマ システムは、Tmall のカテゴリ全体をサポートできます。製品管理、市場インターフェイスは 6 月までに完全にオープンされる予定です;

Tmall 開発者は次の発表に注意する必要があります:

//open.taabao.com/support /payment_detail.htm? id=24939

4.2 スキーマシステムを利用した商品管理に関する注意事項

#4.2.1 Tmall の新商品

更新にスキーマ システムを使用する場合、それがダーウィン システムであるかどうかを判断する必要はありません。 Tmall で新商品を呼び出す基本的なプロセスは次のとおりです。

1. ユーザーの判断

天猫市場のスキーマ システムには 2 つのスキーマ システムがあるため、インターフェイスを設定するには、

taabao.user.seller.get を使用して、現在のストアが Tmall に属しているかどうかを判断し、Tmall スキーマ インターフェイスを呼び出す必要があります。

2. 商品の検索

Tmall 上のすべての商品は特定の商品にリンクされているため、ユーザーが新しい商品を追加するときは、まず既存の商品があるかどうかを確認する必要があります。 Tmall の商品。他の販売者がすでに商品情報をアップロードしています。商品がない場合は、新しい商品をアップロードし、商品のステータスが利用可能になるまで待ってから、新しい商品をリリースする必要があります。

tmall.product.match.schema.get インターフェイスを呼び出して製品一致ルールを取得し、ルールに従って製品一致 XML を生成し、 を呼び出します。

tmall.product.schema.match製品マッチングを実行します。製品が一致した場合は、tmall.product.schema.get を呼び出して製品をクエリしますtrue が返されれば問題ありません。商品を直接公開します。それ以外の場合は待つ必要があります。一致が空の場合は、現在リリースされる商品には Tmall で入手可能な商品情報がなく、新しい商品が公開されることを意味します。最初に解放する必要があります。 tmall.product.add.schema.get インターフェイスを呼び出して製品リリースに関連するルールを取得し、ルールに従って製品リリース XML を生成し、tmall.product.schema.add を呼び出します。製品を公開するには、同じです。tmall.product.schema.get を呼び出して製品のステータスをクエリする必要があります。true が返された場合、製品は直接リリースできます。それ以外の場合は、待つ必要があります。 tmall.product.add.schema.get が空の場合、カテゴリにはキー属性がなく、製品を直接公開できることを意味することに注意してください。

3. 製品リリース

適合商品ステータスが true の場合、新しい商品を追加できます。 tmall.item.add.schema.get を呼び出して製品リリースのルールを取得し、ルールに従って新しい製品 XML を生成し、tmall.item.schema.add を呼び出して更新します。写真をアップロードするときは、taabao.picture.upload インターフェースを使用してください。

製品を公開するときに、レポート [isv.item-service-error:ITEM_PROPERTIES_ERROR--"xxx" 属性エラー: カテゴリ属性が標準属性に存在しません) が発生することがあります。 ] このタイプのエラーは、通常、業界のウェイターがカテゴリ属性を調整することによって発生します。tmall.product.update.schema.get インターフェイスを呼び出して製品更新ルールを取得し、必要なルールがあるかどうかを確認する必要があります。要素の値が空の場合は、製品更新情報 XML を再生成し、tmall.product.schema.update インターフェイスを呼び出して補足を完了します

4. 特別なヒント

開発者が特定のカテゴリに属する​​製品の新しいルールをすべて取得する必要がある場合は、tmall.product.add.schema.get インターフェイスを呼び出して取得することもできます。製品リリースに関連する情報ルールを入力し、パラメータを入力するときは、product_id が 0 で渡され、isv_init が true で渡され、tmall.item.add.schema.get を呼び出して、製品リリースの一般的なルール (すべてのルールではありません)。

4.2.2 天猫商品編集

## 1) 商品価格編集

製品と SKU の価格には、独立した製品価格更新インターフェイス tmall.item.price.update を使用することをお勧めします。

2) 商品在庫の同期

在庫の同期には、独立した商品在庫同期インターフェイスtaobao.item を使用することをお勧めします。 3) 製品タイトルおよびその他の情報の更新

スキーマ システム インターフェイス 一部の要素をサポートします (TITLE (タイトル)、SUBTITLE (サブタイトル、セールス ポイント)、SHORT_TITLE (ワイヤレスの短いタイトル)、DESC (PC の説明)、WAP_DESC (ワイヤレスの説明)、FENQIGOU (分割払い)、VERTICAL_IMAGE (縦の図)、DRESS_ONLY_FOR_TMALL (Tmall 限定)、SHOP_SAME_STYLE (ショッピング モールの同じスタイル) ) 増分更新をサポートするパラメーターについては、インターフェイスの戻り値を参照してください。

開発者は tmall.item.increment.update.schema.get インターフェイスを呼び出して、特定の製品 ID と更新する必要があるフィールドを渡します (

これも xml です。タイトルのみを変更した場合、xml の update_fields の値は title のみに設定されます。複数の更新を行う必要がある場合は、複数の値が設定されます ) に従って、この製品のこのフィールドを更新するためのルールを取得します。ルールは増分更新製品 XML を生成し、tmall.item.schema.increment.update を呼び出して増分更新を完了します。更新された製品 XML を生成するときは、取得したルールの すべてのフィールドをデフォルト値でアセンブルし、 を返す必要があります。

増分更新でサポートされる要素は拡張される可能性があるため、ユーザーは毎日 tmall.item.increment.update.schema.get インターフェイスを呼び出してパラメーター item_id のみを入力することをお勧めします。現在の製品のカテゴリを取得します。プロジェクトは要素の増分更新をサポートしています。

開発者は、パフォーマンスが向上し、エラーが少なくなるように、インクリメンタル インターフェイスでサポートされる各要素を個別にカプセル化することをお勧めします。

4) その他の情報の更新

上記の情報に加えて、他の製品情報の更新もスキーマ完全更新インターフェイスを使用して更新する必要があります。 。 tmall.item.update.schema.get を呼び出して完全な製品更新ルールを取得し、ルールに従って製品更新情報 XML を生成します ( 必要のないすべての情報)変更されたものはデフォルト値に戻す必要があります。パス ) を呼び出し、tmall.item.schema.update を呼び出して更新します。

#4.2.3 淘宝の新商品

新しい淘宝の商品を呼び出す基本的なプロセスは次のとおりです:

1. ユーザーの判断

スキーマ システム Tmall/Market には 2 つのインターフェイス セットがあるため、taabao.user.seller.get を使用する必要があります。現在のストアを判断するため タオバオ スキーマ インターフェイスは、それがタオバオに属している場合にのみ呼び出すことができます。

2. 製品リリース

taabao.item.add.schema.get を呼び出して製品リリースのルールを取得し、ルールに従って新しい製品発売 XML を生成し、taabao.item.schema を呼び出します。 .add 商品を更新する場合、写真をアップロードする際は taabao.picture.upload インターフェースを使用してください。

4.2.4 タオバオ製品の更新

1) 製品価格の編集

製品と SKU価格を更新するには、独立した商品価格更新インターフェイス taabao.item.price.update を使用することをお勧めします。

2) 商品在庫の同期

在庫の同期には、独立した商品在庫同期インターフェイスtaobao.item を使用することをお勧めします。 3) 製品タイトルおよびその他の情報の更新

スキーマ システム インターフェイス 一部の要素 (タイトル、ホットスポット、説明、およびワイヤレス説明 ) の増分更新をサポートします。増分パラメータをサポートするには、インターフェイスを通じて

すべてを渡すか、## を渡さないでください。 #得られたリターンが優先されます。

開発者は、taabao.item.increment.update.schema.get インターフェイスを呼び出して、特定の製品 ID と更新が必要なフィールド () を渡します。これも文字列です。たとえば、タイトルを更新するには、 で製品のこのフィールドを更新するためのルールを取得し、ルールに従って増分更新製品 XML を生成し、# を呼び出すだけです。 ##taabao.item.schema.increment.update で増加を完了します。数量を更新します。更新された製品 XML を生成する場合、取得したルールのすべてのフィールドをデフォルト値で組み立てて返す必要があります

増分更新でサポートされる要素は拡張される可能性があるため、ユーザーは taovao.item.increment.update.schema.get インターフェイスを毎日呼び出すことをお勧めしますパラメータ item_id のみを入力すると、増分更新をサポートする、現在の製品が属するカテゴリの要素が取得されます。

開発者は、パフォーマンスが向上し、エラーが少なくなるように、インクリメンタル インターフェイスでサポートされる各要素を個別にカプセル化することをお勧めします。インクリメンタル インターフェイスは、すべてのシナリオでインクリメントが成功することを保証するものではないことに注意してください。一部の運用ルールで強く要求されるデータの場合、インクリメンタル インターフェイスはルールによってチェックされ、エラーが報告されます。また、ワイヤレス記述 wl_description などの一部のモジュール フィールドでは、完全なモジュール全体が増分検証を均一に実行します。

4) その他の情報の更新

上記の情報に加えて、他の製品情報の更新もスキーマ完全更新インターフェイスを使用して更新する必要があります。 。 taabao.item.update.schema.get を呼び出して完全な製品更新ルールを取得し、ルールに従って製品更新情報 XML を生成します ( 必要のないすべての情報)変更されたものはデフォルト値に戻す必要があります。パス ) を呼び出し、taabao.item.schema.update を呼び出して更新します。

5. スキーマ システムの説明

製品のスキーマ構造は複数のフィールドで構成されます。次の例は、製品増分ルール取得インターフェイス (tmall.item.increment.update.schema.get) を通じて取得したルール XML の一部です。

# 上記のフラグメントから、製品のタイトル ルールが XML 上のノードを介して出力されていることがわかります。スキーマ構造の下にフィールドがあることがわかります。 ID、名前、タイプの 3 つの項目が含まれています。コンテンツには複数のルールとデフォルト値も含まれています。このフラグメントによると、製品のタイトルが入力タイプのフィールドであることがわかります。値のタイプはテキスト、必須、および文字の長さは 1 文字以上 30 文字以下であり、現在の商品タイトルは Handu Yishe 韓国語版 2014 秋冬新作女性ハイカラー プルオーバー ロング ソリッド カラー セーター TK4178婏です。

完全なスキーマ構造は次のように構成されています。

開発者が必要とするもの特別な注意を払う必要があります。 いくつかのタイプがあります: TB1V8mpGpXXXXcgaXXXwu0bFXXX.png

1. TipRule

## 価格を例に挙げます:

  <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>


TipRule は通常、直接説明できない複雑なルールに使用されます。ISV はルールをページに公開する必要があります。 .User

2. DevTipRule

## アフターセールス テンプレートを例として挙げます:

  <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>


DevTipRule は通常、開発者にヒントを提供するために使用され、ユーザーに表示する必要はありません。開発者はこのルールを通じて、次のような特定の情報を取得できます。取得方法については、アフターセールステンプレート情報の例を参照してください。

3.DisableRule

開始時刻を例に挙げます:

  <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>


#

DisableRule=true は、フィールドを無視できることを意味します。これは通常、depend-group を持つグループに表示され、複数のフィールド間の依存関係を記述するために使用されます。例えば、例の開始時間は、商品ステータスの値が1(発売予定)であることに依存しており、fieldId="item_status"の値が1でない場合のみ理解できる。 , disableRule は、true の場合にのみ成立します。

4. 単位を含むルール

maxTargetSizeRule と minTargetSizeRule には、ルールの単位を表すunit 属性があります。これら 2 つのルールの単位には主に、ファイル サイズの単位を表す kb、mk、gb などが含まれます。
## maxLengthRule と minLengthRule には、長さの測定単位を表す単位属性もあります。単位はバイトと文字の 2 つです。たとえば、文字列 "a漢字"、単位がバイトの場合、長さは 5 です。単位が文字の場合、長さは 3

6. スキーマ システムの使用手順

商品タイトルの増分更新を例にとると、販売者が商品タイトルを編集する場合、一般に次のように分類できます。次の手順:

  • 製品の増分更新時に必要なすべてのルール XML を取得します

  • スキーマを使用する SDK はルール xml を読み取り、readXmlForList を通じて List<Field> を取得し、次に readXmlForMap メソッドを呼び出してマップを読み取ります。マップのキーは FieldId であり、次に SDK の setValue メソッドを呼び出して、各フィールドの値、すべてのフィールドを完了します。データが組み立てられた後、writeParamXmlString メソッドを通じて製品情報 XML が生成されます。

  • スキーマ増分更新インターフェイスを呼び出して、製品情報 XML とその他のパラメータを渡して、製品タイトルの更新を完了します

## 1. 簡単な例

例として、製品 40905418326 の製品タイトルを増分更新します: (JAVA 疑似コード、呼び出しロジックの説明にのみ使用します)

  <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>


## 2. fieldList でのデータ アセンブリの操作方法

##

   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());

## 3. 完全な増分タイトル

の製品情報 XML の更新
    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. 複雑なルール XML と情報 XML

ルール XML :http://yunpan.taabao.com/s/1IcqnB2UBuF

入力パラメータ情報 XML: http://yunpan.taabao.com/s/8cdLFtDxi2

7. スキーマ システム ドッキングのアイデア

##スキーマ システムのドッキングでは、以前の考え方を調整する必要があり、次の 3 つの点に注意する必要があります。

1. 変更検出

ビジネスの変化が非常に速いため、開発者は変更検出機能を実装し、Tmall 加盟店の場合は、加盟店の対応するカテゴリにあるルールを毎日定期的に取得し、XML の差分を比較し、それに基づいて業務処理を実行します。調整;

2. 動的マッピング

開発者は、マーチャントごとに動的マッピング機能を実装し、オンラインで返される XML 構造の要素にローカル データを 1 つずつマッピングし、パラメーターをハードコーディングする以前の方法を変更する必要があります。スキーマ システムに関する重要な点

# 3. フィールドのタイプに注意する

# 実装するとき、開発者はフィールドのタイプとタイプを考慮する必要があります。フィールド ルールでは、さまざまな種類のフィールドの処理方法とさまざまなルールの事前チェックサム公開に注意してください。一方、ビジネス フィールドは動的マッピング機能によって処理されます

8. FAQ

Q: インクリメンタル インターフェイスを使用してセールス ポイントを更新するときにフィールド リストの更新を求める方法は?

A: incoming xml get インターフェースを通じて取得したルール xml 内のセールス ポイントに対応するオプションが渡されます。すべての値の範囲はルール xml

Q に従って取得する必要があります: 次のタイプのエラーが発生しました:

[msg] => リモート サービス エラー
[sub_code] => isv.item-add-service-error:ITEM_PROPERTIES_ERROR
[sub_msg] => “アカウント「底部マテリアル、外部アカウントマテリアル」属性エラー: カテゴリ属性が標準属性に存在しません: アカウント下部マテリアル、外部アカウントマテリアル

#A: 一般的に、業界のウェイターがカテゴリをペアにするための属性が調整されています。この状況が製品のリリース中またはアップデート中に発生するかどうかに関係なく、Tmall 製品の場合は、tmall.product.update.schema.get インターフェイスを呼び出します。製品更新ルールを取得し、そのルールに従って製品を更新し、その後、製品を更新して製品をリリースしますが、市販製品の場合は、最新のルール XML を直接取得して、製品を更新またはリリースします。

Q: 次のエラーが発生しました:

{"error_response":{"code":15,"msg":"Remote service error","sub_code " :"isv.invalid-parameter:cid","sub_msg":"製品カテゴリが承認されていません。別のカテゴリを選択してください","re​​quest_id":"9wy7rnl2x7k7"}}

# A: 通常、Tmall 販売者に表示されます。Tmall は、販売者が公開できる製品カテゴリとブランドを制御します。開発者は、tmall.brandcat.control.get インターフェイスを呼び出すことで、現在の販売者が公開できるカテゴリを取得し、スキーマ: インターフェースのカテゴリー ID の入力パラメーター範囲。

FAQ

    このドキュメントに関する FAQ はありません