4WS Suite
Home
API Reference
  • Data mangement API
  • Documents API
Home
API Reference
  • Data mangement API
  • Documents API
Fourwayshop
  1. Use cases
  • Four Way Shop API
  • Before start develop
  • Why we use Resource-oriented design
  • Technical Prerequisites
  • Concepts
    • Date Handling
    • Managing Languages
    • Handling Field Updates and Null Values in Service Requests
    • ISO Code
    • Vat rates
    • Product structure
    • Product Images
    • Product dimensions
    • Product pricing
    • Dimension group vs Dimension grouping
    • Subjects overview
    • Documents structure
  • Best Practices
    • Best Practices for Error Handling in External System
    • How Testing callback response
    • Best Practices for delopers
  • Data management
    • Authentication
    • Rate Limits
    • Paginated Responses
    • Getting Started
    • API Changelog
    • Use cases
      • Cataloging a Dimension
      • Creating a New Product
      • Retriving a product details
      • Defining Product Pricing
      • Updating External System Product Catalog
      • Activate product variants and add barcodes to SKUs
      • Move a Barcode from One Product to Another
    • API
      • Login
        • login
      • Product
        • Brand
          • Get All Brands
          • Get A Brand
          • Insert brand
          • Update brand
        • Season
          • Get All Seasons
          • Get A Season
          • Insert season
          • Update season
        • Attribute
          • Get All Attribute Types
          • Get Attribute Type
          • Get Attribute
          • Insert attribute
          • Update attribute
        • Hierarchy
          • Insert hierarchy
          • Update hierarchy
        • Dimension groups
          • Insert dimension group
          • Update dimension group
        • Dimension
          • Insert dimension
          • Update dimension
          • Delete dimension
        • Product
          • Get products
          • Get product
          • Get product grouping
          • Get SKU's barcodes
          • Get product stock
          • Insert product
          • Update product
        • Activate dimensions on products
          • Insert active dimensions
          • Delete active dimensions
        • Barcode
          • Get SKU from barcode
          • Generate missing barcodes
          • Generate missing barcode for SKU
          • Insert barcode
          • Delete barcode
        • Prices
          • Get product prices
        • Price dimension groupings
          • Get Dimension Price Grouping
          • Get All Dimension Price Grouping
          • Insert dimension grouping
          • Update dimension grouping
          • Delete dimension grouping
        • Assortment
          • insert product assortment
          • delete product assortment
        • Image
          • Get images
          • Add image
          • Replace image
          • Delete image
        • Supplier
          • Get Item suppliers
          • Insert item supplier
          • Delete item supplier
          • Update item supplier
        • Custom category
          • Get Custom code
          • Insert Custom code
          • Update Custom code
        • Vat
          • Vat types
            • Get VAT type
            • Get VAT types
          • VATs
            • Get VATs
            • Get VATs by type
            • Get VAT
          • Vat rates
            • Get VAT rates
            • Get single VAT rates
        • Stock
          • Insert stock
          • Get stock
      • Price lists
        • Get price lists
        • Get price lists by type
        • Get price list
        • Get prices from price list
        • Get entities from price lists
        • Insert Price List
        • Insert Product Price
        • Insert Entity On Price Lists
        • Update price list
        • Delete all product prices
        • Delete single product price
        • Delete entity from a price lists
      • Supplier
        • Supplier contacts
        • Supplier addresses
        • Get Suppliers
        • Get A Specific Supplier
        • Insert supplier
        • Update supplier
      • Entities
        • Get entities
        • Get entity
        • Insert entity
        • Update entity
      • Miscellaneous
        • Get requests rate limits
      • Catalog
        • Get Catalogs details
        • Get Catalog details by Code
        • Get products by Catalog Code
      • Export
        • Get bulk CSV Export
  • Documents
    • Authentication
    • Paginated responses
    • Managing API Callbacks
    • Document notifications
    • Customer promo data notifications
    • Use cases
      • Updating External System Stock
      • E-commerce Recipt Processing
      • E-commerce Return Receipt Processing
      • E-commerce Order sale Processing
      • E-commerce Return Order Processing
      • E-commerce Order Handling and Internal Stock Transfer
      • E-commerce & Gift Card
      • Creating a free entry
      • Retrieving a Document by Identifier
      • Cart Validation Service
      • Sale and Shipping costs
      • Handling Line Item Discounts
      • Managing Price Forcing in Cart Items
      • Purchase Order Registration
      • Supplier Goods Entry From Purchase Order
      • Update an Orchestrated Order
      • New Orchestrated Return Orders
    • API
      • Document Manager
        • Orders
          • Save Sale Order
          • Save Return Order
        • Orchestrated Orders
          • Orchestrated Order
          • Orchestrated Return order
          • Orchestrated Update order
        • Cart
          • Cart Validation
          • Cart Full Validation
        • Sales
          • Save receipt
          • Salve only Order
          • Replace or update sale
          • Get last digital order
        • Warehouse
          • Save Entry from supplier
          • Save Transfer document
          • Save Free Entry
        • Purchase
          • Save Purchase
        • Get Document
        • Update Document external references
      • Customer
        • Get Customer
        • Set Customer Opt-in
      • Loyalty vouchers
        • Get customer loyalty vouchers
        • Get loyalty vouchers at a time interval
        • Get last loyalty vouchers
      • Giftcard
        • Get Giftcard
        • Update Giftcard
        • Generate Gift Card Barcode
        • Gift Card PDF Generation
      • Stock
        • Get Stock
        • Get last stock
        • Insert Stock
  • 🚫 KeepIT
    • Authentication
    • Use cases
    • Articles (deprecated)
      • Get Articles
      • Insert/Update dimensional groups
      • Insert/Update price groupings
      • Insert/Update dimensions
      • Insert/Update attributes
      • Insert/Update hieararchies
      • Insert/Update seasons
      • Insert/Update articles
      • Insert/Update Articles Master data
      • Insert/Update Lists
      • Insert/Update Dimensions Groups
      • Create EAN13 barcode
      • Insert/Update Barcode
      • Assign dimensions to groupings
    • Price Lists (deprecated)
      • Insert price list
      • Add entity to price list
      • Add item price to price list
      • Insert sale profile
      • Insert sale period
      • Add item price to sale period
    • Stock (deprecated)
      • Get Stock
      • Get Stock Date
      • Get Stock CSV
      • Insert/Update Stock
    • Sales (deprecated)
      • Insert/Update sales
      • Delete sales
      • Upload printer sales archive
    • Deposit (deprecated)
      • Insert/Update deposits
    • Services
      • Insert/Update services
      • Delete services
    • Points
      • Insert/Update points
      • Calculate and Insert/Update Points
      • Delete points
    • Subjects
      • Check customers
      • Anonymize customers
      • Get subject data
      • Get customer discount
      • Insert/Update customer
      • Insert/Update billing customers
      • Insert/Update CRM customer
      • Insert/Update children
      • Change/Replacement card
      • Insert CRM user
    • Giftcards & Vouchers
      • Get giftcard
      • Insert/Update giftcards
      • Insert/Update Vouchers
    • Missed Opportunity
      • Get Lost Opportunities
      • Insert/Update missed opportunities
      • Delete missed opportunity
    • Documents (deprecated)
      • Insert documents
      • Get document
    • Catalogs
      • Get Catalog
      • Insert/update catalog
      • Insert/Update hierarchies item catalog
      • Insert/Update entity clusters
    • Suppliers (deprecated)
      • Insert/Update tailor
      • Insert/Update supplier
    • Export (deprecated)
      • Get Items Export
      • Get Barcodes Export
      • Get Prices Export
      • Get Customers Export
      • Get Suppliers Export
      • Get Sales Export
      • Get Movements Export
      • Get Vouchers Export
    • Configuration Mobile Shop (deprecated)
      • Insert/Update Entities
      • Insert Seller
    • Mappings
      • Insert Mappings
      • Get Mappings
  1. Use cases

