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 09:35:18 +02:00
parent a7d7dbb164
commit c0007ebbea

91
CLAUDE.md Normal file
View File

@ -0,0 +1,91 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
This is a WordPress/WooCommerce plugin that integrates with the Miravia marketplace (owned by Alibaba). The plugin allows merchants to:
- Upload WooCommerce products to Miravia
- Download orders from Miravia
- Manage product synchronization between platforms
- Handle multiple Miravia accounts and profiles
## Architecture
### Core Components
**Main Plugin File**: `connector-miravia/connector-miravia.php`
- Entry point that defines plugin metadata and initializes the MiraviaWOO class
- Sets up WordPress hooks and admin menu structure
- Loads all required class dependencies
**Class Structure**:
- `class.core.php` - Core functionality for accounts, profiles, and database operations
- `class.api.php` - AJAX handlers for all Miravia API interactions
- `class.product.php` - WooCommerce product management and synchronization
- `class.order.php` - Miravia order processing and WooCommerce integration
- `class.categories.php` - Category mapping between WooCommerce and Miravia
- `class.db.php` - Database schema management and installation
**Shared Classes** (in `classes/shared/`):
- `MiraviaProduct.php` - Product data structure for Miravia API
- `MiraviaCombination.php` - Product variations/SKUs handling
- `MiraviaCategory.php`, `MiraviaFilter.php`, `MiraviaFeed.php` - Support classes
### Database Schema
The plugin creates custom tables:
- `{prefix}_miravia_accounts` - Stores Miravia seller account credentials
- `{prefix}_miravia_profiles` - Product upload profiles with mapping rules
- `{prefix}_miravia_products` - Synchronization status between WooCommerce and Miravia
- `{prefix}_miravia_orders` - Order tracking and fulfillment data
### Key Features
**Product Upload**:
- Products are uploaded via profiles that define category mappings and filters
- Images must be formatted as `{"Image": [...]}` structure for Miravia API compliance
- Support for both simple products and variations
**Order Management**:
- Downloads orders from Miravia and creates corresponding WooCommerce orders
- Tracks order status and fulfillment
- Handles shipping label generation
**Multi-Account Support**:
- Multiple Miravia seller accounts can be configured
- Each profile can be associated with specific accounts
## Development Commands
### Deployment
- **Deploy changes**: `./deploy_miravia.sh` - Automated git deployment script that commits and pushes changes
### No Build Process
This is a pure PHP WordPress plugin with no build step required. Changes are deployed directly.
### Testing
No automated test framework is configured. Testing should be done manually in a WordPress/WooCommerce environment.
## Important Implementation Notes
### API Integration
- All Miravia API calls go through the WeComm proxy server
- Authentication uses tokens stored in the accounts table
- Product images must follow specific structure: `Images: {"Image": [...]}`
### WordPress Integration
- Uses standard WordPress hooks and filters
- Admin interface is built with WordPress admin styles
- Internationalization support with 'miraviawoo' text domain
### Error Handling
- Logging is handled through custom LOG class
- Debug mode can be enabled via WordPress options
- Errors are stored in product sync records for troubleshooting
### Security Considerations
- All database operations use WordPress $wpdb for SQL injection protection
- User capability checks (`manage_woocommerce`, `manage_options`)
- Input sanitization with WordPress functions
- Nonce verification for admin actions