【问题标题】:VirtueMart Custom Fields (SKU)VirtueMart 自定义字段 (SKU)
【发布时间】:2013-10-05 19:47:46
【问题描述】:

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

我想要什么:

我正在尝试从产品的变体选择中获取购物车中的最终 SKU。

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

如果其中一种变体是:

手柄颜色 -- 绿色手柄(SKU 为 SKU1) -- 黄色手柄(SKU为SKU2)

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

然后,这将创建一个会话变量以传递到购物车,并且购物车将显示此变量,我可以将其传递给电子邮件通知,或者我之后需要的任何东西。

我做了什么:

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

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

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

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

现在的值如下所示:“变体值 - 1.00 美元 - SKU1”

我坚持的是: 我需要将此 SKU 值或选项的值传递给购物车,然后将其用于订单的剩余部分。

这很可能使用会话变量来完成,如下所示: sessionSKUselect = "20" 其中 20 是自定义字段 ID,因此我可以在购物车上的查询中使用它。

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

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

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

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

【问题讨论】:

    标签: mysql joomla session-variables virtuemart


    【解决方案1】:

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

    我发现了如何使用函数 calculateModificators 提取变量

    我几乎需要购物车页面上的选定选项值,而这个功能使它们可用。我在上面的函数中添加了自己的小代码,现在我可以输出 SKU 但需要以数组的形式显示。

    这是代码,我已经注意到我的添加在哪里使用 cmets。

        $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" 并对来自上述数组的每个值执行此操作。

    【讨论】:

      猜你喜欢
      • 2013-08-17
      • 2012-10-28
      • 2012-07-19
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多