Merhabalar sizlere bugün Opencart Toplu Ürün Seçenek Ekleme php ve mysql ile nasıl yapılır aktarmaya çalışacağım.
Neden Gerekli
Örnek ile anlatayım,
Toplu bir şekilde ürünleri sisteminize çektiniz. Bu ürünlerinizin hepsinin ayakkabı olduğunu ve standart hepsine belirli bir numara grubunu uygulamak istediniz. Bu işlemi yapmak için birden fazla yol var; ya tek tek girerek hepsine özel olarak numara belirlersiniz, ya aşağıdaki bir kod bloğu yazıp kullanırsınız yada kendinizce farklı bir yöntem üretebilirsiniz.
Adımlar Neler
ilk olarak opencart katalog > seçenekler kısmına gelin.

yeni ekle yollarını izleyerek ilgili seçeneklerinizi oluşturun.

Oluşturmanızın ardından phpmyadmin’e bağlanarak
option_value_description tablosundan ilgili eklemelerini bulup kayıt edin.

Benim 9 adet alanım vardı ve bunların option_value_id kayıt ettikten sonra sorgumdaki option_value_id karşılık gelen yere yazdım bu işlemi array list oluşturup foreach içine alıp kısaltabilirsiniz. Ben o anda hızlıca yazmak için bu şekilde bıraktım 🙂 13 numaralı alan ise selectbox “açılan kutu” id değeridir.
Gelelim kod bloğumuza alt kısımdaki kodu hostinginize ftp ile bağlanarak yeni bir dosya oluşturup alt kısımdaki kodları yazabilirsiniz.
Mysql bağlantı bilgilerini yazabilir yada config.php dosyasınıcı include ‘config.php’ yazıp içeri aktarabilirsiniz.
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
$mysqli = new mysqli(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (". $mysqli->connect_errno .")" . $mysqli->connect_error;
}
$query = "SELECT * FROM oc_product_description";
if ($result = $mysqli->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
$prodSql = "INSERT INTO oc_product_option (product_id,option_id,value,required) VALUE (".$row['product_id'].",13,'',1)";
if($mysqli->query($prodSql))
{
$pSql = "INSERT INTO `oc_product_option_value` (`product_option_id`, `product_id`, `option_id`, `option_value_id`, `quantity`, `subtract`, `price`, `price_prefix`, `points`, `points_prefix`, `weight`, `weight_prefix`) VALUES
(".$mysqli->insert_id.", '".$row['product_id']."', 13, 69, 0, 0, '0.0000', '+', 0, '+', '0.00000000', '+'),
(".$mysqli->insert_id.", '".$row['product_id']."', 13, 62, 0, 0, '0.0000', '+', 0, '+', '0.00000000', '+'),
(".$mysqli->insert_id.", '".$row['product_id']."', 13, 63, 0, 0, '0.0000', '+', 0, '+', '0.00000000', '+'),
(".$mysqli->insert_id.", '".$row['product_id']."', 13, 64, 0, 0, '0.0000', '+', 0, '+', '0.00000000', '+'),
(".$mysqli->insert_id.", '".$row['product_id']."', 13, 65, 0, 0, '0.0000', '+', 0, '+', '0.00000000', '+'),
(".$mysqli->insert_id.", '".$row['product_id']."', 13, 66, 0, 0, '0.0000', '+', 0, '+', '0.00000000', '+'),
(".$mysqli->insert_id.", '".$row['product_id']."', 13, 67, 0, 0, '0.0000', '+', 0, '+', '0.00000000', '+'),
(".$mysqli->insert_id.", '".$row['product_id']."', 13, 68, 0, 0, '0.0000', '+', 0, '+', '0.00000000', '+');";
if(!$mysqli->query($pSql))
{
echo "Basmadı : ".$pSql." :
";exit;
}
}
else
{
echo "basmadı : ".$prodSql." : ".$row['product_id']."";
}
//$mysqli->insert_id
//echo "<pre>";
//print_r ($row);
//echo "</pre>";
}
/* free result set */
$result->free();
}
Mysql bilgilerini hatırlamamanız halinde bu bilgileriniz bağlandığınız ftp dizininde config.php dosyasında yazmaktadır.
Yukarıdaki adımları izledikten sonra Opencart Toplu Ürün Seçenek Ekleme için oluşturduğunuz sayfaya sitenizin adres satırından yazarak çalıştırmanız yeterli olacaktır.
Güzel Anlatım ve gerekli bir ihtiyaç 3x içinde paylaşır mısınız teşekkür ederim