Magento:从前端以编程方式更新和删除,不工作?

Magento:从前端以编程方式更新和删除,不工作?,magento,magento-1.6,Magento,Magento 1.6,我正在尝试从前端更新产品,但它不允许我更新产品的所有字段 以下是用于更新的索引控制器代码: public function updateVproductAction(){ if($addvp = $this->getRequest()->getPost()) { /*********************** Product Update ***************************/ /** * Get the resource

我正在尝试从前端更新产品,但它不允许我更新产品的所有字段

以下是用于更新的索引控制器代码:

public function updateVproductAction(){
    if($addvp = $this->getRequest()->getPost())
{

    /***********************  Product Update  ***************************/

    /**
    * Get the resource model
    */
       $resource = Mage::getSingleton('core/resource');

       /**
    * Retrieve the write connection
    */
       $writeConnection = $resource->getConnection('core_write');

       /**
    * Retrieve our table name
    */
       $table = $resource->getTableName('catalog/product');

       /**
    * Set the product ID
    */
       $productId = $addvp['product']['id'];

       /**
    * Set the new SKU
    * It is assumed that you are hard coding the new SKU in
    * If the input is not dynamic, consider using the
    * Varien_Db_Select object to insert data
    */
       //$newSku = 'new-sku';

        $sku            =   $addvp['product']['sku'];
        $name           =   $addvp['product']['name'];
        $description        =   $addvp['product']['description'];
        $short_description      =   $addvp['product']['short_description'];
        $weight         =   $addvp['product']['weight'];

        $news_from_date     =   $addvp['product']['news_from_date'];
        $news_to_date       =   $addvp['product']['news_to_date'];

        $status         =   $addvp['product']['status'];

        $price          =   $addvp['product']['price'];
        $special_price      =   $addvp['product']['special_price'];
        $tax_class_id       =   $addvp['product']['tax_class_id'];

        $meta_title         =   $addvp['product']['meta_title'];
        $meta_keyword       =   $addvp['product']['meta_keyword'];
        $meta_description       =   $addvp['product']['meta_description'];

        $stock_data         =   array(
                            'is_in_stock' => 1,
                            'qty' => $addvp['product']['stock_data']['qty']
                        );

    $query = "UPDATE {$table} SET sku = '{$sku}', name = '{$name}', description = '{$description}', short_description = '{$short_description}', weight = '{$weight}', news_from_date = '{$news_from_date}', news_to_date = '{$news_to_date}', status = '{$status}', price = '{$price}', special_price = '{$special_price}', tax_class_id = '{$tax_class_id}', meta_title = '{$meta_title}', meta_keyword =  '{$meta_keyword}', meta_description = '{$meta_description}', stock_data = '{$stock_data}' WHERE entity_id = "
            .(int) $productId;

    try
    {
        /**
        * Execute the query
        */
        $writeConnection->query($query);
        echo "successfully updated product with ID: ". $productId ."<br />";
    } 
    catch (Exception $e) 
    {
        echo "Could not update product with ID: ". $productId ."<br />";
    }

}


}
公共函数updateVproductAction(){
如果($addvp=$this->getRequest()->getPost())
{
/***********************产品更新***************************/
/**
*获取资源模型
*/
$resource=Mage::getSingleton('core/resource');
/**
*检索写连接
*/
$writeConnection=$resource->getConnection('core_write');
/**
*检索我们的表名
*/
$table=$resource->getTableName('catalog/product');
/**
*设置产品ID
*/
$productId=$addvp['product']['id'];
/**
*设置新的SKU
*假设您正在硬编码中的新SKU
*如果输入不是动态的,请考虑使用
*Varien_Db_选择要插入数据的对象
*/
//$newSku=‘新sku’;
$sku=$addvp['product']['sku'];
$name=$addvp['product']['name'];
$description=$addvp['product']['description'];
$short_description=$addvp['product']['short_description'];
$weight=$addvp['product']['weight'];
$news_from_date=$addvp['product']['news_from_date'];
$news_to_date=$addvp['product']['news_to_date'];
$status=$addvp['product']['status'];
$price=$addvp['product']['price'];
$special_price=$addvp['product']['special_price'];
$tax_class_id=$addvp['product']['tax_class_id'];
$meta_title=$addvp['product']['meta_title'];
$meta_关键字=$addvp['product']['meta_关键字'];
$meta_description=$addvp['product']['meta_description'];
$stock\u data=数组(
“是否有库存”=>1,
'qty'=>$addvp['product']['stock_data']['qty']
);
$query=“UPDATE{$table}SET sku='{$sku}',name='{$name}',description='{$description}',short_description='{$short_description}',weight='{$weight}',news_from_date='{$news_from_date}',news_to_date='{$news_to_to_date}',status='{$status}',price='{$price}',price='{$price},special$price}',tax(id},tax)id={$tax)id}“,meta_title='{$meta_title}',meta_关键字='{$meta_关键字}',meta_描述='{$meta_描述}',股票数据='{$stock_数据}',其中实体id=”
(int)$productId;
尝试
{
/**
*执行查询
*/
$writeConnection->query($query);
echo“已成功更新ID为“.$productId.”的产品。
; } 捕获(例外$e) { echo“无法更新ID为“.$productId.”的产品。
; } } }
有谁能帮我纠正我的错误吗

