Files
Miravia Connector Bot a7d7dbb164 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>
2025-07-17 08:11:23 +02:00

44 lines
2.2 KiB
PHP

<?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>