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:
Miravia Connector Bot
2025-07-21 11:34:59 +02:00
parent dc50508c1c
commit 752600f337
79 changed files with 7970 additions and 36 deletions

View File

@@ -0,0 +1,11 @@
<?php
use Sweeper\PlatformMiddleware\Sdk\AeSdk\Iop\IopClient;
use Sweeper\PlatformMiddleware\Sdk\AeSdk\Iop\IopRequest;
$c = new IopClient('https://api.taobao.tw/rest', '${appKey}', '${appSecret}');
$request = new IopRequest('/xiaoxuan/mockfileupload');
$request->addApiParam('file_name', 'pom.xml');
$request->addFileParam('file_bytes', file_get_contents('/Users/xt/Documents/work/tasp/tasp/pom.xml'));
var_dump($c->execute($request));

View File

@@ -0,0 +1,15 @@
<?php
use Sweeper\PlatformMiddleware\Sdk\AeSdk\Iop\Constants;
use Sweeper\PlatformMiddleware\Sdk\AeSdk\Iop\IopClient;
use Sweeper\PlatformMiddleware\Sdk\AeSdk\Iop\IopRequest;
$c = new IopClient('api.taobao.tw/rest', '100240', 'hLeciS15d7UsmXKoND76sBVPpkzepxex');
$c->logLevel = Constants::$log_level_debug;
$request = new IopRequest('/product/item/get', 'GET');
$request->addApiParam('itemId', '157432005');
$request->addApiParam('authDO', '{"sellerId":2000000016002}');
var_dump($c->execute($request, null));
echo PHP_INT_MAX;
var_dump($c->msectime());

View File

@@ -0,0 +1,12 @@
<?php
use Sweeper\PlatformMiddleware\Sdk\AeSdk\Iop\IopClient;
use Sweeper\PlatformMiddleware\Sdk\AeSdk\Iop\IopRequest;
$c = new IopClient('https://api-pre.aliexpress.com/sync', '33505222', 'e1fed6b34feb26aabc391d187732af93');
$request = new IopRequest('aliexpress.logistics.redefining.getlogisticsselleraddresses');
$request->simplify = "true";
$request->format = "xml";
$request->addApiParam('seller_address_query', 'pickup');
var_dump($c->execute($request, "50000001a27l15rndYBjw6PrtFFHPGZfy09k1Cp1bd8597fsduP0RsNy0jhF6FL"));