20
  • フロントエンド ページの php/html フォーム (wordpress "wp_insert_post" function など) を使用してプログラムで Opencart データベースに製品を追加/編集するための特別な opencart 関数があるのだろうか、またはすべてのコードを PHP の方法で記述しなければならない (insert DB_TABLE に .....)

  • また、画像付きの簡単な製品情報を追加するために使用する必要があるopencart dbテーブルはどれですか?それは製品とproduct_descriptionテーブルのみですか?もちろん、フロントエンドページを使用して追加した後、管理ページにも製品を表示する必要があります

それを行う方法を示すために、いくつかの参照が本当に必要です

(opencart 1.5.1.3 を使用しています)

4

2 に答える 2

21

addProduct()のメソッドに渡す値の関連配列を作成するだけです/admin/model/catalog/product.php。コントローラーにモデルをロードするには、次を使用します

// Assoc array of data
$productData = array(
    'name' => 'Product Name Here',
    'model' => 'ABC123',
    ...
);

// Load model into memory if it isn't already
$this->load->model('catalog/product');

// Attempt to pass the assoc array to the add Product method
$this->model_catalog_product->addProduct($productData);

これは、OpenCart が管理領域で行うこととまったく同じですが、フォームから POST された値を使用して配列として渡すだけです。

説明、画像などの一部の値は、データ配列自体内の配列であるため、そのようにコーディングする必要があることに注意してください。モデルが製品追加フォームから受け取るものを確認したい場合は、モデルの php ファイルを開き、addProduct()メソッドとメソッドの先頭にprint_rある$data変数を見つけます。これにより、配列キーの完全なリストが得られます。そのほとんどは必要ありません。管理者のフォームを参照してください。どのフィールドが配列内のどのキーに関連しているかを判断するのは非常に簡単です

OpenCart で開発者として始めるための詳細情報

于 2013-06-15T11:39:47.410 に答える
0

行ったことがある。

最も重要なことは、製品データをテーブルPREFIX_productに追加し、 PREFIX_product_to_categoryのカテゴリへのリンクを作成するだけではありません。

ただし、PREFIX_product_descriptionにも行を作成します(同じ product_id を使用)。これがないと製品は管理エリアに表示されますが、編集することはできず、リンクは "admin/index.php?route=catalog/product/edit&product_id=" のように空の product_id 番号になります。

私の場合、OC コア モデルを含めて使用したり、キャッシュをクリアしたりする必要はありませんでした。MySQL クエリを介して追加された製品は、編集可能になり、完全に機能するようになりました。

OC バージョン 2.2.0.0

于 2017-07-19T10:39:25.170 に答える