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

时间:2014-06-10 12:49:39

标签: prestashop product cart prestashop-1.6

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

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

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

提前感谢您的帮助

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

您是否可以使用属性来开发产品?原因是您将实际上有客户向您的数据库添加信息,然后您将不得不对其进行清理并验证它。我会使用Prestashop的内置属性来做这样的事情。