如何从自定义表单创建新产品,然后将其添加到购物车?

问题描述 投票:0回答:2

我正在尝试在 PS 1.6 上开发一个自定义页面,客户可以在其中从表单创建新产品,然后将其添加到购物车。

举例来说,我正在销售木工艺品,我希望我的客户填写一份表格,他们需要指定木材的类型、尺寸…… 根据这些标准,价格将被修改,并将创建一个“最终”产品,并将其添加到客户的购物车中。

我知道如何开发表单,并且我相信我可以使用 Cart.php 中的 updateQty() 将产品添加到购物车,但是如何从表单中获取的数据实例化我的产品?我正在尝试搜索所有文件,但我似乎无法找到新产品的实例化位置。

提前感谢您的帮助

php prestashop product cart prestashop-1.6
2个回答
3
投票

我正在回答我的问题,因为我设法做到了。这是我的解决方案:

public static function créerProduct($name, $ean13, $category, $price, $description, $reference){
    $product = new Product();
    $languages=Language::getLanguages();
    foreach($languages as $lang){
        $product->name[$lang['id_lang']]=$name;
        $product->link_rewrite[$lang['id_lang']]=$name;
        $product->description[$lang['id_lang']]=$description;
    }
    $product->reference=$reference;
    $product->quantity=0;
    $product->id_category_default=$category;
    $product->id_category[]=$product->id_category_default;
    $product->price=$price;
    $product->id_tax_rules_group=1;
    $product->indexed=0;
    try{
        $product->save();
        } catch (PrestaShopException $e){
        echo $e->displayMessage();
        }
    $product->updateCategories(array_map('intval', $product->id_category));
    StockAvailable::setQuantity($product->id,'',1);
    return $product->id;
}

public static function addProduitauPanier($id_product){
    $context=Context::getContext();
    $result=$context->cart->updateQty(1,$id_product);
}

0
投票

不能用属性来开发产品吗?原因是,您实际上将让客户将信息添加到您的数据库中,然后您将必须对其进行清理和验证。我会使用 Prestashop 的内置属性来做这样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.