Do not describe channel integration as a universal native connection
Start with what Shopify actually provides
Shopify can manage products, variants, inventory items, locations, orders, fulfillments, refunds, Markets, and sales channels. Installing a channel does not automatically create a complete Lazada or Shopee connection for every country, seller, shop, or venture. Shopify's first-party sales-channel material covers Shopify-owned and third-party channels, while third-party behavior and support remain the responsibility of the channel developer. “Shopify natively connects every Southeast Asian Lazada and Shopee shop” is therefore not a safe statement.
Classify the real connection before designing it. It may be a traffic channel, an order-generating marketplace, or an application/custom integration that exchanges catalog, stock, orders, and reverse flows. Pricing, checkout, order creation, refunds, and buyer-data behavior differ between those classes. Do not copy a rule from Google, TikTok, Temu, or another marketplace and apply it to Lazada or Shopee without checking the relevant first-party material.
Keep merchant responsibility outside the channel
Third-party channels are maintained by their developers. A developer can change fields, permissions, support scope, and error responses. Keep the application name, version, scopes, support owner, country/shop list, and pause switch in the operating record. If a channel no longer meets requirements or becomes unsupported, pause the affected writes and publishing actions, preserve received facts, and let the accountable owner choose a reviewed replacement or manual path.
Adding a sales channel can make existing products available by default. “Installed” does not mean that the assortment has been approved. Review availability product by product, market by market, and channel by channel. Channel Markets and a parent-market catalog can combine, so a separate channel catalog does not automatically exclude products that the parent catalog already exposes.
Write only boundaries that can be verified
This guide uses the first-party facts in the supplied closed research pack. Lazada authorization, venture context, product, stock, orders, reverse-order, shipment, and push behavior remain subject to application scope and current documentation. For Shopee, use the Shopee Open Platform as the partner-document entry point. Endpoint names, quotas, token lifetimes, webhook topics, status names, country coverage, and fulfillment promises require a permitted seller-console session; they must not be copied from search results, a consumer page, or an old integration note.
Map countries, shops, and authorization topology first
Treat every venture as an independent context
“Multi-country” is not achieved by replacing a country label in one row. One Shopify store may serve several Markets, while Lazada manages seller authorization, products, warehouses, orders, and settlement in a venture context. Shopee shop and country context must likewise be taken from the current permitted console. Every operational record should carry platform, country or venture, seller/shop, warehouse, currency, and authorization version rather than one global channel key.
When the same seller SKU appears in two countries, create two listing relationships with their own venture context. When a physical warehouse serves several markets, retain each market's sellable quantity, reservation rule, and delivery constraint. Credentials, cursors, and retry queues must be venture-scoped. Reusing a Singapore credential, host assumption, or status set for a Malaysia flow can produce a superficially successful request with facts stored in the wrong shop.
Assign owners for authorization, refresh, and revocation
Lazada's current material describes an OAuth 2.0 code-for-token flow and access/refresh-token lifecycle. Store authorization time, scopes, seller/venture, refresh result, and revoked state, but never place refresh tokens in logs, spreadsheets, or browser output. If authorization fails, pause that venture's writes, then verify account, scope, application state, and the current authorization path. Do not infer a Shopee token lifetime without the permitted console evidence.
Authorization is not permanent business permission. A seller may revoke an app, change an operator, move a shop, or remove a warehouse. Record only the minimum diagnostic response needed to explain a refresh or revocation. Keep already imported orders and reconciliation evidence after a revocation, but pause new catalog publication, inventory writes, and order acknowledgements until new authorization is reviewed.
Match credentials to the data boundary
Request access only to products, stock, orders, packages, refunds, or finance fields that the workflow needs. The Lazada developer agreement emphasizes necessity, consent, security, and data protection. A response containing a buyer address or telephone number is not a reason to retain every field. Apply the same minimization principle to Shopee, while leaving its platform-specific requirements for the permitted console. The data inventory should have separate columns for “returned by the platform” and “required by the task.”
Assign field ownership to a specific system
Separate the Shopify catalog from a marketplace listing
A Shopify product and variant represent a sellable store object. A marketplace listing represents an object for a particular platform, seller, venture, country, and warehouse. Titles, descriptions, images, brands, categories, and attributes may require a language or category transformation before acceptance. A Shopify product key is not automatically a marketplace item or model key, and a title is not a durable identity across countries.
Assign an owner to every field. Shopify can own store product facts; the transformation layer and marketplace category rules can own required output attributes; an acceptance response owns a marketplace listing state; and the platform or finance record owns fulfillment and settlement facts. When two systems disagree, create a review item with both versions instead of silently choosing the last response.
Give quantity, sellable stock, and settlement different owners
Physical stock may be governed by a Shopify location, a third-party warehouse, or a marketplace warehouse. Order totals, discounts, shipping, tax, commission, and settlement may also come from different systems. For each field, document who may write it, who may read it, when it becomes effective, and how it can be withdrawn. An inventory service should not rewrite price, and an order import should not replace a Shopify financial field with a marketplace settlement amount.
Ownership also covers lifecycle actions: who may create a listing, accept a review, confirm a package, cancel an order, issue a refund, or correct a settlement difference. Use the same field table for permission review and test that an unauthorized action is rejected into a review queue rather than silently accepted.
The initial ownership contract can look like this:
| Fact layer | Shopify-side fact | Marketplace-side fact | Integration-ledger fields | Forbidden mix-up |
|---|---|---|---|---|
| Catalog identity | Product, variant, inventory item | Listing, item/model, seller SKU, venture | Stable mapping key, version, transform result | Treat a Shopify variant as a marketplace listing |
| Stock | Location, available, reserved states | Warehouse, sellable, frozen, reserved quantity | Batch, event time, before/after quantity, reconciliation result | Overwrite fresh stock with a delayed snapshot |
| Order | Order, line, fulfillment, refund | Order, item, package, reverse-order state | Platform, venture, event key, cursor, retry | Treat both status vocabularies as synonyms |
| Money | Discount, shipping, tax, refund fields | Commission, payment fee, ads, settlement adjustment | Amount type, currency, event time, evidence | Call a gross order amount revenue |
| Privacy | Necessary buyer and fulfillment fields | Buyer fields returned by the platform | Purpose, access, retention, deletion evidence | Retain every returned field indefinitely |
Use business time instead of arrival order
Retain occurred_at, received_at, loaded_at, and the source revision for each fact. A late older stock or order event must not erase a newer business fact, but receipt time alone is not sufficient because retries alter arrival order. When the revision cannot be determined, keep the response reference and rejection reason in a bounded review queue. Diagnostic records should explain the decision without copying unnecessary buyer data.
Keep products, SKUs, and listings distinct
Build a traceable identifier map
A Shopify variant may map to different marketplace item/model identifiers in different ventures, or may be rejected after a category change. The mapping should include Shopify product/variant, seller SKU, marketplace item/model, platform, venture, country, warehouse, language, transform version, and state. Record where each key came from, when the relationship began, and when it ended.
Do not put an item/model value into a Shopify SKU merely for convenience. Do not use a title, image URL, or sort position as identity. If a listing is deleted and recreated, create a new relationship; an earlier order keeps the listing that it referenced at the time. Substitutes and split packages need their own mappings so that one SKU relation cannot hide two different fulfillment outcomes.
Validate category and required attributes before publishing
Lazada product writes may be subject to category attributes, quality control, venture rules, and asynchronous responses. Put a request into pending, save a request summary and transformation version, and move it to live only after the relevant marketplace acceptance result. Missing required attributes, brand approval, images, or dimensions should isolate that SKU and preserve the rejection reason; one successful line must not make an entire batch sellable.
Do not assume that Shopee uses the same category fields, image rules, or review states. The control pattern—request, asynchronous result, per-SKU isolation—can be reused, but every Shopee-specific field, state name, and limit belongs to an enablement check in the permitted Open Platform console. Consumer-page scraping, unofficial SDKs, and old PDFs are not current API evidence.
Preserve localized content and catalog scope
Titles, descriptions, attributes, and image text may be transformed by country, language, and platform. Keep the original value, destination language, transformation version, manual edit, and acceptance response. Shopify channel and Markets catalogs can overlap, so recheck products that become available after a channel is added. If a country must not sell a SKU, block it before publication rather than waiting for a marketplace rejection.
Use this identifier and lifecycle table during acceptance:
| Record | Required keys | Lifecycle | Success condition | Failure route |
|---|---|---|---|---|
| Shopify product/variant | Product, variant, inventory item | Draft, sellable, archived | Catalog fields complete and owner approved | Return to catalog repair queue |
| Lazada listing | Seller, venture, item/model, seller SKU | Pending, accepted/live, rejected | Authorization, category, attributes, images, and result reference | Isolate SKU and retain rejection |
| Shopee listing | Permitted shop/country context, item/model, seller SKU | Use the state shown by the current authorized console | Platform-specific fields and state were rechecked | Pause writes and request platform review |
| Transformation version | Input keys, output fields, rule version | Draft, reviewed, invalid | Replayable with a named owner | Return to mapping/rule repair |
| Mapping ledger | Platform, venture, warehouse, both stable keys | Valid, paused, substitute, invalid | A one-to-many relation has a reason | Quarantine conflict; do not guess |
Synchronize quantity by location, warehouse, and ledger
Choose one write owner for each stock pool
One physical stock pool needs one clearly named write owner. If a Shopify location is authoritative, calculate the publishable quantity from location, reservation, and safety-stock rules before sending it to a marketplace. If a warehouse is authoritative, let Shopify and the marketplace consume the same versioned fact. Do not let two scheduled tasks overwrite one another or copy a delayed single-channel total into every country.
Before publishing sellable stock, deduct safety stock and outstanding reservations. Store the input quantity, deductions, published quantity, source event, and destination warehouse. The same seller SKU may share a physical pool across countries or use separate pools; the allocation rule must be explicit. If a warehouse mapping is missing, return the quantity to review instead of sending it to a default warehouse.
Use idempotent writes for concurrent orders
An inventory write key should include platform, venture, warehouse, SKU, source-event revision, and action type. Keep before/after quantity, request summary, response, and retry count. Replaying one event must not deduct twice. When two channels order concurrently, ask the stock owner to apply its atomic rule again. Negative stock, an unusually large delta, or a stale event belongs in quarantine rather than an unlimited retry loop.
Cancellation, failed delivery, return, and manual marketplace adjustment can all change sellable stock. Each restoration or freeze action needs an event and reviewer. A canceled order should not automatically add units back before the physical and marketplace condition is known. Marketplace sellable, frozen, and reserved states may not have the same meaning as Shopify available; map them explicitly.
Combine refresh, push, and full reconciliation
Lazada's order-list material describes a paginated, status-based workflow. Push can accelerate discovery, but polling and periodic full reconciliation are needed to demonstrate completeness. Shopee push and polling behavior must be checked in the permitted console; do not assume it is identical to Lazada. Save cursors by venture and resource, and use overlapping time windows for boundary updates.
Reconciliation compares more than counts. Compare SKU, warehouse, state, revision, rejected rows, and the last trusted quantity. If a marketplace quantity differs from the calculated Shopify quantity, freeze automatic writes for that SKU, record the direction and revision of the difference, and let the stock owner correct it. A successful response alone is not evidence that the ledger is complete.
Build a state machine for orders, packages, and status
Persist marketplace order identity before creating a local view
Before importing an order, save marketplace order, item, package, seller/venture, and platform-event references. Then create or update the Shopify-side order or fulfillment view. One marketplace order may split into several packages, and one Shopify order may relate to multiple marketplace items. If the stable key is not recorded, never match by buyer name or product title as a temporary shortcut.
The state machine should name who may acknowledge, reserve, pack, ship, cancel, refund, and close an order. Shopify, Lazada, and Shopee state vocabularies are not assumed to be one-to-one. Keep original state, normalized state, platform, event time, and transformation version. A state that is not supported by current platform material should remain pending review rather than be assigned a guessed label.
Handle duplicate pushes and cursor restarts
For each push or poll row, store event key, payload summary, platform time, receipt time, cursor before and after, and processing result. A duplicate message may update an explainable receipt record but must not create a second order, package, or refund. If a cursor expires, read a bounded overlapping window and deduplicate by event and line key. An unparseable payload goes to a dead-letter queue with minimum audit data.
Separate receiving from acknowledging
Receiving an order does not mean stock has been confirmed or that shipment can begin. Order import, reservation, package creation, shipment confirmation, refund, and settlement have distinct permissions and retry boundaries. If one step fails, pause the next action that would change an external fact while preserving incoming evidence. After review, continue from the versioned state transition instead of replaying the entire order set.
Use platform-neutral internal stages while retaining each platform's original state beside them:
| Internal stage | Shopify view | Lazada evidence | Shopee handling | Next owner |
|---|---|---|---|---|
| Received | Order and lines are persisted | Order and venture references are stored | Keep the original state and permitted-console reference | Order integration owner |
| Needs confirmation | Waiting for stock and scope checks | Pagination, authorization, and warehouse are complete | Verify the state in the current permitted session | Stock and authorization owner |
| Ready to fulfill | Create a fulfillment task without claiming shipment | Package and warehouse conditions are satisfied | Advance only after an authorized state mapping | Fulfillment owner |
| Reverse in progress | Refund or return task is separate | Reverse-order or failed-delivery evidence is retained | Keep original state and review manually | Returns owner |
| Closed | Order snapshot and reconciliation are complete | Settlement and refund references are complete | Closure condition comes from authorized material | Finance and data owner |
Combine push, polling, idempotency, and reconciliation
Use push for fast discovery, not as the only truth
Events can reduce discovery delay, but they may be duplicated, reordered, incomplete, or limited to one kind of change. After receiving a push, validate platform, venture, signature or authorization context, then read the complete object through the approved route. Resources without push still need paginated polling; “no event today” is not proof that no order changed.
Store the start and end of a polling window, cursor, page or stable position, and the last complete result. Use a bounded overlap so updates at a time boundary are not missed. Partition large catalog and order work by venture, warehouse, or state so one failed slice does not invalidate all other slices.
Make idempotency cover the business action
A listing publish, inventory update, cancellation, refund, or package confirmation may be submitted again after a timeout. The idempotency key should contain action type, object key, source revision, and destination venture. Save the marketplace result. If a platform does not expose a clear idempotency facility, lock the local ledger first and query the result before deciding whether another write is safe.
Use reconciliation to prove completeness
Periodic reconciliation compares source rows, destination rows, accepted and rejected counts, quantities, states, fees, and settlement times. Classify differences as delay, duplicate, missing row, mapping error, permission error, or a real business change. Each class needs an owner, pause rule, and restoration evidence. A report must not call gross order value revenue, or describe one successful request as real-time, lossless, or an overselling guarantee.
Cover cancellations, reverse flows, failed delivery, and settlement
Treat reverse logistics as its own state domain
Cancellation, return, refusal, failed delivery, replacement, and partial cancellation change product, package, stock, and settlement facts. Do not collapse “refunded” into “returned to stock.” Keep the original order line, package, reason, logistics evidence, refund action, stock inspection, and manual decision. Lazada material mentions reverse-order capabilities, but fields and availability depend on authorization and current documentation; Shopee states require the permitted console.
If a return has not reached the warehouse, do not add it to sellable stock. If a refund has occurred while the parcel has not returned, record those facts separately. A partial cancellation or split package affects its own line or package and should not close the entire order. A replacement needs a new item relationship and a clear link to the original order evidence.
Give failed delivery a human decision path
Wrong address, carrier failure, buyer refusal, or a marketplace-closed package may require reshipment, cancellation, refund, or support confirmation. The transition must state who decides, which evidence is needed, whether a fee adjustment is expected, and which system writes the next step. If a platform state cannot map to a local state, retain the original state and enter support review instead of marking it complete.
Link settlement adjustments back to the order
Settlement can occur after order, fulfillment, or refund events and can contain commission, payment fee, advertising fee, shipping, tax, and other adjustments. Give each amount a platform, venture, currency, type, event time, settlement batch, and order/package reference. Reconcile order total, customer payment, fees, refunds, and settlement separately. Do not infer gross margin or revenue without an agreed country, currency, tax, and attribution rule.
Separate Markets, catalog, price, and currency
Check channel and parent-market catalogs together
Shopify Markets can govern market availability, price, and currency, while a channel catalog may combine with a parent-market catalog. When a channel is added, review the products that become available by default. For each country, test collection, search, direct visit, price, stock, listing acceptance, and order routing. Store visibility in Shopify does not prove that the marketplace will accept or expose the product.
For a market-excluded product, retain the reason, market scope, and effective time. A product visible in one country and hidden in another may require separate listing, stock, price, and fulfillment checks. A localized URL or language switch is a presentation fact, not evidence that a marketplace listing has been approved.
Make currency conversion traceable
Keep product price currency, market display currency, order payment currency, fee currency, and settlement currency as separate values. Store the rate source, effective time, rounding rule, and amount type. Do not multiply a display price by an undocumented rate and call the result settlement. Refunds, discounts, shipping, and tax have their own timing and currency context.
State attribution limits in reports
Traffic channels, order-generating channels, marketplace discounts, and advertising costs can coexist. A report should distinguish touchpoint, order ownership, platform fee, and settlement time. If no common attribution rule exists, show source fields side by side instead of deciding which marketplace generated more revenue. Any attribution field supplied by an application or marketplace needs its source and time window.
Before enabling a country or venture, retain evidence for each row in this acceptance matrix:
| Acceptance item | Lazada venture (SG/MY/TH/VN/ID/PH listed in the material) | Shopee permitted shop/country context | Evidence to retain |
|---|---|---|---|
| Authorization | Central authorization service with seller and venture bound together | Verify seller, shop, and scope in the current Open Platform session | Authorization version, scope, refresh, and revocation result |
| Catalog | Category, required attributes, images, and asynchronous acceptance | Confirm platform-specific fields and review in the current console | Input/output version, listing result, and rejection reason |
| Inventory | Warehouse, sellable quantity, reservations, and safety stock | Do not assume the warehouse or sellable rule | Before/after quantity, event, and reconciliation difference |
| Orders and reverse flow | Paginated orders, packages, reverse-order and refund references | Verify states, packages, and returns in permitted material | Order/item/package keys, cursor, and event summary |
| Fees and privacy | Necessary order/finance fields under the agreement | Recheck purpose, access, retention, and deletion rules | Currency, amount type, purpose, and handling record |
Build a comparable ledger for fees, attribution, and privacy
Keep GMV, payment, and revenue separate
At minimum, store merchandise total, seller discount, marketplace discount, shipping, tax, commission, payment fee, advertising fee, refund, and settlement adjustment separately. Each row needs amount type, currency, source, order or package, settlement batch, and event time. A gross merchandise amount is an order fact; it is not automatically revenue, and a settlement deposit is not automatically gross profit.
Set country, venture, currency, tax, and refund rules before aggregating cross-market results. If a country's fee field is unavailable, expose the gap instead of borrowing another country's rate. Fixed commissions, tax rates, delivery service levels, conversion lifts, and revenue lifts require dated first-party evidence for that country and should not be presented as universal platform behavior.
Retain only buyer data needed for the task
Fulfillment, support, fraud handling, or a legal obligation may require selected buyer fields. For each field, record purpose, access role, encryption, retention period, correction/deletion route, and cross-border transfer boundary. The Lazada developer agreement emphasizes necessity, consent, security, and data protection. A Shopee response should be minimized in the same way, subject to its current authorized terms. Do not copy every address, telephone number, or optional note into a long-lived analytics table merely because the response contains it.
Make correction and deletion verifiable
A buyer correction or deletion request should reference country, platform, shop/venture, object, and outcome without putting a secret in an audit log. Deletion does not mean discarding a necessary order or financial record; privacy and legal owners decide the minimum facts that remain. When authorization is revoked or an app is removed, stop optional data collection, clear data no longer needed, and retain the action time and responsible owner.
Close with failure queues, rollback, and a runbook
Isolate failures by action
Category rejection, missing required attribute, image rejection, revoked authorization, wrong venture, unmapped warehouse, negative stock, duplicate push, cursor failure, and fee difference each need an owned queue. Store object key, platform, venture, error class, response reference, retry count, and next action. One failed SKU should not force an entire batch to replay, and a permission error should not enter an unlimited retry loop.
Pause writes while preserving incoming evidence
During a connector outage, pause product publication, inventory updates, order acknowledgements, and refund writes that would change external facts. Continue to preserve minimized incoming evidence, event keys, cursor positions, and diagnostic summaries. Customers and operators should see “needs review,” not a false synchronization success. Before recovery, verify authorization, mappings, warehouses, transformation version, stock differences, and dead-letter scope, then replay bounded slices.
Roll back only the new relationship or rule
If a change adds listing mappings or synchronization rules, rollback removes only those new mappings or rules and preserves Shopify products, historical orders, existing platform mappings, settlement evidence, original slugs, titles, and dates. If an external marketplace was already changed, deleting a local row does not prove that the external fact was reversed. The accountable platform owner must use the authorized process and record its result.
Use this failure and recovery matrix as the minimum runbook:
| Failure | Immediate action | Customer-facing state | Recovery evidence | Forbidden action |
|---|---|---|---|---|
| Category, attribute, or image rejection | Isolate the listing and retain the response | Needs repair; do not expose as sellable | Category rule, corrected version, accepted result | Replay a whole batch or fabricate success |
| Revoked authorization or wrong venture | Pause that venture and verify credentials | Connection needs review | New authorization, shop/venture, scopes, test record | Reuse another country's credential |
| Duplicate or late order event | Deduplicate by platform/venture/event key and read the overlap | Keep the last trusted state | Cursor, window, event summary, reconciliation | Overwrite by arrival time |
| Concurrent order, negative stock, or missing warehouse | Freeze quantity writes and open a stock item | Needs confirmation or temporarily unavailable | Stock owner, before/after quantity, warehouse mapping | Publish a delayed total as stock |
| Split package, failed delivery, or return | Split state and stock inspection; escalate | Show the affected package state | Logistics, refund, receipt, and transition evidence | Treat refund as returned stock |
| Settlement or privacy difference | Quarantine amount/data fields and notify owner | Do not show an unchecked aggregate | Amount type, currency, batch, purpose, and action record | Call GMV revenue or retain all buyer data |
Make multilingual SEO and channel explanations consistent
Fix terminology, market, and connector boundaries first
The terms channel, shop, venture, listing, sellable, and settlement must keep the same meaning across languages. Create the glossary, field ownership, and market scope before translating titles, attributes, errors, and FAQ answers. The Shopify multilingual setup guide can provide related language and market context, but it does not prove that a marketplace has authorized a connection.
Keep Lazada names in their platform context: a venture, seller, and warehouse are not one generic “Southeast Asian shop.” Shopee country, shop, and scope must be read from the permitted console. An English page should call an unverified platform detail “needs verification” rather than turning a missing detail into a capability promise.
Validate URL, Markets, and visible catalog together
Markets can change language, currency, product visibility, and price, while a localized URL or canonical does not prove that a listing passed marketplace review. Use the Markets guide for the store-side market context, then test channel catalog, parent-market catalog, direct visit, search, price, stock, listing acceptance, and delivery messaging by country. A product that appears in Shopify must still pass the marketplace's own review.
Use same-language FAQ and first-party evidence
An English FAQ should answer authorization, stock, order, fee, and privacy boundaries in natural English. Operators can use the analytics guide to review field definitions, the mobile design guide to test a selector, and the checkout flow guide to review order lines and stock changes. The following first-party URLs are copied from the closed pack and marked as checked on 2026-08-30. They describe platform boundaries; they do not replace a current seller authorization.
Shopify first-party references
- Sales channels
- Managing sales channels
- Marketplace sales channels
- Sales channels and Markets
- Creating catalogs for Markets
- Shopify webhooks
- Inventory quantities and states
- Orders and fulfillment apps
Lazada first-party references
- Lazada seller authorization
- Lazada authorization policies
- Lazada venture API endpoints
- LazOP 2.0 overview
- Lazada order retrieval
- Lazada product creation workflow
- Lazada Open Platform developer agreement
Shopee first-party entry
- Shopee Open Platform
Frequently asked questions
Does Shopify natively connect every Lazada and Shopee country?
No universal connection should be assumed. Shopify provides sales-channel and Markets capabilities, but its official channel material is not a promise that every country, venture, seller, or shop has one native Lazada/Shopee connector. Actual scope depends on an application or custom integration, seller authorization, country, category, permission, and current platform documentation. Check catalog, orders, stock, logistics, refunds, and support scope per shop before enabling it.
Can the same seller SKU directly reuse a listing ID in another country?
Do not assume so. A seller SKU can help identify the same sellable item, but another country or venture may create a different item/model, category attribute set, warehouse, price, currency, and review outcome. The map should include platform, venture, listing, warehouse, and transformation version. An earlier order keeps its original listing reference; a recreated listing is a new relationship.
Can push and polling be reduced to one method?
It is safer to use both where the platform supports them. Push accelerates discovery but can be duplicated, reordered, or incomplete. Paginated polling and periodic full reconciliation establish completeness. Lazada's order material explicitly involves pagination and state; Shopee push and polling details must be checked in the permitted console. Both paths need cursors, overlap windows, idempotency, dead letters, and reconciliation.
How should order amounts, platform fees, and settlement be reconciled?
Keep merchandise total, discounts, shipping, tax, commission, payment fee, advertising fee, refund, and settlement adjustment separate. For each amount retain platform, venture, currency, time, settlement batch, and order/package reference. GMV is not revenue, and a settlement deposit is not automatically gross profit. If a country lacks first-party fee evidence, show a data gap instead of borrowing another country's rate.
Can Shopee endpoints, states, or quotas be copied from online material?
No. The canonical partner entry is Shopee Open Platform, and detailed partner documentation may require an authorized session. Until the current seller console is opened and reviewed, do not state an endpoint, version, quota, token lifetime, webhook topic, state list, country scope, or fulfillment promise. Consumer-page scraping, unofficial SDKs, old PDFs, and another integrator's field names are not current evidence.