Appearance
Product Sync
What It Does
The reviewed source establishes a Magento product-import command and availability/price queues whose current processor path posts batches back to Magento. It does not establish that these generic queues fan out to Amazon, Cdiscount, ManoMano, or any other marketplace. Marketplace-specific producers, consumers, schedules, and downstream outcomes remain open evidence gaps.
The import command uses a page size of 300. Its default mode resumes from data/flags/product.flag; its --syncFast mode calls Magento's get-axelites-products endpoint and can pass --inStock. The fast path skips rows without a Logidav ID or French store data and skips AsirGroup dropship rows. These details are verified at the current source revision below.
How It Connects
View diagram source
flowchart LR
Mag["Magento 2"] -->|product import API| Cmd["menzzo:v2:products"]
Cmd --> DB["Logidav product data"]
ProductService["ProductService"] -->|availability changes| QAvail["Availability queue"]
PriceService["PriceService"] -->|price changes| QPrice["Price queue"]
QAvail --> Batch["API batch processors (up to 500 rows)"]
QPrice --> Batch
Batch -->|POST import-logidav-queue| MagAPI["Magento Logidav import API"]
Batch -. "marketplace fanout not established" .-> Unknown["Unknown downstream"]
Trigger
| Source | Source-backed behavior | Evidence boundary |
|---|---|---|
menzzo:v2:products | Product import command with fast/full modes and a persisted progress marker. | Installed schedule and full field contract are not established here. |
ProductService | Queues availability updates. | Queue destination beyond the reviewed Magento API path is unknown. |
PriceService | Queues price updates. | Queue destination beyond the reviewed Magento API path is unknown. |
Components
| Component | File Path | Role |
|---|---|---|
menzzo:v2:products | src/AppBundle/Command/Product/ProductCommand.php | Magento product-import command with fast/full modes and a progress marker. |
ProductService | src/AppBundle/Services/ProductService.php | Queues availability updates. |
PriceService | src/AppBundle/Services/PriceService.php | Queues price updates. |
ProductAvailabilityUpdateProcessor | src/AppBundle/Services/Queue/Processor/ProductAvailabilityUpdateProcessor.php | Selects the current Magento API batch path for availability rows. |
ProductPriceUpdateProcessor | src/AppBundle/Services/Queue/Processor/ProductPriceUpdateProcessor.php | Selects the current Magento API batch path for price rows. |
ProductApi::importLogidavQueueBatch() | src/CoreBundle/Api/V2/ProductApi.php | Posts queue batches to Magento's Logidav import endpoint; a batch can be partial or failed. |
Data Types Synced
| Data Type | Reviewed path | What remains unknown |
|---|---|---|
| Product import | Magento API -> menzzo:v2:products -> Logidav import path. | Exact field coverage, image/category behavior, and installed schedule. |
| Availability updates | ProductService -> queue -> batch processor -> Magento import API. | Marketplace fanout and downstream schedule. |
| Price updates | PriceService -> queue -> batch processor -> Magento import API. | Marketplace fanout and downstream schedule. |
| Marketplace catalog, stock, images, or categories | Not established by this source review. | Identify and review the specific producer and consumer before describing direction or cadence. |
Step-by-Step Flow
View diagram source
flowchart TD
A["menzzo:v2:products (schedule unknown)"] --> B["Magento product-import API"]
B --> C["Logidav product import"]
ProductService["ProductService"] -->|availability rows| QAvail["Availability queue"]
PriceService["PriceService"] -->|price rows| QPrice["Price queue"]
QAvail --> Batch["Processor batches up to 500 rows"]
QPrice --> Batch
Batch --> D["Magento REST import endpoint"]
Batch -. "unverified" .-> E["Marketplace delivery"]
The reviewed queue processors can return partial or failed batch status. A successful response from this Magento endpoint does not prove marketplace delivery.
Availability Calculation
Priority chain for availability dates
This priority chain is retained from existing documentation but was not checked in the current source packet. Verify the current implementation before using it as a customer-facing delivery estimate.
SaleProductAvailabilityService determines product availability using a priority chain. The first non-null value wins:
- Container arrival date -- if a container is in transit, use its expected arrival date
dispoClientDate-- explicit customer availability date set by logisticsavailablefield -- general availability flagavailabilityfield -- fallback availability indicator
The current ordering and customer-facing use still need source verification.
Current queue boundary
Both reviewed processors use the API path and split rows into batches of 500. ProductApi::importLogidavQueueBatch() posts queue metadata and bodies to rest/V1/logidav-api/import-logidav-queue, then normalizes the response to a boolean. The processor reports Success only when every batch is truthy; any false result becomes Partial/Failed. This is a local processor result, not confirmation that Magento applied every field or that a marketplace published it.
For arrival reservation values and restock notifications, follow Arrival reservations and restock notifications. For store visibility by availability, follow Stock updates.
php
// Usage example
$availabilityService = $this->get('mz.saleproductavailability');
$dispo = $availabilityService->getProductDispo($saleProduct);
$deliveryInfo = $availabilityService->getOrderDeliveryInfo($saleProduct);Side Effects
Database
- The product command imports through Magento; exact entity fields and create/update rules were not established in this review.
- The availability calculation above is existing documentation and has not been re-verified against source.
Queue
- Enqueues
ProductAvailabilityUpdateProcessorjobs when availability changes - Enqueues
ProductPriceUpdateProcessorjobs when prices change - The reviewed processors batch up to 500 rows and use the Magento API path. Installed processor schedules and retry behavior remain unknown; see Queue Model for broader documented context.
External Systems
- Posts availability/price queue batches to Magento's
/rest/V1/logidav-api/import-logidav-queueendpoint. - Marketplace propagation and bidirectional synchronization are not established by the reviewed source paths.
Failure Modes
Marketplace delivery is unverified
The reviewed generic queue path ends at Magento's Logidav import API. It does not establish marketplace API calls, rate limits, retries, or downstream delivery. Check a marketplace-specific producer/consumer before diagnosing this as a Logidav queue failure.
Partial or failed Magento batches
The API processors can report partial or failed batch status. Inspect the Magento response and the matching queue rows before concluding that all values were accepted. The marketplace impact and retry policy are not established here.
Debugging Path
- Identify the affected SKU and value, then record which system is expected to own it.
- Compare the relevant Logidav product data and queue entry using the approved local/runbook procedure.
- Follow the availability or price processor batch to Magento's API response; partial and failed results require row-level reconciliation.
- Do not infer marketplace delivery from an accepted Magento batch. For a marketplace symptom, locate its specific producer/consumer and schedule; those are not covered here.
- The documented availability priority chain above is not verified by this packet, so check the implementation before explaining a delivery estimate.
- Queue retry/deduplication behavior is not established in the reviewed files; follow Queue Debugging and record that gap if the path is absent.
Related Commands
| Command | Purpose |
|---|---|
menzzo:v2:products | Magento product-import command; installed schedule is unknown. |
ProductAvailabilityUpdateProcessor / ProductPriceUpdateProcessor | Queue processors that currently select the Magento API batch path. |
| Marketplace sync commands | Not identified by this source review; see the documented Marketplace Integrations overview. |
Evidence and Open Questions
Source-verified at axelites/logidav@42116ebc0ba509bce9cc6651a55ecefd9a5fdb38: product import command, availability producer, price producer, availability processor, price processor, and Magento queue import API.
Marketplace-specific producers and consumers, installed schedules, catalog field coverage, availability-priority implementation, and queue retry/deduplication behavior remain unknown in this source review.