diff --git a/content/applications/sales/sales.rst b/content/applications/sales/sales.rst index c25b91935f..b6d7a201ee 100644 --- a/content/applications/sales/sales.rst +++ b/content/applications/sales/sales.rst @@ -22,4 +22,5 @@ deliver and invoice what has been sold. sales/commissions sales/amazon_connector sales/shopee_connector + sales/lazada_connector sales/gelato diff --git a/content/applications/sales/sales/lazada_connector/features.rst b/content/applications/sales/sales/lazada_connector/features.rst new file mode 100644 index 0000000000..c9565d8670 --- /dev/null +++ b/content/applications/sales/sales/lazada_connector/features.rst @@ -0,0 +1,83 @@ +========================= +Lazada Connector Features +========================= + +The **Lazada Connector** synchronizes orders, products, inventory, and fees between Lazada and Odoo, +streamlining your marketplace operations in Southeast Asia. It reduces manual data entry, enhances order +management, and includes advanced features like platform fee synchronization and order splitting, enabling +efficient management of Lazada sales within Odoo. + +Supported features +================== + +The **Lazada Connector** is able to: + +- Synchronize (Lazada to Odoo) all confirmed orders (:abbr:`FBM (Fulfilled By Merchant)`) with status + :guilabel:`READY_TO_SHIP` or :guilabel:`PROCESSED`, including: + + - Product name + - SKU reference + - Quantity + +- Synchronize (Odoo to Lazada) all available quantities of your products (:abbr:`FBM (Fulfilled By + Merchant)`). +- Synchronize the Lazada product catalog into Odoo or map existing Odoo products to Lazada SKUs. +- Synchronize platform fees (e.g., commissions, transaction fees) to the order receipt in Odoo. +- Support order splitting for flexible fulfillment, enabling partial shipments or backorders. +- Arrange package pickups with supported logistics providers directly in Odoo. +- Support multiple seller accounts. +- Support multiple Lazada marketplaces (shops) per seller account. +- Enable configuration of specific warehouses for stock fetching (:abbr:`FBM (Fulfilled By Merchant)`). + +The following table lists capabilities provided by Odoo when using the Lazada Connector: + ++---------------------------+----------------------------+-------------------------------------+ +| | Fulfilled By Lazada (FBL) | Fulfilled By Merchant (FBM) | ++===========================+============================+=====================================+ +| **Orders** | Synchronize completed | Synchronize all confirmed and | +| | orders. | unshipped orders. | ++---------------------------+----------------------------+-------------------------------------+ +| **Shipping** | Shipping cost is computed | Shipping cost is computed by Lazada | +| | by Lazada, and included in | and included in the synchronized | +| | the synchronized order. | orders. | +| +----------------------------+-------------------------------------+ +| | Shipping done by Lazada. | A delivery order is automatically | +| | | created in Odoo for each new order. | ++---------------------------+----------------------------+-------------------------------------+ +| **Stock Management** | Managed by Lazada, and | Managed in Odoo Inventory app, and | +| | synchronized with a virtual| synchronized with Lazada. | +| | location to follow it in | | +| | Odoo. | | ++---------------------------+----------------------------+-------------------------------------+ +| **Delivery Notifications**| Handled by Lazada. | Delivery information are fetched | +| | | from Lazada,and synchronized | +| | | in Odoo. | ++---------------------------+----------------------------+-------------------------------------+ + +.. note:: + The **Lazada Connector** is designed to synchronize sales orders, inventory, and fee data. Other + actions, such as downloading monthly fee reports, handling disputes, or issuing refunds, **must** + be managed from the *Lazada Seller Center*, as usual. + +Lazada supported marketplaces +============================= + ++----------------------------+ +| **Southeast Asia region** | ++============+===============+ +| Indonesia | Lazada.co.id | ++------------+---------------+ +| Malaysia | Lazada.com.my | ++------------+---------------+ +| Philippines| Lazada.com.ph | ++------------+---------------+ +| Singapore | Lazada.sg | ++------------+---------------+ +| Thailand | Lazada.co.th | ++------------+---------------+ +| Vietnam | Lazada.vn | ++------------+---------------+ + +.. seealso:: + - :doc:`setup` + - :doc:`manage` diff --git a/content/applications/sales/sales/lazada_connector/manage.rst b/content/applications/sales/sales/lazada_connector/manage.rst new file mode 100644 index 0000000000..da8def99eb --- /dev/null +++ b/content/applications/sales/sales/lazada_connector/manage.rst @@ -0,0 +1,164 @@ +======================== +Lazada Order Management +======================== + +This guide explains how to manage Lazada orders, inventory, deliveries, and sales reporting within +Odoo using the **Lazada Connector**. It covers product catalog mapping, order synchronization, +delivery processes, platform fee handling, and sales analysis to streamline your marketplace +operations in Southeast Asia. + +Product Catalog Mapping +======================= + +New Odoo Customers with No Existing Products +-------------------------------------------- + +If you are starting a new Odoo database and your products exist only on Lazada, you can import +your Lazada product catalog into Odoo. + +1. Export Lazada Catalog: In `Lazada Seller Center +`, use the :guilabel:`Bulk Manage` drop-down +to export your product catalog, including Lazada SKUs. + + .. image:: manage/lazada-bulk-edit.png + +2. Import into Odoo: Import the exported catalog into Odoo via :menuselection:`Inventory --> + Products --> Import`. Map the Lazada SKU to the :guilabel:`Internal Reference` field in Odoo + to link your Lazada and Odoo products. + +Existing Odoo Customers with Products Already in Odoo +----------------------------------------------------- + +If you have an existing product catalog in Odoo, map your Lazada listings to these products. + +- Use the :guilabel:`Sync Product Catalogue`button in Odoo to automatically match active Lazada products. + + .. image:: manage/lazada-sync-product.png + +.. important:: + Product catalog synchronization is an automated process initiated from the synchromization. Ensure accurate + SKU mapping to avoid duplication errors. + +Order Synchronization +===================== + +Orders are automatically fetched from Lazada and synchronized in Odoo at regular intervals +(every 60 minutes). + +- Synchronization Scope: Only orders with status :guilabel:`READY_TO_SHIP` or + :guilabel:`PROCESSED` are fetched, as these require shipping action. +- Status Updates: When an order is canceled on Lazada, its status updates in Odoo. However, + canceling an order in Odoo does not reflect on Lazada. +- Customer Creation: For each synchronized order, Odoo creates a sales order and a customer + (contact) if the customer hasn't been previously imported or doesn't exist in the database. + +.. note:: + Only orders requiring shipment are synchronized. Orders with statuses :guilabel:`SHIPPED`, + :guilabel:`CANCEL`, :guilabel:`UNPAID`, or :guilabel:`COMPLETED` are excluded during + synchronization. + +Force Synchronization +===================== + +To synchronize an order whose status hasn't changed since the last synchronization: + +1. Navigate to :menuselection:`Sales --> Configuration --> Lazada --> Shops`. +2. Select the Lazada Shop and modify the :guilabel:`Last Order Sync` date under + :guilabel:`Synchronization Information` to a date prior to the order's last status change. +3. Save to trigger synchronization. + +.. tip:: + In Debug Mode, access the Lazada account in Odoo and click :guilabel:`Sync Orders` to + immediately synchronize orders or :guilabel:`Sync Inventory` for inventory updates. + +Manage Deliveries in FBM +======================== + +For :abbr:`FBM (Fulfilled By Merchant)` orders, the **Lazada Connector** creates a picking in +the :menuselection:`Inventory` app, along with a sales order and customer record, upon +synchronization. + +1. Arrange Shipment: Confirm the picking in Odoo, then navigate to *Lazada Seller Center* + and click :guilabel:`Arrange Shipment` to generate the shipping label and tracking number. +2. Fetch Shipping Label: Odoo retrieves the shipping label and tracking number, attaching + them to the corresponding delivery order. +3. Validate Stock Out: Validate the stock movement in Odoo to update inventory levels and + confirm the order has left the warehouse. + +Lazada Delivery Statuses +------------------------ + +Understanding Lazada delivery statuses is crucial for effective order management: + +- :guilabel:`Package Pending`: The package has arrived at the logistics facility but is awaiting receipt, tagging, or processing in the warehouse system. +- :guilabel:`Package Confirmed`: The package has been packed by the seller or warehouse and is confirmed ready for courier pickup or dropoff. +- :guilabel:`Ready to Ship`: The order is ready for shipment arrangement. +- :guilabel:`Shipment Arranged`: The seller has arranged shipment and received a tracking + number from the logistics provider. +- :guilabel:`Shipped`: The parcel has been dropped off or picked up by the logistics provider. +- :guilabel:`Cancelled`: The order has been canceled. +- :guilabel:`Pickup Failed`: The logistics provider failed to pick up the parcel, requiring + the seller to rearrange shipment. + +.. important:: + Lazada requires a tracking reference for each delivery. If the carrier doesn't provide one + automatically, set it manually in *Lazada Seller Center*. Check supported logistics + providers for your region (e.g., Malaysia). + +Order Fulfillment Process +------------------------- + +1. New Order Creation: Lazada orders are automatically created in Odoo as sales orders. +2. Arrange Shipment on Lazada: Arrange shipment in *Lazada Seller Center*, selecting a + logistics provider and generating a shipping label. +3. Fetch Shipping Label: Odoo imports the shipping label (delivery note) and tracking number, + associating them with the sales order. +4. Validate Stock Out: Confirm the stock movement in Odoo to reduce inventory levels. +5. Inventory Update on Lazada: Odoo pushes updated stock levels to Lazada to prevent + overselling. + +Invoice and Register Payments +============================= + +Due to Lazada's policy of not sharing customer email addresses, invoices cannot be sent +directly from Odoo. Instead: + +1. Issue Invoices: Generate invoices in Odoo and manually upload them to *Lazada Seller + Center*. +2. Register Payments: + + - Create a dedicated :guilabel:`Bank Journal` (e.g., "Lazada Payments") with a Bank + and Cash intermediary account. + - Since Lazada processes weekly or monthly batch payments, select all invoices linked + to a payment in Odoo. + - Use :guilabel:`Batch Deposit` as the Payment Method, select the invoices, and go to + :menuselection:`Actions --> Create Batch Payment --> Validate`. + +3. Reconcile Payments: When Lazada deposits the balance, record it in the bank statement + and credit the Lazada intermediary account. + +.. tip:: + Apply the same process for vendor bills related to Lazada commissions. + +Analyzing Lazada Sales with Odoo's Reporting +============================================ + +Odoo's dashboard consolidates sales data from all channels. To analyze Lazada sales +specifically: + +1. Set Up Sales Teams: + + - Navigate to :menuselection:`Sales --> Configuration --> Settings --> Connectors --> + Lazada Sync --> Lazada Accounts`. + - Assign a dedicated sales team to each Lazada shop for isolated reporting. + +2. Filter Sales Data: Use the dashboard filters to view sales data for the assigned + Lazada sales team. + +.. tip:: + Configure separate sales teams for each Lazada marketplace to generate detailed + performance reports. + +.. seealso:: + - :doc:`features` + - :doc:`manage` \ No newline at end of file diff --git a/content/applications/sales/sales/lazada_connector/manage/lazada-bulk-edit.png b/content/applications/sales/sales/lazada_connector/manage/lazada-bulk-edit.png new file mode 100644 index 0000000000..96a1979399 Binary files /dev/null and b/content/applications/sales/sales/lazada_connector/manage/lazada-bulk-edit.png differ diff --git a/content/applications/sales/sales/lazada_connector/manage/lazada-sync-product.png b/content/applications/sales/sales/lazada_connector/manage/lazada-sync-product.png new file mode 100644 index 0000000000..6aa12721b1 Binary files /dev/null and b/content/applications/sales/sales/lazada_connector/manage/lazada-sync-product.png differ diff --git a/content/applications/sales/sales/lazada_connector/setup.rst b/content/applications/sales/sales/lazada_connector/setup.rst new file mode 100644 index 0000000000..9c19efdc3b --- /dev/null +++ b/content/applications/sales/sales/lazada_connector/setup.rst @@ -0,0 +1,149 @@ +============================== +Lazada Connector Configuration +============================== + +This guide explains how to set up the **Lazada Connector** in Odoo to integrate your Lazada Seller +account(s) and manage multiple marketplaces efficiently in Southeast Asia. Follow these steps to +configure your account, synchronize your product catalog, and prepare your shop for go-live. + +Prerequisites +============= + +Before configuring the **Lazada Connector**, ensure you have: + +- A Lazada Seller account (:guilabel:`Personal Self-Developed` or :guilabel:`Enterprise Self-Developed`). +- A valid email address and phone number for verification. +- A digital copy of your business license (for :guilabel:`Enterprise Self-Developed` accounts). +- A brief description of your integration purpose (e.g., "Connecting Odoo ERP to our Lazada store + for order and inventory synchronization"). + +.. note:: + The *Lazada Open Platform* account for API access is separate from your *Lazada Seller account*. + +Create a Lazada Open Platform Account +===================================== + +1. Navigate to :guilabel:`Lazada Open Platform`: Go to https://open.lazada.com/ and click + :guilabel:`Create Account` or :guilabel:`Sign Up`. +2. Select Account Type: Choose either: + + - :guilabel:`Personal Self-Developed`: For individuals without a business license. + - :guilabel:`Enterprise Self-Developed`: For businesses with a registered license. + +.. important:: + Do **not** select other service provider types, as they are not applicable for Odoo integration. + +3. Complete Registration: + + - Enter your email, password, and phone number. Complete any verification steps (e.g., + :abbr:`OTP (One-Time Password)` via SMS). + - For :guilabel:`Enterprise Self-Developed` accounts, upload your business license. + - Provide a brief introduction (e.g., "Integration for Odoo ERP to sync orders, inventory, + and fees with Lazada"). + +4. Submit for Approval: Submit your profile details. Approval typically takes a few hours to + a couple of business days. Check your registered email for confirmation or requests for + additional information. +5. Check Approval Status: If rejected, review the reason in the notification email or on the + *Lazada Open Platform Console*. Edit and resubmit as needed. + +.. tip:: + Ensure accurate profile details to avoid delays. Common issues include incorrect account type + selection or missing business license documents. + +Create an App on Lazada Open Platform +===================================== + +To obtain the :guilabel:`App Key` and :guilabel:`App Secret` for Odoo integration: + +1. Access :guilabel:`App Management`: Log in to the `Lazada Open Platform Console `_, navigate to + :menuselection:`App Console`, :menuselection:`App Management`, and click :guilabel:`Create App`. + + .. image:: setup/Open-Platform-app-console.png + .. image:: setup/lazada-create-app.png + +2. Select App Category: Choose :guilabel:`Seller In-house APP`. +3. Fill Application Form: + + - Provide your Odoo database URL and tester account credentials (name and password). + - For :guilabel:`APP IP Address Management`, select :guilabel:`IP address(es) unavailable` + and enter "The application is cloud-hosted." + +4. Submit Application: App creation takes approximately 24 hours. Once approved, note the + :guilabel:`App Key` and :guilabel:`App Secret`. + +Connect Lazada Seller Account to Odoo +===================================== + +1. 1. To connect a Lazada Seller account in Odoo, navigate to :guilabel:`App` from your Database and search for Lazada :guilabel:`Activate`. + + .. image:: setup/lazada-connector-odoo-app.png + +2. Enable :guilabel:`Lazada Sync`: In Odoo, navigate to :menuselection:`Sales --> Configuration + + .. image:: setup/lazada-odoo-sales-menu.png + +3. Connect a Lazada Account: + + - Go to :menuselection:`Sales --> Configuration --> Lazada --> Shops` and click :guilabel:`Create New Shop`. + - Enter a name (e.g., "Lazada Malaysia"), :guilabel:`App Key`, :guilabel:`App Secret`, and + select the marketplace (e.g., Lazada.com.my). + + .. image:: setup/connect-new-lazada-shop-odoo.png + +4. Link Account: + + - click :guilabel:`Create Shop & Authorize` + - Click the button to redirect to the Lazada login or consent page. Log in with your Lazada + Seller account credentials and grant Odoo access. + + .. image:: setup/lazada-authorize-shop.png + + - Upon successful authorization, Odoo lists available marketplaces under the + :guilabel:`Lazada Shops` tab. + + .. image:: setup/lazada-odoo-shop-list.png + +5. Manage Marketplaces: + + - Newly added marketplaces are automatically synchronized. To disable synchronization for + specific marketplaces, remove them from the list. + - Avoid synchronizing the same shop multiple times to prevent duplicate orders. + +.. important:: + + To maintain data integrity, ensure each shop is synchronized only once. If synchronization + fails, try manually fetching orders before reconfiguring. + +Configure Shop Before Go-Live +============================= + +1. Set Up Warehouses: + + - Navigate to :menuselection:`Sales --> Configuration --> Settings --> Connectors --> + Lazada Sync --> Lazada Accounts`. + - Select the Lazada account and configure the :guilabel:`FBM Warehouse` field to limit stock + fetching to specific warehouses. + - By default, all accounts use the same Lazada stock location. To isolate stock for a specific + marketplace, create a separate account registration and assign a unique stock location. + +2. Synchronize Product Catalog: + +The product catalog will be matched automatically from the first synchronization. But in case you do the following: + + - Use the :guilabel:`Sync Product Catalogue` button in Odoo to automatically fetch active + Lazada products daily. + - For new Odoo databases, export the Lazada catalog from *Lazada Seller Center* (including + SKUs). Import into Odoo via :menuselection:`Inventory --> Products --> Import`, mapping SKUs + to the :guilabel:`Internal Reference` field. + - For existing Odoo products, export both Lazada and Odoo catalogs, map SKUs to + :guilabel:`Internal References` in a spreadsheet, and import the updated mappings back into + Odoo. + +.. tip:: + Test catalog synchronization with a small product set to verify SKU mappings before full + import. + +.. seealso:: + - :doc:`features` + - :doc:`manage` diff --git a/content/applications/sales/sales/lazada_connector/setup/Open-Platform-app-console.png b/content/applications/sales/sales/lazada_connector/setup/Open-Platform-app-console.png new file mode 100644 index 0000000000..73e99ee52d Binary files /dev/null and b/content/applications/sales/sales/lazada_connector/setup/Open-Platform-app-console.png differ diff --git a/content/applications/sales/sales/lazada_connector/setup/connect-new-lazada-shop-odoo.png b/content/applications/sales/sales/lazada_connector/setup/connect-new-lazada-shop-odoo.png new file mode 100644 index 0000000000..2618512ff3 Binary files /dev/null and b/content/applications/sales/sales/lazada_connector/setup/connect-new-lazada-shop-odoo.png differ diff --git a/content/applications/sales/sales/lazada_connector/setup/lazada-authorize-shop.png b/content/applications/sales/sales/lazada_connector/setup/lazada-authorize-shop.png new file mode 100644 index 0000000000..59add66e21 Binary files /dev/null and b/content/applications/sales/sales/lazada_connector/setup/lazada-authorize-shop.png differ diff --git a/content/applications/sales/sales/lazada_connector/setup/lazada-connector-odoo-app.png b/content/applications/sales/sales/lazada_connector/setup/lazada-connector-odoo-app.png new file mode 100644 index 0000000000..526444a2b9 Binary files /dev/null and b/content/applications/sales/sales/lazada_connector/setup/lazada-connector-odoo-app.png differ diff --git a/content/applications/sales/sales/lazada_connector/setup/lazada-create-app.png b/content/applications/sales/sales/lazada_connector/setup/lazada-create-app.png new file mode 100644 index 0000000000..2f670e246f Binary files /dev/null and b/content/applications/sales/sales/lazada_connector/setup/lazada-create-app.png differ diff --git a/content/applications/sales/sales/lazada_connector/setup/lazada-odoo-sales-menu.png b/content/applications/sales/sales/lazada_connector/setup/lazada-odoo-sales-menu.png new file mode 100644 index 0000000000..fde5276591 Binary files /dev/null and b/content/applications/sales/sales/lazada_connector/setup/lazada-odoo-sales-menu.png differ diff --git a/content/applications/sales/sales/lazada_connector/setup/lazada-odoo-shop-list.png b/content/applications/sales/sales/lazada_connector/setup/lazada-odoo-shop-list.png new file mode 100644 index 0000000000..dc2dde5d13 Binary files /dev/null and b/content/applications/sales/sales/lazada_connector/setup/lazada-odoo-shop-list.png differ