商品のフィードを Amazon に送信すると、次のように、一致しなかった商品の提案を含むエラー レポートが返されます。
18 998 8042 エラー "SKU '998'ASIN B0001FSZ6K 'item_name' マーチャント値: 'Promax Nutrition プロマックス バー - モカ ブラスト' Amazon カタログ値: 'プロマックス バー、モカ ブラスト 12 バー'. ASIN B00024D3HQ 'メーカー' マーチャント値: 'プロマックスNutrition' Amazon カタログ値: 'PROMAX' 'item_name' Merchant 値: 'Promax Nutrition Promax Bar - Mocha Blast' Amazon カタログ値: 'Promax Gourmet Bar Mocha Blast 12 bar'."
この例では、「Merchant value:」が送信されたもので、「Amazon catalog value:」がほぼ一致しています。
これらの値を抽出して、フィードの送信を調整し、エラーのあるアイテムを再送信できるようにしています。私はこの正規表現を一緒にハックしました:
(Merchant value\:) (')(.+?)(')( Amazon catalog value\: )(')(.+?)(ASIN)
これはほとんど機能します。私はグループ 3 と 7 を引っ張って、自分の価値観を持つことができます... 時々。残念ながら、いくつかの提案は次のようになります。
Merchant value: 'Barleans' Amazon catalog value: 'Barlean's Organic Oils'
したがって、ダニは試合を中断します。最後の一致を「'」に変更して「's」を無視できると思いますが、正規表現がまったく効率的かどうかはわかりません。また、コーナーケースで壊れやすいこともわかっています。
明確にするために編集します。
私が取得しようとしているデータは次のようになります。
SKU (最初の例では 998) 次に、各提案について: フィールド (アイテム名またはメーカー) 当社の値 Amazon の提案値
したがって、次のようになります。
998 | アイテム名 | プロマックス ニュートリション プロマックス バー - モカ ブラスト | プロマックス バー、モカ ブラスト 12 バー