Shopify Summer24の新機能で、「カテゴリーメタフィールド」がある。
これに仕様の不具合があり(2024.8.6現在)、Shopifyサポートにもこの不具合を確認いただいたので、確実なソースです。
カテゴリーメタフィールド
https://help.shopify.com/ja/manual/custom-data/metafields/category-metafields
商品管理画面
さっそく新機能を見てみます。
(画面赤枠部分)ここに「カテゴリー」というフィールドが出現しました。
何も疑わずこの画面上で登録するストア管理者の方は、「こんな入力枠あったかな?」と思いつつ、
こんなに「ここに入力してね!」的に設置されていたら、ここに該当するカテゴリーを、プルダウン形式で選択して登録することになります。
このへんのUIの妙な主張がストア管理者の認識をそのように揺さぶるところから、今回の不具合は面倒な話になっていきます。
カテゴリー名を選択して登録
このようにプルダウンが出ますので、商品が該当するカテゴリーを選択。
プルダウン選択しかできません。自由入力不可です。(項目がすごい数あるので探すのも骨が折れます)
ようやく見つけて、以下を登録してみます。
ジュエリー > ネックレス
すると、「6個のメタフィールド」という表示が右上に出現します。
画面を下にスクロールします。
6個のメタフィールドが有無を言わさず出現しました。
こんなにフィールドが用意されているのだからストア管理者は普通に入力しますよね。
、、で、入力したメタフィールドはどこに表示されるの?
はい、当たり前に次はこうなりますよね?
そしてエンジニアの仕様調査になります。
このフェーズになって、この記事を検索で見つけたエンジニアさまもいるのではないでしょうか?
結論、ここに登録したからといってフロント画面上で自動で表示されません。
表示するための仕組みは、これまでのメタフィールド同様、自力でliquidを書く必要があります。
じゃあliquid書けばいいよね!→どこに表示する?と、気がついたらこの主張が激しすぎる新仕様に揺さぶられて新規要件作成が始まりかけますが、
落ち着いて状況を整理しましょう。
※これから対応されるかもですが、Shopify純正のコレクションフィルターアプリ”Search & Discovery”ではこのメタフィールド情報を利用できませんでした。
なので「コレクションフィルターのセグメントに使おう」の策もなくなりました。(2024.8.6現在)
商品のCSVインポートで、これらのメタフィールドがはじかれる!(Shopifyサポート確認済)
さらに嫌なことに、、
このカテゴリーメタフィールドは、csvエクスポートはできても、csvインポートできません。
以下は商品管理画面から、csvをインポートしたときの失敗レポートです。
オーナーのサブタイプがメタフィールド定義の制約と合致しません。
と記載があります。ここでまたややこしいというか、翻訳が完全に間違っているように思うのですが、
ここでいうオーナーは、ストアのオーナーではないようです。
文脈からも推測できますが、メタフィールドの親にあたる存在を指していると思われます。
Shopifyサポートからいただいた結論から言うと、この「オーナー(メタフィールドの親にあたる存在)」つまり「カテゴリー名」なのですが、
「カテゴリー名」が英語登録でないためにエラーが発生します。
でも上でも記載していたとおり、ここってプルダウンなので直接入力できない。。じゃあどうするかというと、
Shopify管理画面右上のストアアイコンをクリック後、「アカウントを管理する」から、
自分のアカウントで使用している「言語」を「日本語」から「English」に変更。
「English」にして「保存」を忘れず。
その上で、商品管理画面のカテゴリー名選択をすると、先程まで日本語だったカテゴリー名が英語になっています。(言語によって動的に変化します)
この状態で商品csvをエクスポート、それをインポートすればエラーをはかれずに正常に取り込まれます。
メール通知で来るレポートも英語になっています。
そうしたら、アカウントの言語を日本語に戻してダイジョブです。。
カテゴリーメタフィールドはcsvエクスポートするたびにこれをしないとcsvインポートができなくなります。(2024.8.6現在)
カテゴリーメタフィールドに何かしらの登録がされた商品は、エクスポートしたcsvを無加工でそのままインポートしても上記エラーが出ます。
この検証でようやく、「仕様的に明らかにこんなことはおかしい」と仕様を疑うことができました。
個人的結論
そういう不具合であることがわかり、逆に安心しました。「不具合=こちらで努力でカバーできることではない」となることで、
突如発生した上に、解決できるまでの時間が未知数(はじめは原因が全くわからないから)のこうした突発罰ゲームのような問題を諦められました。
僕が体験したことは、以下となります。
①新機能で柔軟にメタフィールドが作られる!そこにフィールドがあるので登録が進められる。
↓
②登録したんだけど、どこにも表示されないとなりエンジニアにて調査が求められる。
↓
③数少ない(現時点で情報ほぼゼロでした)ソース調査、Shopifyサポートの確認を経て、自力で工事しないとフロントには表示できないことがわかる。
↓
④しかも、ストアにそれまでに用意していたメタフィールドと項目が重複するフィールドもバンバン自動出現してくるので、カオス。どこに表示とか以前の問題で、カテゴリーメタフィールドのせいで話やデータ管理ががややこしくなっている。例えば、すでに「性別」「対象年齢」というフィールドで運用していても、カテゴリーをセットしたら新規メタフィールドに「対象性別」「年齢層」という項目が出現する。。しかも非表示にできないので空白にしていたらしていたで管理画面上で見た目が気持ち悪い。(なのでここを使わないのは非常によろしくないのではないかという気持ちも発生する。UIが「新機能である俺を絶対使えよな!」と主張しています。。)
↓
⑤しかも(偶然このタイミングで見つけられてマジよかったのですが)アカウントの「言語」を英語にしてcsvエクスポートしたカテゴリーメタフィールドのデータでないと、csv取り込みできなくなる。。
なので、個人的結論として、いったんこの「カテゴリーメタフィールド」は仕様が安定して運用できることを確認できるまで、使用しない方針になりました。
、、という結論に着地するストアもあると思いますし、それまでメタフィールドを作ってこなかった商品登録状態では逆に、この検索軸は新しい!と映り、なんとか活用しようと新規要件があがるかもしれません。
※そして、記載した通り普通のメタフィールド以下の汎用性なので、普通の実装より仕様ハンデを背負って、より難しい使用方法を模索することになると思います。。本当なんなんだこのメタフィールド。。
昨今の検索アルゴリズム的には世界共通規格の商品カテゴリーを使用していこうじゃないかという動きだと推測、または、少なくともShopifyのストアではカテゴライズを共通化しようという意図を感じますが、筆者は第一印象が最悪でしたので、仕様が不安定なベータ版を早期リリースしたような印象で、いきなり使い始めるにはその代償が大きいと感じました。
いずれにしても、再び管理画面のUIをのせますが、商品のカテゴリーを登録したかと思ったら、下にこんなにおおきな空白フィールドが出てきたら、登録しないとだめだと思いますよね!
そして当然登録されていって話が浮上するんですが、英語圏以外の全世界のShopifyストアで僕が体験したことと同じような混乱を起こしている(or これから起こしていく)ような。。
Shopifyの新機能はほかにもたくさんあって、Shopfyは効率的に仕様変更のログを以下のページでひっそりと発表はしています。
本件が上がってくるかは不明ですが、、なにか変更があったと思ったらここを見てみてね!というのがShopifyの意向です。
本件のやばいところは、僕が先にカテゴリーメタフィールドの話から入っていなければ、カテゴリーメタフィールドが原因でcsvがインポートできないことも推測が難しかったこと。
なんせエラーレポートが前述したとおり「オーナーのサブタイプがメタフィールド定義の制約と合致しません。」だから、翻訳のせいか、原因特定しにくい表現をしているため、
csvインポートからトラブルにあたった方は、原因特定まで何時間も無意味に取られるはめになります。ストアオーナーの権限設定の問題?とか疑っちゃいますよね(オーナーはフル権限)。スタッフが商品登録していもオーナーがオーナーが、とエラーを吐いてくるので。
このエラーメッセージできちんと、「csvをインポートした登録者の方の「アカウントの言語」が”English”じゃないのでカテゴリーメタフィールドはインポートできませんでした」と明確に記載してくれたらいいんですが。。
なので、同様の事象にあたったかわいそうな方は、この記事を読んで、時間を無駄にせず解決できることを祈ります!