EC-CUBE2.13(たぶん2系全て?)で商品を100個とか沢山カートに入れるとなぜかエラーが出てしまいます。
MySQLで、dtb_session.sess_dataにカートの内容を保持しており、このフィールドはTEXT型になっているんですが、調べてみるとどうもこのTEXT型ではサイズ(容量)が足りないようです。
結局、TEXT型を使ってたのをMEDIUMTEXT型に変更したらいけたのですが、まあ、通常のBtoC取引では100種類の商品も買うこと想定してなかったんでしょうね。
今回調べたTEXT型について以下にまとめます。
TEXT型には4つのタイプTINYTEXT、TEXT、MEDIUMTEXT、LONGTEXTがあります。
・TINYTEXT 最長255 バイト
・TEXT 最長65,535 バイト(64KB)
・MEDIUMTEXT 最長16,777,215 バイト(約1.6MB)
・LONGTEXT 最長4,294,967,295 バイト(約4.3GB)
カートのセッション情報を保存する、といった最長サイズで引っかかりそうなフィールドは、MEDIUMTEXTにしておいた方がよさそうですね。