1

具有自定义输入值的产品不会保存其整个长度,并且客户发票的前 32 个字符被剪裁。

我正在处理的商店中的一种产品有一个测试区域,供用户输入产品的自定义值。

此产品属性通过管理员设置为 150 个字符的长度,但是当有人订购并填写时,他们输入的信息在发票页面上查看时会在第 32 个字符之后被截断。

我能做些什么来解决这个问题?

4

1 回答 1

3

您的数据库列太小而无法捕获自由文本字段,尽管您可能在管理员中将其设置为。

下订单时,购物车中每件商品的任何属性都将保存到 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 个字符。

于 2013-01-12T23:29:58.320 回答