Fix image upload structure for Miravia API compliance
🔧 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>
This commit is contained in:
77
connector-miravia/classes/class.db.php
Normal file
77
connector-miravia/classes/class.db.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?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;";
|
||||
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user