web-dev-qa-db-fra.com

Comment ajouter un produit par programme à la base de données Opencart

  • Je me demande s’il existe une fonction spéciale opencart permettant d’ajouter/modifier un produit à la base de données Opencart en utilisant un formulaire php/html sur la page d’accueil (telle que la fonction wordpress "wp_insert_post") ou d’écrire tout mon code PHP way (insérer dans DB_TABLE .....)

  • De plus, quelles tables de base de données opencart je dois utiliser pour ajouter des informations de produit simples avec une image, s’agit-il uniquement de tables de produit et de description_produit, bien sûr, j’ai besoin que le produit apparaisse aussi dans la page d’administration après l’ajouter à la page front-end

J'ai vraiment besoin de références pour me montrer le moyen de le faire

(J'utilise opencart 1.5.1.3)

16
usama sulaiman

Vous devez simplement créer un tableau associé de valeurs à transmettre à la méthode addProduct() dans /admin/model/catalog/product.php. Pour charger le modèle dans votre contrôleur, utilisez

// 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);

C’est exactement ce que fait OpenCart dans la zone d’administration, à la différence qu’il utilise les valeurs POSTed du formulaire à transmettre en tant que tableau.

Notez que certaines valeurs telles que les descriptions, les images, etc. sont des tableaux dans le tableau de données lui-même et doivent donc être codées comme telles. Si vous souhaitez examiner ce que le modèle reçoit du formulaire d’ajout de produit, ouvrez le fichier php du modèle, recherchez la méthode addProduct() et print_r la variable $data au début de la méthode, ce qui vous donnera la liste complète des clés de tableau, dont la plupart ne sont pas nécessaires. Voir le formulaire dans l'admin pour qui sont. Il est assez facile de déterminer quel champ se rapporte à quelle clé du tableau

Plus d'informations sur comment débuter en tant que développeur dans OpenCart

16
Jay Gilford

Été là.

Le plus important, ne vous contentez pas d'ajouter des données de produit à la table PREFIX_product et de créer un lien vers la catégorie dans PREFIX_product_to_category

Mais aussi créer une ligne dans PREFIX_product_description ( avec le même product_id ). Sans cela, le produit s'affiche dans la zone d'administration, mais ne peut pas être édité et le lien sera avec un numéro de produit vide comme "admin /index.php?route=catalog/product/edit&product_id= ".

Dans mon cas, inclure et utiliser des modèles centraux d'OC ou effacer le cache était inutile. Le produit ajouté via les requêtes MySQL est devenu éditable et entièrement fonctionnel.

OC version 2.2.0.0

0
Andrew