カスタム入力値を持つ製品は、その全体の長さを保存せず、顧客の請求書は最初の 32 文字で切り取られます。
私が取り組んでいるストア内の 1 つの製品には、ユーザーが製品のカスタム値を入力するためのテスト領域があります。
この商品属性は、管理者から 150 文字に設定されていますが、誰かがそれを注文して記入すると、請求書ページで表示すると、入力した情報が 32 文字目以降で途切れてしまいます。
これを解決するにはどうすればよいですか?
カスタム入力値を持つ製品は、その全体の長さを保存せず、顧客の請求書は最初の 32 文字で切り取られます。
私が取り組んでいるストア内の 1 つの製品には、ユーザーが製品のカスタム値を入力するためのテスト領域があります。
この商品属性は、管理者から 150 文字に設定されていますが、誰かがそれを注文して記入すると、請求書ページで表示すると、入力した情報が 32 文字目以降で途切れてしまいます。
これを解決するにはどうすればよいですか?
データベースの列が小さすぎて、管理者で設定した可能性があるにもかかわらず、フリー テキスト フィールドをキャプチャできません。
注文が行われると、ショッピング カート内のアイテムごとの属性が orders_products_attributes テーブルに保存されます。テキスト フィールドが顧客が指定できる属性の一部である場合、これはその項目の行ごとに products_options_values 列に保存されます。
デフォルトでは、これはvarchar(32)
列です。つまり、管理コンソールで 255 に設定しても、データベースは最初の 32 文字しか保持しません。
phpMyAdmin または Adminer を介してデータベースにジャンプし、次の SQL を実行して列フィールドのサイズを増やすことができます。
ALTER TABLE orders_products_attributes
CHANGE products_options_values
products_options_values varchar(250) NOT NULL DEFAULT '';
上記の SQL は、products_options_values 列のサイズを最大 250 文字に更新します。必要に応じてこれを調整します。
これで、フリー テキストの製品属性が含まれる今後のすべての購入で、請求書に 250 文字まで表示されるようになります。