- To insert fees, discounts, and taxes at item level, include the details in the
_items_ arraywhile creating an order.
- To insert fees, discounts, and taxes at order level, include the details outside the items array while creating an order. For details, see the request payload of Order Create.
fabric’s REST APIs are protected with OpenID Connect (OIDC) along with the identity introspector mechanism. In OIDC, identity information is communicated using JSON Web Tokens (JWTs). The data in fabric is stored in both MongoDB and S3. The MongoDB data is isolated per tenant in fabric Orders (also called OMS). You must create an AWS Config rule to ensure that the AWS S3 Bucket does not have public access. For example, one should not be able to run:
Whenever data is requested, fabric will generate a S3 presigned URL to ensure secure access.
The fabric Order service is designed to streamline and simplify order management and fulfillment processes during and after an order is created either by using a checkout service or at the Point of Sale (POS). It contains features to simplify advanced configurations in addition to the standard post order operations and fulfillment workflow rules engine capabilities common to the functionalities and jobs supported by most Enterprise Order Management and Distributed Order Management Systems.
Backorder and Preorder, simplified configuration interfaces for setting post order validation and customer service policies, Customer Service and Returns Management operational interfaces, Digital Security and Role based access, Dropship integration and fulfillment, Incident Management, Fulfillment Rule Setting.
If you are using fabric Orders with fabric Store Fulfillment and fabric Inventory, you can start creating orders using the order create endpoint after inventory is set up. Alternatively, you can disable inventory reservation for order fulfillment by contacting fabric support at [email protected].
Once order is created using fabric Orders service, it sends request to fabric’s Allocation module for order allocation, then Allocation calls Order Fulfillment Logic (OFL), OFL rules get the location number where the inventory is available, and responds back to Allocation, and Allocation calls inventory to reserved items for the location number received from OFL.
Order fulfillment process is set up by integrating your existing fulfillment systems, such as the Warehouse Management System (WMS), with the Allocation APIs of the fabric Orders module. This integration enables allocation-related events to initiate fulfillments in external systems, and it allows external systems to make callbacks to the fabric Allocation APIs.
Shipment APIs ensure that shipments are created for allocations. These APIs enable the warehouse or any external fulfillment system to generate shipments associated with the allocated orders.
You can establish the configuration for transactional email updates regarding orders by integrating your preferred email service with the Notification APIs of the fabric Orders module. This integration enables fabric Orders to initiate real-time email notifications for specific order update events.
To establish fraud prevention of orders, you can integrate your preferred fraud service with the Fraud APIs of fabric’s Order module. These APIs primarily allow for hold and release actions on the order, providing an effective means of preventing fraudulent activities.
You can set up shipment tracking updates for orders by integrating your carrier tracking service with the Shipment Tracking APIs of fabric’s Orders module. These APIs enable the external carrier tracking service, such as ParcelLab, to post shipment events.
Yes, the order create API can be integrated with systems such as web storefront, POS, and other sales channels. This integration enables the posting of orders to a centralized application database, ensuring a single source of truth for all orders.
When dealing with multi-brand orders that require separation of customer service and operational workflows, the
channel field in the
order.items.channel JSON objects allows creating orders with separate groupings.
When processing returns using fabric’s Orders module, the result can be either a pending return for tracking purposes or an immediate completion of the return process for the order.
An order or items of an order are eligible for return if:
- It has been fulfilled
- The items to be returned have not been previously returned
- The item's eligible property is not set to false in the check order return eligibility API response, which is configured via the Return Policies interface.
Return requests can be initiated using either the order ID or the order number as identification. The response object specifies refund amount, return fees to subtract from the refund, and reason codes for the return. If a refund for a returned item is successful, the response for the order return endpoint will display
refundStatus as SUCCESSFUL. If the refund fails for any reason, the response for the order return endpoint will display
refundStatus as REFUND_FAILED. Order details can be accessed by calling the return endpoints.
Exchange requests within fabric are initiated using the same return endpoints provided that the
isExchange flag must be set to
fabric Orders module can either be utilized to orchestrate payment operations, or payments can be disabled for the system. This is currently only configured by fabric Support during the onboarding process.
fabric Orders does not manage tax calculation. Taxes must be calculated by the client by using tax calculation services external to fabric, during update operations to the order.
Yes, fabric provides the flexibility to customize the interface and workflows to support your business needs. An use case is creation of an order after shoppers complete the checkout process involves minimal data validation.
You can configure data validation settings in the the attributes interface, so that orders with invalid attributes or values can be flagged immediately after order placement.
You can also configure the validation process for post-order updates, such as returns, exchanges, cancellations, appeasements, and pickups, using Policies on the copilot. This enables you to obtain eligibility information for these operations on a per-order basis and customize the workflow associated with these operations.
Note: To know about the process of returning and canceling orders, refer to the REST API recipes that explain how to return an order and how to cancel an order.
You can manage backorder fulfillment settings such as the consent to delay workflow using the backorder settings API.
Setting up integrations using the webhooks and integration-related APIs enables the notification of various order updates to shoppers, efficient allocation of orders to the most suitable warehouse or facility for inventory confirmation and product shipping, as well as the provision of shipment tracking updates.
fabric’s customer service operations can be utilized either in the Copilot interface or within your existing customer service and relationship management application. fabric Orders does not currently offer native support for case management. However, retailers using a customer service application can choose to use fabric Copilot in addition to their existing customer service application or embed fabric Orders APIs for handling cancellations, returns, exchanges, appeasements, and other supported order updates directly within their CSR application.
Yes, you can perform export operations using the export API, which can be utilized via integration for business intelligence and storing the data in external data warehouses. The exports service flattens the JSON structure into columns such that an external columnar database such as an SQL database can easily ingest the data effectively. Exports can also be generated via Copilot for ad-hoc analysis.
fabric Orders module includes Crossborder API with basic hold and release functions for your external applications to manage the crossborder fulfillment process. The fabric databases also support all UTF-8 languages and support ISO 4217 currency codes during order create and update operations. These currencies and languages will reflect in any read operation via API or Copilot.There are no additional international order functions than these.
Customer information is stored within the order JSON, and any bulk updates to customer data must be performed using the standard order update functions. The fabric Orders module does not maintain customer data in a separate collection. Additionally, a customer edit APIis available for client web applications, simplifying the process of updating customer data within orders.
Yes, fabric Orders provides a set of import APIs to manage the order import process, primarily to support post-order operations on orders that may be required after transition from your current order services to fabric Orders.
During the order creation process within fabric Orders, backorders and preorders are identified and flagged accordingly. This enables the Backorder and Preorder service to store these orders in a dedicated backorder queue. Fulfillment of these orders follows a "first in, first out" approach as inventory becomes available for the backorders.
Additionally, consent to delay operations are implemented based on the configuration of backorder settings. Orders that exceed the specified backorder service level require customer consent to proceed with the delay. fabric triggers the consent to delay notification based on the merchant's configuration, and updates regarding consent to delay are managed through the consent to delay endpoint.
By default, fabric Orders is designed to seamlessly integrate with fabric Inventory module for new users. Users of both modules get the advantage of real time updates ensuring that inventory availability is automatically updated as orders are fulfilled.
fabric provides the flexibility to its customers to disable fabric Orders and use fabric Inventory as a standalone module, as well as disable fabric Inventory and use fabric Orders as a standalone module. To disable or re-enable a module, please contact fabric Support at [email protected]
The benefits of using modules independently are primarily for the purpose of implementing the strangler pattern, where the transition process occurs gradually on a service-by-service basis.