我是一个非常新手的程序员,但这是我想要做的,以及到目前为止我所做的:
我想要的是什么:
我正在尝试购买购物车中的最终SKU,这是根据产品的变体选择而制作的。
例如,如果初始产品是“Shovel”,并且它的SKU是“SHO”,则购物车变体选择SKU编号会添加到最后。
如果其中一个变体是:
处理颜色 - 绿色手柄(SKU1的SKU) - 黄色手柄(SKU2的SKU)
如果选择绿色,最终的SKU将为SHO - SKU1,如果选择黄色则为SHO - SKU2)
这将创建一个会话变量以传递到购物车,购物车将显示此变量,我可以将其传递给电子邮件通知,或我需要的任何内容。
我做了什么:
我已将表custom_sku添加到表virtuemart_product_customfields中的购物车变体数据中。我还将此字段添加到管理员表文件夹(/ administrator / components / com_virtuemart / tables)中的customs.php文件中
此字段现在更新到数据库中,每次添加购物车变体选项时,它都会为customfield_id的行添加一个SKU到“custom_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号码。
有谁知道我需要做什么?谢谢!
答案 0 :(得分:0)
我知道如何使用购物车款式。每个都可以分配一个价格。我也做了它,因此每个变体选项也可以分配一个自定义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
这样的输出现在我需要让这个值最终看起来像这样:
这需要在字符串的开头有一个+,而在结尾没有+。我最终需要这个值,所以我的价值将是:
$ value =“+ SKU3 + SKU1”并对来自上述数组的每个值执行此操作。