🔧 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>
3.6 KiB
3.6 KiB
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 operationsclass.api.php- AJAX handlers for all Miravia API interactionsclass.product.php- WooCommerce product management and synchronizationclass.order.php- Miravia order processing and WooCommerce integrationclass.categories.php- Category mapping between WooCommerce and Miraviaclass.db.php- Database schema management and installation
Shared Classes (in classes/shared/):
MiraviaProduct.php- Product data structure for Miravia APIMiraviaCombination.php- Product variations/SKUs handlingMiraviaCategory.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