mysql - VirtueMart 自定义字段 (SKU)

标签 mysql joomla session-variables virtuemart

我是一个非常新手的程序员,但这是我正在尝试做的事情,以及我到目前为止所做的事情:

我想要的:

我正在尝试在购物车中获得最终的 SKU,它是根据产品的变体选择构建的。

例如,如果初始产品是“Shovel”,它的 SKU 是“SHO”,则购物车变体选择 SKU 编号添加到末尾。

如果其中一个变体是:

handle 颜色 -- 绿色 handle (带 SKU1 的 SKU) -- 黄色 handle (带SKU2的SKU)

如果选择绿色,最终 SKU 将是 SHO - SKU1,如果选择黄色,则最终 SKU 将是 SHO - SKU2)

这将创建一个 session 变量以传递到购物车,购物车将显示此变量,我可以将其传递到电子邮件通知,或之后我需要的任何内容。

我做了什么:

我在表 virutemart_product_customfields 的购物车变体数据中添加了一列 custom_sku。我还将此字段添加到管理员表文件夹 (/administrator/components/com_virtuemart/tables) 中的 customs.php 文件中

此字段现在更新到数据库中,每次您添加购物车变体选项时,它都会将 SKU 添加到 customfield_id 行的“custom_sku”列中:

截图:http://awesomescreenshot.com/02e1sfsef9

我还修改了 customfields.php (administrator/components/com_virtuemart/models) 中的函数 getProductCustomsFieldCart 以将其添加到选项下拉值中。

现在值看起来像:“Variant Value - $1.00 - SKU1”

我坚持的是: 我需要将此 SKU 值或选项的值传递到购物车,并拥有它以便我可以将其用于订单的剩余部分。

这很可能是通过 session 变量完成的,它看起来像:sessionSKUselect = "20",其中 20 是自定义字段 ID,因此我可以在购物车查询中使用它。

这也可以在数组中的 session 变量中输出,只要它有效。

目前有一个变量通过表单传递,如下所示:“customPrice[0][1]”(数字属于哪个选择列表,及其变体组(哪个选择列表))

customPrice[0][1] 有一个自定义字段 ID 的值(只是一个数字,用于数据库值。我需要这个值是一个数组,或者能够在购物车中使用这个数组来查询最终的 SKU 编号。

有人知道我需要做什么吗?谢谢!

最佳答案

我知道如何使用购物车变体。每个都可以指定一个价格。我还做到了,因此每个变体选项也可以分配一个自定义 SKU(商品编号),并且该变量位于同一个数据库表中。

我已经找到了如何使用函数 calculateModificators 提取变量

我非常需要在购物车页面上选择的选项值,而此功能使它们可用。我在上面的函数中添加了自己的小代码,现在我可以输出 SKU 但需要将其显示在一个数组中。

这是代码,我已经注意到我添加的地方使用了注释。

    $query = 'SELECT  C.* , field.*
                    FROM `#__virtuemart_customs` AS C
                    LEFT JOIN `#__virtuemart_product_customfields` AS field ON C.`virtuemart_custom_id` = field.`virtuemart_custom_id`
                    WHERE field.`virtuemart_customfield_id`=' . $selected;
                $this->_db->setQuery($query);
                $productCustomsPrice = $this->_db->loadObject();
                $productCustomsSKU = $this->_db->loadObject(); // My Addition
                echo $productCustomsSKU->custom_sku. ' + '; // My Addition

因此,如果我的两个 SKU 编号是这个,则按所选选项的顺序(SKU3、SKU1)

我得到类似 SKU3SKU1 的输出

现在我需要让这个值最终看起来像这样:

  • SKU3 + SKU1

这需要在字符串的开头有一个+,最后没有+。我需要它最终成为一个值,所以我的值将是:

$value = "+ SKU3 + SKU1"并对来自上述数组的每个值执行此操作。

关于mysql - VirtueMart 自定义字段 (SKU),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19201977/

相关文章:

php - Joomla-ChronoForm : Submit action based on user selection

php - 从 $_POST 数组构造 mysql select

java - mysql.jdbc 异常超出数据类型 INTEGER 的有效范围

mysql - 重写Joomla系统文件会删除我的文章和数据吗?

mysql - 有没有更有效的方法来编写这个 MySQL 查询?

c# - 在 session 中使用键/值集合

php - 页面之间丢失的 session 变量

vb.net - 从 vb.net 中的 ID 字符串查找单选按钮控件

php - PHP 中的 MySQL NULL

php - 如何显示从该表单中选择的数据?