要删除产品,我只需从Helper调用此函数:

public function vDeleteproduct($vprod){

    //print_r($vprod); exit;
    try
        {
            $product = Mage::getSingleton('catalog/product')->load($vprod);
            Mage::dispatchEvent('catalog_controller_product_delete', array('product' => $product));
            $product->delete();
            //$product = Mage::getModel('catalog/product')->load($vprod)->delete();
            echo "successfully deleted product with ID: ". $vprod ."<br />";
        } 
    catch (Exception $e) 
        {
            echo "Could not delete product with ID: ". $vprod ."<br />";
        }

    return;

}
公共功能vDeleteproduct($vprod){
//打印($vprod);退出;
尝试
{
$product=Mage::getSingleton('catalog/product')->load($vprod);
Mage::dispatchEvent('catalog\u controller\u product\u delete',数组('product'=>$product));
$product->delete();
//$product=Mage::getModel('catalog/product')->load($vprod)->delete();
echo“已成功删除ID为“.vprod.”的产品。
; } 捕获(例外$e) { echo“无法删除ID为“.vprod.”的产品。
; } 返回; }
它也不起作用:(


Plz帮助。

用于删除产品:

public function vDeleteproduct($vprod){

    //print_r($vprod); exit;
    try
        {
            $product = Mage::getSingleton('catalog/product')->load($vprod);
            Mage::dispatchEvent('catalog_controller_product_delete', array('product' => $product));
            $product->delete();
            //$product = Mage::getModel('catalog/product')->load($vprod)->delete();
            echo "successfully deleted product with ID: ". $vprod ."<br />";
        } 
    catch (Exception $e) 
        {
            echo "Could not delete product with ID: ". $vprod ."<br />";
        }

    return;

}
我已经找到了这个问题的答案,我只需要从非管理区域(即前端)访问delete。它为我带来了魔力


上面的链接帮助我找到了解决方案。

删除产品:

public function vDeleteproduct($vprod){

    //print_r($vprod); exit;
    try
        {
            $product = Mage::getSingleton('catalog/product')->load($vprod);
            Mage::dispatchEvent('catalog_controller_product_delete', array('product' => $product));
            $product->delete();
            //$product = Mage::getModel('catalog/product')->load($vprod)->delete();
            echo "successfully deleted product with ID: ". $vprod ."<br />";
        } 
    catch (Exception $e) 
        {
            echo "Could not delete product with ID: ". $vprod ."<br />";
        }

    return;

}
我已经找到了这个问题的答案,我只需要从非管理区域(即前端)访问delete。它为我带来了魔力

上面的链接帮助我找到了解决方案