🔧 Bug Fixes: - Fixed product image structure to match Miravia API requirements - Updated MiraviaProduct.php getData() method to wrap images in {"Image": [...]} format - Updated MiraviaCombination.php getData() method to wrap SKU images properly - Resolved error "[4224] The Main image of the product is required" 📋 Changes: - Modified getData() methods to transform flat image arrays to nested structure - Product images: images[] → Images: {"Image": [...]} - SKU images: images[] → Images: {"Image": [...]} - Maintains backward compatibility for empty image arrays 🎯 Impact: - Product uploads will now pass Miravia's image validation - Both product-level and SKU-level images properly formatted - Complies with official Miravia API documentation structure 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
98 lines
4.4 KiB
PHP
98 lines
4.4 KiB
PHP
<?php
|
|
if ( ! defined( 'ABSPATH' ) ) { exit; }
|
|
|
|
class MIRAVIADB {
|
|
|
|
static function install() {
|
|
global $wpdb;
|
|
$installed_ver = get_option( "miravia_db_version", 0 );
|
|
if ($installed_ver != MIRAVIA_DB_VERSION) {
|
|
$charset_collate = $wpdb->get_charset_collate();
|
|
|
|
$sql = "CREATE TABLE {$wpdb->prefix}miravia_accounts (
|
|
id mediumint(9) NOT NULL AUTO_INCREMENT,
|
|
created datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated datetime DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
name tinytext NOT NULL,
|
|
token varchar(200) NOT NULL,
|
|
userid varchar(30) DEFAULT '' NOT NULL,
|
|
config TEXT,
|
|
lang varchar(10) NOT NULL,
|
|
email varchar(100) NOT NULL,
|
|
PRIMARY KEY (id)
|
|
) $charset_collate;";
|
|
|
|
$sql .= "CREATE TABLE {$wpdb->prefix}miravia_profiles (
|
|
id mediumint(9) NOT NULL AUTO_INCREMENT,
|
|
created datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated datetime DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
name tinytext NOT NULL,
|
|
accounts_id varchar(200) NOT NULL,
|
|
categories varchar(250) DEFAULT '' NOT NULL,
|
|
miravia_category bigint NOT NULL DEFAULT 0,
|
|
config TEXT,
|
|
PRIMARY KEY (id)
|
|
) $charset_collate;";
|
|
|
|
$sql .= "CREATE TABLE {$wpdb->prefix}miravia_products (
|
|
id mediumint(9) NOT NULL AUTO_INCREMENT,
|
|
created datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated datetime DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
last_updated datetime DEFAULT '0000-00-00 00:00:00',
|
|
id_woocommerce BIGINT NOT NULL,
|
|
sku varchar(100) NOT NULL,
|
|
id_miravia BIGINT NOT NULL,
|
|
job_id VARCHAR(100) NOT NULL DEFAULT '0',
|
|
stock INT NOT NULL DEFAULT 0,
|
|
price FLOAT(50,2) NULL DEFAULT NULL,
|
|
sale_price FLOAT(50,2) NULL DEFAULT NULL,
|
|
profile_id INT DEFAULT 0 NOT NULL,
|
|
lastError varchar(255) DEFAULT '',
|
|
status_text varchar(100) DEFAULT '',
|
|
PRIMARY KEY (id)
|
|
) $charset_collate;";
|
|
|
|
$sql .= "CREATE TABLE {$wpdb->prefix}miravia_rules (
|
|
id mediumint(9) NOT NULL AUTO_INCREMENT,
|
|
created datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated datetime DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
name_rule VARCHAR(100) NOT NULL,
|
|
accounts INT NOT NULL DEFAULT 0,
|
|
profile_id INT NOT NULL DEFAULT 0,
|
|
rules_json TEXT,
|
|
action_json TEXT,
|
|
action_type VARCHAR(100) NOT NULL,
|
|
PRIMARY KEY (id)
|
|
) $charset_collate;";
|
|
|
|
// Feed Jobs table for managing Feed API submissions
|
|
$sql .= "CREATE TABLE {$wpdb->prefix}miravia_feed_jobs (
|
|
id mediumint(9) NOT NULL AUTO_INCREMENT,
|
|
feed_id VARCHAR(100) DEFAULT NULL,
|
|
feed_document_id VARCHAR(255) DEFAULT NULL,
|
|
feed_type VARCHAR(50) DEFAULT 'PRODUCT_LISTING',
|
|
status VARCHAR(50) DEFAULT 'PENDING',
|
|
product_count INT DEFAULT 0,
|
|
product_ids TEXT DEFAULT NULL,
|
|
processing_start_time datetime DEFAULT NULL,
|
|
processing_end_time datetime DEFAULT NULL,
|
|
created datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated datetime DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
error_message TEXT DEFAULT NULL,
|
|
result_data LONGTEXT DEFAULT NULL,
|
|
PRIMARY KEY (id),
|
|
KEY feed_id (feed_id),
|
|
KEY status (status),
|
|
KEY created (created)
|
|
) $charset_collate;";
|
|
|
|
//Run SQL
|
|
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
|
dbDelta( $sql );
|
|
|
|
//Update bd version plugin
|
|
update_option( 'miravia_db_version', MIRAVIA_DB_VERSION );
|
|
LOG::add("La base de datos ha sido actualizada a la versión " . MIRAVIA_DB_VERSION);
|
|
}
|
|
}
|
|
} |