E-commerce Order Handling and Internal Stock Transfer

E-commerce Order Handling and Internal Stock Transfer#

Use Case Description#

This document describes the process of integrating an e-commerce platform with 4ws.trade for handling orders and managing internal stock transfers. Upon receiving an order, the e-commerce platform sends the order details to 4ws.trade using Save sale or Save Order service.
Based on the available stock in physical stores, e-commerce platform sends internal stock transfer documents to 4ws.trade where the sender is the store holding the stock and the recipient is the virtual e-commerce store to move stock to 4ws.trade e-commerce virtual store using Save Transfer document.
INFO
Properly managing stock on your ecommerce site is essential for smooth operations and maintaining customer satisfaction. To learn the best practices for effective stock management, please refer to the detailed paragraph Updating external stock.
Actors#
External System: The external system (ERP,WMS ecc...) initiating the order processing and stock transfer.
4ws.trade Service: The service handling the creation of sales and stock transfer documents.
Preconditions#
The external system must have the necessary permissions and access to the document creation service, please refer to Authentication.

Document prices#

The external system must ensure that prices in the documents are valued according to the following rules:
priceSale: the product's selling price is a gross VAT amount;
priceInvoice: the product's invoice price (purchase invoice) is a net VAT amount;
pricePurchase: the product's purchase price (typically purchase order) is a net VAT amount.
If the fields priceSale is mandotary instead priceInvoice, and pricePurchase are not provided, the system will attempt to retrieve prices based on the branchCode and the sale, invoice, and purchase price lists. If no matching price is found, the API will return an error, and the document will not be created.
Main Flow#
1.
Order Collection: The ecommerce system collects an order from a customer.
2.
Send Order to 4ws.trade: The order is sent to 4ws.trade using the Save sale or Save Order service (Save an e-commerce sale in 4ws.suite receipt).
3.
Stock Check: The ecommerce system checks the stock levels across the physical store network (Updating external stock).
4.
Create Transfer Documents: For each product in the order, the system creates a stock transfer document if the product is available in a different store.
5.
Send Transfer Document to 4ws.trade: The transfer document is sent to 4ws.trade for processing.
6.
Callback Handling: The ecommerce system handles the callback from 4ws.trade to confirm the processing result.
JSON Structure for Stock Transfer Document#
For more detail about please refer to sends internal stock transfer documents to 4ws.trade please refer to Save Transfer document documentation.
This is a JSON example of an internal transfer document that the ecommerce site can send to transfer goods from one store to another.
{
  "documentHeader": {
    "id": "7571b744-8e2d-4dde-99d8-b60c0dff1aca",
    "branchCode": 2,
    "branchCodeAddresse": 9,
    "branchCodeTransfer": 103,
    "cause": "EXIT",
    "currency": "EUR",
    "currencySymbol": "€",
    "documentDeliveryExternal": "TRANS-12345",
    "documentDate": "2022-04-19 00:00:00",
    "documentType": "SD_INT_TRASFER",
    "system": "ECOMMERCE",
    "createOpposingDocument": "Y",
    "closeOpposingDocument": "N"
  },
  "documentRows": [
    {
      "barcode": "010005600109",
      "dimension1": "9",
      "dimension2": "BLU",
      "dimension3": ".",
      "dimension4": ".",
      "itemCode": "BO00P794101",
      "quantity": 1,
      "rowNumber": 1,
      "taxRate": 22,
      "priceSale": 19.9,
      "pricePurchase": 19.9,
      "priceInvoice": 19.9
    }
  ],
  "callback":"https://europe-west1-sinesy4wsplatform.cloudfunctions.net/fake-callback"
}
:::info createOpposingDocument & closeOpposingDocument
If the createOpposingDocument parameter is Y, in addition to the internal transfer document in the CLOSED state, the transfer load document will also be created in the OPEN state so that the store or warehouse can proceed with the verification of the goods. For details on document types, refer to paragraph Documents structure.
The closeOpposingDocument parameter is used when createOpposingDocument is Y. If closeOpposingDocument parameter is Y the transfer load document will be created in the CLOSED state. For details on document types, refer to paragraph Documents structure.
:::
The callback field must be populated with a service URL from the e-commerce platform that 4ws.trade will use to send the processing result.
Callback Response#
The response from the callback service can be:
1.
Success Response:
{
  "success": true,
  "id": "7571b744-8e2d-4dde-99d8-b60c0dff1aca"
}
2.
Failure Response:
{
  "success": false,
  "message": "Invalid barcode value: 87654321 at row: 1"
}
success: Indicates whether the processing was successful.
id: References the transfer document.
message: Describes the error if the processing failed.
e-commerce and transactionId
It is strongly recommended that the e-commerce site stores the unique receipt ID 02931b8a-a6c8-4e47-b3f1-041ffb1e432q and links it uniquely to the collected order.
Sequence Diagram#
INFO
Please refer to Best Practices for Error Handling in External System for best practices on implementation.

Code Examples in Node.js#

Creating Stock Transfer Document#

Callback Service for Processing Transfer Document Result#

Monitoring and Error Handling#

Retry Failed Transfers Script (retryFailedTransfers.js)#

Conclusion#

The provided code examples illustrate how to integrate an e-commerce platform with 4ws.trade for handling orders and managing internal stock transfers. The examples include sending order details, creating stock transfer documents, and implementing a callback service with error handling and monitoring. By following these best practices and utilizing the provided code, you can ensure a robust and reliable integration with 4ws.trade.
Modified at 2025-01-08 15:17:04
Previous
E-commerce Return Order Processing
Next
E-commerce & Gift Card
Built with