Skip to content

BigBuy ​

BigBuy is handled as a dropship supplier. The source uses the product value drop_ship = "bigbuy"; this exact lowercase value controls whether a new processing sale product is sent to BigBuy.

Evidence boundary

The flow below is verified against Logidav commit 42116ebc0ba509bce9cc6651a55ecefd9a5fdb38. It describes code behavior only. The active BigBuy account, cron schedule, API credentials, and the deployed revision still need runtime or owner confirmation.

Entry points ​

OperationCommand or eventWhat the source does
Product import`menzzo:bigbuy:products --onlyCreatedProducts=01`
Category importmenzzo:bigbuy:categoriesCalls the BigBuy category service under a lock.
Shipping ratesmenzzo:bigbuy:shipping:shipping-rate-syncReads gls-shipping-costs-csv-en.csv, chrono-shipping-costs-csv-en.csv, and tnt-shipping-costs-csv-en.csv from data/erp/bigbuy/rates-csv/, then updates local rate rows.
Order submissionAfterSaleProductCreatedFromSaleEvent and AfterSaleProductUpdatedFromSaleEventSends each eligible BigBuy line to the BigBuy order API and stores the returned order id.
Tracking importmenzzo:bigbuy:sale:expedition-checkPolls BigBuy tracking for local lines with a BigBuy order id and no tracking id, then marks the line shipped.

The product command's option is a mode selector, not a dry run. There is no source-backed dry-run option on this command.

Order submission rules ​

BigbuyBundle\Services\OrderService::processSaleProduct() sends a line only when all of these conditions hold:

  1. The sale status is processing.
  2. The final product has drop_ship = "bigbuy".
  3. The line has no bigbuy_order_id.
  4. The line is not already shipped.

The request uses the supplier SKU from the BigBuy product record. For a composed product, it resolves the first component and multiplies the requested quantity by the number of component SKUs. The carrier list defaults to chrono and gls; a non-empty ProductInfo.bigbuyCarrier replaces that list with the configured value.

On a successful HTTP 201 response with a Location header, the service extracts the order id from /rest/order/<id> and saves it on the sale product. Failures roll back the local transaction and create a BigbuyAlert; the source does not retry inside this event handler.

Tracking and local shipment state ​

menzzo:bigbuy:sale:expedition-check selects non-canceled, non-shipped lines with a BigBuy order id and no local tracking id. It reads tracking numbers from BigBuy, appends them to the sale tracking list, sets is_sent_expedition, shipped_at, tracking_id, track_number, carrier, and is_shipped, then creates a local shipment record and rechecks the sale completion state.

The source maps BigBuy carrier ids to names such as CHRONOPOST, GLS, SEUR, TNT, DHL, UPS, and DACHSER. It currently builds tracking links with the GLS tracking URL for every returned tracking number, even when the carrier label is different. Treat those links as a source-level discrepancy to verify before using them operationally.

Product and rate data ​

The product service imports BigBuy catalog rows through the BigbuyApi, normalizes supplier fields into the local catalog, queues price changes, and maintains the BigBuy product relation. Category import and shipping-rate sync are separate commands; a successful catalog import does not prove that local categories or shipping rates are current.

Configuration and runtime checks ​

Runtime checks still needed

Confirm the installed cron entries, parameter keys, current BigBuy API response contract, and downstream Magento or marketplace readback before treating this page as an operational runbook.

Error handling ​

Order submission failures roll back the local transaction and create a BigbuyAlert; tracking and rate-file failures remain dependent on the command's output/logging. Confirm the installed cron and alert routing before treating these as monitored recovery paths.

Source locations ​

  • src/BigbuyBundle/Services/ProductService.php — catalog import and local product mapping.
  • src/BigbuyBundle/Services/OrderService.php — event-driven order submission and idempotency guard.
  • src/BigbuyBundle/Command/Sale/SaleExpeditionCheckCommand.php — tracking import and local shipment mutation.
  • src/BigbuyBundle/Command/ShippingRate/ShippingRateSyncCommand.php — local rate-file import.

Internal developer documentation for Menzzo systems.