Yandex.MarketのYMLを修正します。 プログラマーの外観


多くのオンラインストアはYandex.Marketに分類されますが、すべてのストアが長い間存在しているわけではありません。 NMに存在するための条件の1つは、特別なYML形式で正しい価格が存在することです。



このような価格表にエラーがないかどうかを確認し、それらを排除することが全体の話です。 すべての規則に従って形成されるまで、このダンピング王国への入場が命じられます。 そして、ドキュメントを思い浮かべるとき、多くの忘れられない感情を経験することができます。



この記事は、プログラマーがYMLファイルを生成するためのツール(スタンドアロンスクリプトまたはCMS用プラグイン)を初めて作成する際に遭遇するミスを要約する試みです。 この素晴らしいフォーマットを以前に扱った人にとっては、記事はそれほど面白くないでしょう。なぜなら、すべてのバンプが一杯だからです。 しかし、突然、Yandexの太陽の下で自分たちの場所をめぐる闘いの退役軍人は、自分にとって何か新しいことを学ぶでしょう。 そして、彼らは独自の最前線の経験を共有します。



エラー分類



  1. 無関係なエラー



    • 間違ったコーディング。 古き良き時代につまずいた最初のこと。 ほとんどのエンジンはUTF-8で実行され、NMはかつて好みのWindowsエンコーディングのみを必要としました。 うわさによると、気まぐれなヤシャはだまされる可能性があります-「税関がゴーサインを与えた」後、店を承認する際に神のないcp1251に同意するふりをして-価格を人種的に忠実なUnicodeに置き換えることは安全です。 興味深いこと-​​CSV(YMLの望ましくない代替として)Yandex.MarketはUTF-8のみを受け入れます:)


    他のすべての熊手はまだそこにあります。



  2. XML仕様エラー




    YMLはXMLの特殊なケースです。 そのため、基本的なルールに従う必要があります。 <?Xml?>および<!DOCTYPE>の必須の存在を忘れないでくださいタグの適切なネストを監視し、「壮大な5」( "<>' )をニーモニックに置き換えます。



    さらに、ニーモニック自体では、そのニーモニックの記号&amp; 変更する必要はありません。変更しないと、何らかの無限再帰が発生する可能性があります。 htmlspecialchars関数をテキストに適用する前に(たとえば、<description>要素の場合)、最初にニーモニックが既に存在する可能性があることに注意してください;)



  3. 重大なYMLエラー



    現在、価格はコーシャーXMLですが、Yandexはそれを受け入れることを断固として拒否しています。 さらに理解しています。



    • 要素の使用におけるエラー。 公式ドキュメントを慎重に3回(さらに良いのは5回)読み直し、グローバルタグ(<yml_catalog>、<shop>)を忘れず、名前の正しい綴りに従い、仕様に存在しないタグを作成するという形でギャグを処理せず、階層全体を整理しますyml-fu-shu、パラメータを正しく指定するなど。




    • 必要な要素が不足しています。 初心者ではなく、初心者の最も一般的な間違い。 特に、 オファーの作成時にこれがポップアップすることがよくあります 。 あるタイプの説明にはオプションのタグが必要になる場合があります。 たとえば、<vendor>。 製品の簡単な説明を使用していて、突然vendor.modelをやり直すことにした場合、これに遭遇する可能性があります。



    • 要素の標準的な順序ではありません。 非常に厄介な間違いで、初めて遭遇した人にとっては息をのむようなものです。 Yandexが冷静にそのような位置がそのようなものであり、そのような何かが間違っている主張し 、疑わしいものは示された場所にはっきりと見えない状況(さらに、グーグルフォーラムとオフドキュメントの瞑想は効果をもたらさない)白熱まで。

      そして、theはちょうど開きます-要素は、仕様にリストされている順序で正確に行く必要があります。 ここでは、 簡単な説明で、最初に製品名、次に製造者の名前を入力します。 そして、 vendor.modelで、最初にメーカー、次に製品の名前を入力します。 そして、決してその逆ではありません。



    • IDによる製品の繰り返し。 触れると、このエラーは2つの異なる方法ですぐにYandexによって生成されます(誰も混乱しないように)-最初に、誤った識別子を持つ要素がリストされ、次に重複したオファーのリストがあります。

      恐怖があれば、実際よりも2倍のエラーがあると判断できます。 そして、すべてが重複して明確になっている場合、初心者はまだ正確に間違っている識別子が間違っているものを推測する必要があります。



  4. 重大ではないYMLエラー




    Yandexはほとんど喜んでいます。 もう少し作業します。



    • 無効なURL。 多くの場合、これらはリンクであり、たとえば、空白文字やロシア文字が含まれています。 一般に、データベーステーブルの多くのエンジンには、通常、製品ページへの直接リンクを格納するフィールドがあります。 通常、これらのリンクのほとんどすべてのCMSには大量のゴミがあるため、通常は自分で生成する必要があります。



    • 価格は0です。ここでは、プログラマーはコンテンツマネージャーと相談する必要があります。 または、ゼロ価格をフィルタリングしますが、コストを示すのを忘れた商品はすぐには記憶されません。 または、フィルタリングせずに、コンテンツマネージャーが将来的にYandexのクレームに対処できるようにします。



    • 無効な画像リンク。 まあ、話は間違ったURLの場合とほぼ同じです。 多くの場合、データベースに登録されている画像は自然界には存在しません。 次の<picture>を実行する前に-ファイルを確認してください。 画像は利用できるが、タイトルに不幸なスペースがある場合、 RFC3986でリンクをエンコードします( rawurlencode関数が役立ちます)。





  5. その他のエラー



    OK、すべての欠陥が完全に排除され、Yandexに供給されたyml-priceは吐き出されません。 しばらく待って、数日後にNMマネージャーからの「幸福の手紙」が届き、次のことを通知します。



    • 製品ラインが別のストアから遅れている。 法律の厳しさによって罰せられる特に深刻な犯罪。
    • 価格リストで、重複を継続的に検索して発見しました!
    • ところで、いくつかのリンクは間違った場所に通じています。
    • この分類を作成したバカは何ですか?
    • スタブは写真製品として使用されます。
    • 異なる製品の同じ写真。 では、メーカーの公式ウェブサイトが同じであるという事実はどうでしょうか?
    • また、一部の写真はサイトのものではありません。
    • <description>要素の濁った海域には、「魚」が浮かんでいます。
    • ストアには100%の前払いがありますが、これに関するオプションの <sales_notes>要素の本文にgu-guが含まれているのはなぜですか?
    • ああ、ご注文の商品は500個のうち1個だけですか? なぜそれはaviable = 'true'であり、 'false'ではないのですか?
    • 納期は3日です。2日以内に納品された場合、商品は「手頃な価格」と見なされます。
    • ...など。


    したがって、あなたのショップは、一週間から永久に、Y​​andex.Marketのトレーディングユニバースに存在しなくなりました。



    概して、このようなエラーはコーダーの能力の範囲外です。 コンテンツマネージャー、SEOの専門家、マーケティング担当者、またはサイトのコンテンツを監視するためにそこで他の人に負担をかけた他の特別に訓練された人々が責任を負います。 ただし、プログラマーがここで役立つ場合があります。 たとえば、何らかの理由で「 Lorem ipsum 」および「 bla bla bla 」で始まるスタブ画像(標準名で識別)をフィルタリングしたり、製品の説明が欠落していない場合。





エラーをチェックする方法と場所



これらの多数のブループをすべてこの順序でキャッチするのが最も簡単です。





参照資料



ヤンデックス:



公式YML仕様

データ転送方法の要件

バリデーター

質疑応答

プロモーション要件



ハブラハブル:



Yandex.Market-あるかどうか?

Yandex.Marketでの商品の配置。 一般的な問題とその解決策

Yandex、Market、およびインターフェース全般に関する夜のうなり声



世論調査




All Articles