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:
33
connector-miravia/views/metabox/miravia-order.php
Normal file
33
connector-miravia/views/metabox/miravia-order.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) { exit; }
|
||||
list($order, $items) = MiraviaCore::get_order_woocommerce($post->ID);
|
||||
?>
|
||||
<div id="miravia_order_gestion">
|
||||
<?php
|
||||
$package_data = get_post_meta($post->ID, '_miravia_packed_result', true);
|
||||
if(isset($package_data['data']['pack_order_list'])){
|
||||
$packages = [];
|
||||
foreach ($package_data['data']['pack_order_list'] as $item){
|
||||
if(isset($item['order_item_list'])){
|
||||
foreach($item['order_item_list'] as $package){
|
||||
$packages[$package['package_id']] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach($packages as $p => $v) {
|
||||
if($v) {
|
||||
echo wp_kses('<a href="javascript:void(0)" class="miraviaprintLabel" data-id="'.$post->ID.'" data-package="'.$p.'"><i class="fa fa-print"></i> Print Shipping Label ['.$p.']</a>', wp_kses_allowed_html());
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
echo wp_kses(' <p>'.__('Ready to ship?','miraviawoo').'</p>
|
||||
<button type="button" id="packOrderButton" data-id="'.$post->ID.'">Pack Order</button>', wp_kses_allowed_html());
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
43
connector-miravia/views/metabox/miravia-product.php
Normal file
43
connector-miravia/views/metabox/miravia-product.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) { exit; }
|
||||
global $post;
|
||||
$defaultBrand = get_option('miravia_default_brand', 'No Brand');
|
||||
$productBrand = get_post_meta($post->ID, '_miravia_brand_product', true);
|
||||
$productUnit = get_post_meta($post->ID, '_miravia_unit', true);
|
||||
$productUnitValue = get_post_meta($post->ID, '_miravia_unit_value', true);
|
||||
|
||||
$defaultUnit = get_option('miravia_default_unit', 'units');
|
||||
$defaultUnitValue = get_option('miravia_default_unit_value', '1');
|
||||
|
||||
if($productBrand) {
|
||||
$defaultBrand = $productBrand;
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="options_group show_if_simple show_if_external show_if_variable" style="">
|
||||
<p class=" form-field miravia_brand_product_field">
|
||||
<label for="miravia_brand_product"><?php echo __('Product Brand', 'miraviawoo') ?></label>
|
||||
<select id="miravia_brand_product" name="miravia_brand_product" class="search-select-miravia-brand">
|
||||
<option value="<?php echo $defaultBrand ?>" <?php selected($defaultBrand, $defaultBrand) ?>><?php echo $defaultBrand ?></option>
|
||||
</select>
|
||||
</p>
|
||||
|
||||
<p class=" form-field miravia_unit_type_field">
|
||||
<label for="miravia_unit_type"><?php echo __('Unit Type', 'miraviawoo') ?></label>
|
||||
<select id="miravia_unit_type" name="miravia_unit_type">
|
||||
<option value="">Default: <?php echo $defaultUnit ?></option>
|
||||
<option <?php echo selected('Units',$productUnit)?> value="Units">Units</option>
|
||||
<option <?php echo selected('Liters',$productUnit)?> value="Liters">Liters</option>
|
||||
<option <?php echo selected('Kilograms',$productUnit)?> value="Kilograms">Kilograms</option>
|
||||
<option <?php echo selected('Grams',$productUnit)?> value="Grams">Grams</option>
|
||||
<option <?php echo selected('Milliliters',$productUnit)?> value="Milliliters">Milliliters</option>
|
||||
</select>
|
||||
</p>
|
||||
|
||||
<p class=" form-field miravia_brand_product_field">
|
||||
<label for="miravia_brand_product"><?php echo __('Unit Value', 'miraviawoo') ?></label>
|
||||
<input type="text" name="miravia_unit_value" value="<?php echo $productUnitValue ?>" placeholder="Default: <?php echo $defaultUnitValue?>" />
|
||||
</p>
|
||||
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user