Opencart Toplu Ürün Seçenek Ekleme

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.

opencart katalog seçenekler

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.

örnek olarak yukarıdaki alanları aldım.

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.

Mysql bilgilerini hatırlamamanız halinde bu bilgileriniz bağlandığınız ftp dizininde config.php dosyasında yazmaktadır.

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();
}

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.

👋