MMCT TEAM
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  ]

Current File : /home/u915722082/.nvm/../public_html/lohri/vendor_admin/ajax_save_variations.php
<?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;
}
?>

MMCT - 2023