-
Notifications
You must be signed in to change notification settings - Fork 2
Known Limitations
These findings apply to source commit fec65e2b67e18da3d9d3bf4c007d3c7fd5228537, reviewed September 9, 2026. No connector implementation changes were made for this wiki. Source findings below are distinguished from live-runtime acceptance, which was not performed.
| Finding | Evidence and consequence |
|---|---|
| Location import calls a missing method |
Multi cron plugin calls ProcessManagement::processOtherEntities(), which is absent from ProcessManagement. An isolated class-method check confirmed absence. The normal location processor is inactive; all does not bootstrap locations. |
| Multi-source shipment mapper uses the wrong data shape | LocationGrouper yields item arrays, while ShipmentMultiSource treats each group as a NetSuite Record. An isolated probe confirmed the incompatible yield and parameter types. |
| Constant product mapping has mismatched identifiers | The UI option value is public constant_magento_value, while the mapper/JavaScript expect constant_magento_value. The actual option and handler values were compared in an isolated probe. Selecting the ordinary constant option does not select the expected handler. See product mappings. |
| Queue warning counts use the wrong storage | SendQueueWarnings uses Magento's MySQL message-status collection instead of the connector's custom queue, with an import queue identifier in both checks. Built-in warning mail cannot establish connector queue health. |
| Admin Cancel leaves queue work intact | Cancel controller saves only monitor cancellation. It does not change the queue message. A cancelled monitor row is not evidence that processing stopped. |
| Scheduled order import bypasses eligibility checks | Order import disables extra record loading. ProcessManagement runs eligibility/already-imported checks only inside that extra-load branch. Unlinked sales orders can therefore be queued and fail when processed. |
| Customer address-field default is under the wrong path |
Defaults put magento_address_id_field under customers_import; the customer export config reads it under customer. Set the actual Customer Settings field explicitly. |
| Required address fields are not validated correctly |
Address importer checks isset() and equality to null together, so missing/null fields do not enter its missing-field list. |
| Item-group pricing can skip normal price arrays | The item-group price routine skips entries when the pricing collection is an array, leaving the fallback price. Verify item-group prices explicitly. See product mappers. |
| Area | Current behavior |
|---|---|
| Inventory disable switch | Global MSI reservation filtering and disabled shipment source deduction remain registered even when Enable integration is No. |
| Export failure and inventory | Reservation compensation also runs for terminal order-export errors. Test failure, cancellation, and replay effects on salable quantity. |
| Retry timing | The configured queue timeout does not delay retry selection in the custom queue resource. |
| Batch limit | The import loop can process an extra chunk beyond the configured batch target. |
| Run Again | Requeues an existing queue message; it does not restore a deleted message or execute synchronously. |
| Stuck recovery | Later stuck attempts can delete the queue row while retaining an error monitor record. |
| Scheduler locks | Locks depend on requested mode lists and a local filesystem. Different overlapping modes or multiple hosts are not coordinated by one global lock. |
| Credential selection |
all uses the general connection, not each flow's separate credential section. |
| Success reporting | Per-record errors may coexist with a zero CLI exit status. |
| Images | Import can remove Magento-only gallery entries; unchanged filenames can hide changed remote content. |
| Orders and cash sales | Direct export utilities use Add paths. They are not guaranteed idempotent retries after an uncertain write. |
| Refunds | The mapper creates/saves credit memos; gateway refund execution and safe repeated updates are not established. |
| Customer website matching | Customer-import email lookup is not website-scoped. The existing-customer branch does not apply new default store/group assignments. |
| Address identity | Customer-address netsuite_internal_id is created as an integer attribute, while export address matching uses a hash value. The import address mapper also contains an unfinished ID-persistence note. Round-trip address identity needs integration testing. |
| Pricing | Tier import includes hard-coded All Websites [USD] handling and iterates pricing levels. Validate currency, website, group, kit tiers, and multiple price levels. |
| Discount setup | There is no default discount-provider selection. Explicitly save body or line before sales processing; otherwise mapper construction throws an exception. |
| Item-group fulfillments |
custcol_parent_id support is explicitly marked as a proof of concept in the shipment interface. It is not a complete item-group fulfillment guarantee. |
| Credentials | Admin secret fields are ordinary text fields without this module declaring an encrypted configuration backend. Do not assume automatic encryption or display masking. |
These behaviors are explained in the relevant inventory, monitoring, customer, product, and scheduling guides.
The package does not implement the separate Rocket Web B2B or full Import Orders add-ons, their CLI commands, REST transport, RMA import, native NetSuite Invoice import, or full remote order edits. The default get_returns value, retry timeout, old error-log retention setting, and broad historical UI wording must not be interpreted as proof of those capabilities.
The package has no tagged release or execution evidence for a complete automated test run at the reviewed commit. PHP syntax and manifest checks passed. See Testing and validation for exact evidence and the remaining acceptance work.
SOAP and TBA lifecycle changes require a transport migration plan. This package currently uses SOAP endpoint 2024_2; changing an endpoint string does not convert it to REST or OAuth 2.0. Refer to NetSuite setup and recheck Oracle's published lifecycle when planning a deployment.
Mage-OS Labs · Source · Reviewed commit fec65e2 · September 9, 2026 · Validation and limitations
Mage-OS NetSuite Connector
Setup
Data flows
Operations and development