1

フロントエンドから製品を更新しようとしていますが、製品のすべてのフィールドを更新できません。

FOR UPDATINGのインデックスコントローラーのコードは次のとおりです。

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 />";
    }

}


}

誰でも私が間違っているところを助けて修正してもらえますか?

製品を削除するには、ヘルパーからこの関数を呼び出すだけです:

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;

}

それも機能しません:(

助けてください。

4

1 に答える 1

1

製品を削除する場合:

管理者以外の領域(フロントエンドなど)から削除するアクセス権を与えるだけで、これに対する答えが見つかりました。そして、それは私にとって魔法でした。

http://inchoo.net/ecommerce/magento/programming-magento/how-to-delete-magento-product-from-frontend-template-code-from-view-files/

上記のリンクは、解決策を見つけるのに役立ちました。

于 2012-07-25T09:16:09.013 に答える