Since you have PostgreSQL installed, you need to create the database tables first.
-- Connect to PostgreSQL as postgres user
psql -U postgres
-- Create database (if not exists)
CREATE DATABASE powerpc_db;
-- Connect to your database
\c powerpc_dbRun this PostgreSQL SQL to create all required tables:
-- ===== ТАБЛИЦА ПОЛЬЗОВАТЕЛЕЙ =====
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
phone VARCHAR(20),
password_hash VARCHAR(255) NOT NULL,
address TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- ===== ТАБЛИЦА ПРОДУКТОВ =====
CREATE TABLE IF NOT EXISTS products (
id SERIAL PRIMARY KEY,
model VARCHAR(50) NOT NULL UNIQUE,
title VARCHAR(200) NOT NULL,
subtitle VARCHAR(300),
price DECIMAL(10,2) NOT NULL,
old_price DECIMAL(10,2),
discount VARCHAR(10),
badge VARCHAR(50),
main_image VARCHAR(255),
short_specs TEXT,
description TEXT,
stock INTEGER DEFAULT 0,
is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- ===== ТАБЛИЦА ЗАКАЗОВ =====
CREATE TABLE IF NOT EXISTS orders (
id SERIAL PRIMARY KEY,
order_number VARCHAR(50) UNIQUE NOT NULL,
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
total_amount DECIMAL(10,2) NOT NULL,
delivery_info JSONB,
status VARCHAR(20) DEFAULT 'processing' CHECK (status IN ('processing', 'confirmed', 'shipped', 'delivered', 'cancelled')),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- ===== ТАБЛИЦА ТОВАРОВ В ЗАКАЗАХ =====
CREATE TABLE IF NOT EXISTS order_items (
id SERIAL PRIMARY KEY,
order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE,
product_model VARCHAR(100) NOT NULL,
product_name VARCHAR(255) NOT NULL,
product_price DECIMAL(10,2) NOT NULL,
quantity INTEGER NOT NULL CHECK (quantity > 0),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);-- Insert test products
INSERT INTO products (model, title, subtitle, price, old_price, discount, badge, main_image, short_specs, description) VALUES
('green-monster', 'Gamer Beast RTX 4080', 'Легендарная мощь для настоящих геймеров', 245000.00, 299000.00, '-18%', 'ХИТ СЕЗОНА', 'images/Green Monster.jpg', 'Intel i9 • RTX 4080 • 32GB RAM', 'Игровой компьютер высшего класса'),
('office-pro', 'Office Pro i7', 'Идеальное решение для работы', 125000.00, 147000.00, '-15%', 'ПОПУЛЯРНЫЙ', 'images/Blue.webp', 'Intel i7 • RTX 4060 • 16GB RAM', 'Надежный компьютер для офисной работы'),
('stream-master', 'Stream Master', 'Для стримеров и создателей', 189000.00, 252000.00, '-25%', 'ДЛЯ СТРИМЕРОВ', 'images/Red.webp', 'AMD Ryzen 7 • RTX 4070 • 32GB RAM', 'Мощная система для стриминга'),
('budget-warrior', 'Budget Warrior', 'Отличное начало для игр', 89000.00, NULL, NULL, 'ВЫГОДНАЯ ЦЕНА', 'images/Black.jpg', 'AMD Ryzen 5 • RTX 4060 • 16GB RAM', 'Доступный игровой ПК'),
('extreme-overlord', 'Extreme Overlord', 'Абсолютная мощь без компромиссов', 389000.00, NULL, NULL, 'ТОПОВЫЙ', 'images/White.jpg', 'Intel i9 • RTX 4090 • 64GB RAM', 'Топовая система'),
('compact-pro', 'Compact Pro', 'Мощь в компактном корпусе', 112000.00, NULL, NULL, 'КОМПАКТНЫЙ', 'images/PCBack.jpg', 'Intel i5 • RTX 4060 • 16GB RAM', 'Компактный ПК');Run this command to test:
psql -U postgres -d powerpc_db -c "SELECT COUNT(*) FROM products;"If you get "database does not exist":
CREATE DATABASE powerpc_db;If you get "role does not exist":
CREATE USER powerpc_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE powerpc_db TO powerpc_user;Update api/db_config.php with your credentials:
define('DB_USER', 'your_postgres_user');
define('DB_PASS', 'your_postgres_password');After running these commands, try the checkout again!