# Build, Extend, and Elevate fabric’s API-first platform gives developers the control and flexibility to easily build from scratch or integrate with the existing stack, to compose the perfect commerce experiences. Centralized source for all products. Centralized source of order, inventory, and warehouse information. Receive and track inventory across networks and locations. Build fulfillment rules sets to direct orders to different fulfillment locations. Launch, operate, and scale a curated assortment of products with unlimited dropship suppliers. Launch, operate, and scale your product assortment across channels with your retailer partners. # Adding Team Members ### Overview fabric users with administrator privileges can invite new users to their organization’s fabric account by adding the new user’s email address in the **User Management** page in Copilot. Adding a new user involves setting their role, which controls their level of access. This is called role-based access control. By assigning roles, you can prevent unintended changes or data entry errors. There are many different roles that are specific to different fabric products. Prior to adding any users, it's recommended to read through the [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control) topics. ### Related Topics * [Inviting Users](/v3/guides/settings/user-management/inviting-users) * [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control) * [Product Catalog Roles](/v3/guides/settings/rbac/role-based-access-control-products-roles) * [Experiences Roles](/v3/guides/settings/rbac/role-based-access-control-experiences-roles) * [Offers Roles](/v3/guides/settings/rbac/role-based-access-control-offers-roles) * [Orders and Inventory Roles](/v3/guides/settings/rbac/role-based-access-control-orders-roles) * [Customers Roles](/v3/guides/settings/rbac/role-based-access-control-customers-roles) # Copilot Overview Copilot is the web-based user interface to access the features in the fabric commerce platform. The suite of applications available via Copilot provide solutions to manage digital commerce needs directly, using online forms and prebuilt web components thereby reducing dependence on technical development resources and custom code. These applications can be used as individual components that can be launched quickly and easily, regardless of your existing infrastructure, capabilities, or third-party partnerships. ### Prerequisites You will need an active account to access Copilot. Contact your Copilot system administrator or fabric Customer Success Representative to obtain these credentials. ### Authentication Users must be invited to Copilot by a system administrator. Once invited, they will receive an email containing a link to Copilot. On first log in, the user will set their password. Subsequent logins will require the Account ID, user email, and password for credentials. ### Navigation Users navigate through Copilot applications using the left navigation. This navigation remains at the left-hand side of the page for easy access. Click the double-carat icon at the bottom-left to expand and contract the left navigation. Users navigate within each Copilot application using navigation panels on the left-hand side of each individual application. # Feature Descriptions [Copilot](/v3/guides/get-started/copilot-overview) is the web-based user interface to access fabric's features, which are also called applications or products. These features enable operators to manage their digital commerce needs directly, using online forms and prebuilt web components thereby reducing dependence on technical development resources and custom code. * [Product Catalog](/v3/guides/product-catalog/overview): fabric's powerful product information management system that enables complete product catalog administration to ensure accurate and up-to-date information across sales channels. * [Offers](/v3/guides/offers/overview): fabric’s pricing and promotions engine with tools to manage price lists, item prices, and discounts. * [Orders](/v3/guides/orders/overview): fabric's solution for centralized order, inventory, and warehouse information. Orders supports order placement, allocation, handling of back orders and pre-orders, exporting data, generating invoices, creating and managing shopping lists, sending notifications, handling cancellations and returns, order tracking, fraud checks, updating payment status, creating appeasements, creating and managing shipments, shipping methods, and more. * [Inventory](/v3/guides/inventory/overview): fabric's resource for tracking inventory across networks and locations. # Glossary ## A ### Access Control A method to verify that the user has permission to access the requested resource. ### Access Token A signed JSON web token provided to an application after successful authentication by fabric Identity. It serves as a Bearer token when starting fabric platform APIs. ### Account The primary entity through which the commerce solutions are delivered to the fabric product customers. It acts as the dedicated repository for all their data. Customers have the option to create multiple accounts for different purposes, ensuring data segregation. When you log in to Copilot, you gain access to the specific contents of the account belonging to the customer of fabric products. This customer refers to the user of fabric products and not the customers of stores using fabric services. ### Account ID A custom header used by the API to identify the tenant making the request, found in the Copilot application. Tenant ID is required to access any of fabric’s endpoints. Related Terms: * [Tenant ID](#tenant-id) ### [Allocation](/v3/api-reference/order/allocations/about-order-allocations) The record specifying the locations from which an order is fulfilled, allowing retailers to effectively manage order allocations. ### App All API clients or applications that call any of the fabric platform APIs. Each application requires a bearer token authentication to interact with other fabric APIs. For example, Order Management System (OMS) or Enterprise Resource Planning (ERP). ### App Name The name of the application. ### App Types The type of the application, such as system application or user application. The type of app helps you determine the authentication process with fabric Identity. ### [Attribute](/v3/guides/product-catalog/attributes/attributes) A specific characteristic, quality, or feature of a product or category, used to describe, classify, or differentiate items within a system or platform. fabric Product Catalog supports two types of attributes, such as [product attributes](/v3/guides/product-catalog/attributes/product-attributes-overview) and [category attributes](/v3/guides/product-catalog/attributes/category-attributes-overview). ### [Attribute Groups](/v3/api-reference/product-catalog/attribute-groups) A collection of product attributes that helps categorize products into various semantic groups based on meaning and purpose, allowing for easier management and organization of products in the catalog. ### Authentication The mechanism of validating the identity of an application or its end user with fabric Identity. After validating the identity, fabric Identity generates and signs an access token, used as a bearer token to call fabric platform APIs. ### Authorization A method to restrict access to certain APIs after successful authentication, supporting role-based access control on fabric's platform APIs. ## B ### Base Price The regular amount that a merchant charge shoppers to purchase an item. These are specified within a [price lists](#price-lists). ### Base URL The standard URL to which the requests are sent for all fabric APIs. Related terms: * [Location](#location) ## C ### Cart and Checkout (CnC) fabric's service for the management of online shopping [carts](/v3/api-reference/cart/cart--3-0-0), including items and configuration of shipping, fulfillment, and payment options. ### Categories [Categories](/v3/guides/product-catalog/categories/categories_overview), also called hierarchies or nodes, form a hierarchical tree structure to organize items and services into a group. Related terms: * [Hierarchy](#hierarchy) * [Node](#node) ### Channel A specific avenue or method through which a merchant sells their products or services. It indicates the source of a sale and can include various options such as web storefronts, retail stores, mobile apps, or other platforms. ### [Client ID](/v3/guides/settings/api-apps/getting-sysapp-credentials) A unique ID that represents the sysapp, and is required for OpenID Connect authentication flows. ### [Client Secret](/v3/guides/settings/api-apps/getting-sysapp-credentials) An app-specific secret that allows fabric Identity to validate the sysapp. This secret is mandatory for sysapps to integrate with fabric Identity. ### Collections [Collections](/v3/guides/product-catalog/collections/collections) create a representational categorization of products and are primarily used by merchants for short-term marketing campaigns. ### [Copilot](https://live.copilot.fabric.inc/) The web-based user interface to access all fabric applications. ### [Counters](/v3/api-reference/inventory/counters/overview) Inventory positions such as, available, in-transit, on-hand, or other custom positions ### [Coupons](/v3/guides/offers/coupons) Discounts on items, carts, or shipping that are applied to qualified purchases when shoppers provide a valid coupon code during the checkout process. ### Customer The user of fabric products. ### Customer Organization A customer organization, also called a customer org, refers to a customer entity that can encompass multiple accounts or tenants. It provides a structure for managing multiple accounts within a single organization. ## E ### Endpoint The API communications channel, which is a specific URL or address in a web service or API, where client applications can access or interact with the service to retrieve or send data. Related terms: * [Resource](#resource) ## F ### fabric Customer fabric service that allows you to manage information for the customers and organizations you do business with, including the contracts you may have with them. ### fCP fabric Commerce Platform (fCP) offers a range of features to effectively manage various aspects of your storefront, including merchandising, pricing, promotions, inventory, order processing, and shopper data. For your business operations, you can interact with fCP through fabric's administration interface called [Copilot](https://live.copilot.fabric.inc/). ## H ### Header This flag is used to include headers in the API request. The most commonly used headers in fabric APIs are described in the Getting Started with fabric API section. ### Hierarchy A tree structure to organize items and services into a group. Related terms: * [Category](#categories) * [Node](#node) ## I ### [Inventory](/v3/api-reference/inventory/inventory/overview) A repository of product availability for order fulfillment. ### Item A standalone service or commodity sold individually. An item is also referred to as a product. ### Item Variant A different version of a base product. An item variant is also referred to as a child product. Related Terms: * [Variant](#variants) ## L ### Location The standard URL to which the requests are sent for all fabric APIs. Related Terms: * [Base URL](#base-url) ## M ### Mapping Mapping, also called [attribute mapping](/v3/api-reference/product-catalog/attributes-mapping/overview), provides you the flexibility to create attributes with your preferred names. ### Merchant The paying customer who uses fabric's services. ### Multichannel A merchant who sells their products or services through multiple sales channels, which could encompass web, retail, mobile, and other diverse avenues, for reaching customers. ### Multi use [Multi-use Coupon Code](#multi-use-coupon-code) ### Multi-use Coupon Code A coupon code that can be used by multiple customers up to the specified limit. ### Multitenant An infrastructure model used by fabric to manage multiple customers, the users of fabric products, on shared infrastructure, including shared compute and storage resources. ## N ### Network A group of locations that share inventory. ### Node A tree structure to organize items and services into a group. Related terms: * [Category](#categories) * [Hierarchy](#hierarchy) ## O ### Offer A combination of items, their respective prices, and any relevant discounts that a shopper can avail of. Offers remain valid for a limited duration and expires after that. ### [Offers](/v3/api-reference/offers/offers--3-0-0) fabric’s pricing and promotions engine with tools to manage price lists, item prices, and discounts. ### OpenID Connect An established standard based on [OAuth 2.0](https://oauth.net/2/), defining authentication flows specific to cloud-based applications. ### [OMS](/v3/guides/orders/overview) fabric’s Order Management System (OMS), also called as fabric Orders, is a distributed order management (DOM) platform that helps retailers manage the order fulfillment process and provide inventory details, order fulfillment, and customer service. ### [Orders](/v3/guides/orders/overview) [OMS](#oms) ## P ### [Price lists](/v3/api-reference/offers/price-lists/overview) A collection of items and their assigned prices with start and end date and time for each price record. ### [Product Catalog](https://developer.fabric.inc/v3/guides/product-catalog/overview) A single [product](/v3/api-reference/product-catalog/product-operations-by-id/products-api), also referred to as an item, is a service or a stand-alone item sold individually. Bundles are combinations of two or more products sold exclusively together or as individual products depending on the configuration. Within fabric, Product Catalog is used to denote the entire end-to-end product information ,anagement system. ### [Promotions](/v3/api-reference/offers/promotions/overview) Discounts on items, carts, or shipping that are applied automatically if the required conditions are met. ### [RBAC](/v3/guides/settings/rbac/role-based-access-control) [Role-Based Access Control (RBAC)](/v3/guides/settings/rbac/role-based-access-control). With role-based access control in fabric, you can control and limit the access to information and actions based on the roles assigned to the users. ### Redemption The instance when a shopper uses a coupon code to make a purchase. Redemptions help track coupon limits across the site or per customer and are associated with specific orders. ### Resource The API communications channel, which is a specific URL or address in a web service or API, where client applications can access or interact with the service to retrieve or send data. Related terms: * [Endpoint](#endpoint) ## S ### Sale price The lowest amount that a merchant can charge shoppers to purchase an item without a promotion or coupon. These are specified within a [price list](#price-list). ### Scratch [Scratch item](#scratch-item) ### Scratch Item An item that's designated as unavailable within an order due to various reasons such as being damaged, out of stock, not found, or on hold. ### [Segment](/v3/api-reference/offers/segments/overview) A group of customers that share similar characteristics, such as loyalty status, demographics, location, or device type. ### SKU Stock Keeping Unit (SKU). A unique identifier for each item that can be purchased or sold. Each variant of a product will also have a unique SKU to differentiate it from other variations of the same product. ### Shopper A shopper refers to the end user or consumer who interacts with a merchant's products or services, such as the storefront. ### Single-use [Single-use Coupon Code](#single-use-coupon-code) ### Single-use Coupon Code Large numbers of unique coupon codes that can be used once by an individual shopper. ### Stacking Stacking refers to the ability to combine multiple discounts on a single item, cart, or shipping, increasing the total savings for the shopper.\ Merchants can configure promotions and coupons to either allow stacking or prevent it. ### Store A physical retail location for brick-and-mortar merchants or a web store. A web store represents a digital storefront where products or services are displayed and sold. ### Sysapp Sysapp, also called as [System App](/v3/guides/settings/api-apps/creating-system-app), is a software application that generates an access token to establish its identity by utilizing a [client ID](#client-id) and [client secret](#client-secret). Unlike regular user applications, sysapps don't rely on fabric Identity for authenticating end users. Instead, they employ system-to-system communication with fabric APIs to fulfill their intended functionalities and services. ## T ### Tenant A customer or organization that uses fabric to manage and sell their products or services, typically through multiple channels. ### [Tenant ID](/v3/guides/settings/account-details/getting-the-account-id) A custom header used by the API to identify the tenant making the request, found in the Copilot application. Tenant ID is required to access any of fabric’s endpoints. Related Terms: * [Account ID](#account-id) ## U ### User Pool The user directory where user credentials are stored. ### User App User app, also called [user application](/v3/guides/settings/api-apps/creating-user-app), is a type of API app that uses fabric identity service to authenticate end users. ## V ### Variants A different version of a base product. An item variant is also referred to as a child product. Related Terms: * [Item variant](#item-variant) ## W ### Webhooks The feature that sends real-time notifications to a designated URL when merchants subscribe to fabric events. # Terms and Conventions In the User Guide , the term *we* refers to fabric. The term *customers* may have different meanings depending on the context. Customer is used to denote the consumers of fabric's products and services and is also used to imply the service Customer, which is used to manage information for both individual customers and organizations with whom you conduct business, including any contracts in place. The term customer, when lowercase, typically refers to the users of fabric's products. However, in certain contexts where it's capitalized, it indicates fabric’s [Customer](/v3/guides/customers/overview) feature. The term product denotes any item or service available for sale. However, in specific contexts, it directly refers to fabric’s product information management tool, called [Product Catalog](/v3/guides/product-catalog/overview). For all other terms used in fabric, see the [Glossary](/v3/guides/get-started/glossary). # Overview The Alerts feature in fabric Copilot notifies you of potential issues using the data within your account. You can use these notifications to identify and respond to system errors or data anomalies that could impact business operations. For example, you can set up alerts for high order failure rates, abnormal dips in prices, published SKU counts dropping significantly, and transactional failures. You can subscribe to receive alerts by email when an event occurs, and view alerts on the **Alerts** dashboard in Copilot. Users with shared access to your organization’s account can view the alerts you set up and optionally subscribe to them. Setting up and configuring alerts requires **Administrator** privileges in Copilot. For more detailed information on these settings, see [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control). ## Use Cases Common use cases for alerts within fabric’s applications include: * **Orders:** Alert that flags orders that might negatively impact trailing metrics, such as returns and cancellations. * **Inventory:** Alert that creates a notification for any issues updating your inventory records. * **Product Catalog:** Alert that creates a notification whenever a product information import fails. ## Alert Components Creating an alert involves setting up three main components: the **Alert trigger conditions**, **Look-back period**, and **Severity threshold**. ### Alert Trigger Conditions Alert trigger conditions consist of a series of statements that define the circumstances that trigger an alert. In these statements, you establish the components of an alert by selecting a fabric application, a service within that application, an attribute of that service, an operator, and a value for which you would like to set up the alert. When configuring these statements, you can use a variety of parameters, such as order statuses, inventory levels, and transaction outcomes, to create customized trigger conditions that meet your specific monitoring requirements. It's important to note that when you are setting up an alert in Copilot, the values displayed in each field are entirely dependent upon the selection in the previous field. The following table outlines the fields in the Alert trigger conditions section, and their values. | Field Name | Description | Values | | -------------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **App** | The fabric application to set up the alert for. | - **Orders**
- **Inventory**
- **Product Catalog** | | **Service:** | The service is the specific feature within the fabric application selected in the **App** field. | - Orders: **Order**, **Invoice**, and **Allocation**
- Inventory: **Inventory\_imports**
- Product Catalog: **Attribute**, **Bundle**, **Category**, **Product**, and **Collection** | | **Attribute** | Specifies a characteristic or property of the selection in the **Service** field. | Includes options such as:
- **createdAt:** The time the service was created.
- **updatedAt:** The time the service was updated.
- **statusCode:** The service’s status code. | | **Operator** | The **Operator** field describes the relationship between the **Attribute** field and the **Add Values** field. | - **IN:** Includes
- **NIN:** Doesn't include
- **EQ:** Is equal to
- **NEQ:** Not equal to
- **GT:** Is greater than
- **LT:** Is less than
- **GTE:** Is greater than or equal to
- **LTE:** Is less than or equal to | | **Add Values** | The values represent specific states or conditions of the selected **Attribute**. | Time-based values include options such as:
- **NOW() - PT2H:** The time of the attribute is within the last two hours.
- **NOW() - PT6H:** The time of the attribute is within the last six hours.
- **NOW() - P2D:** The time of the attribute is within the last two days.

Status-based values include options such as:
- **ALLOCATED:** Indicates a status of allocated for the selected attribute.
- **PROCESSING:** Indicates a status of processing for the selected attribute.
- **FAILED:** Indicates a status of failed for the selected attribute. | #### Alert trigger conditions example As an example of how you can use the fields in alert trigger conditions to create statements, consider the Payments Failure Alert template. It’s an alert that’s generated from the Orders application whenever an invoice fails. There are two statements required to create this alert; an **if** statement and an **and** statement. The **if** statement simply says, “if the Orders app invoicing service created an invoice more than two hours ago.” To create this statement in the alert trigger conditions, the **if** statement is configured as follows: * **App:** is set to **Orders** * **Service:** is set to **Invoice** * **Attribute:** is set to **createdAt** * **Operator:** is set to **GT** * **Add value:** is set to **NOW() - PT2H** This statement tells Alerts where to look and when, but what it’s looking for - the failed invoice - is incomplete. The **and** statement finishes the alert trigger condition by describing the type of invoice to look for. It says, "the status of the invoice includes the values `_failed_` or `_settlement failed_`." To create this statement in the alert trigger conditions, the **and** statement is configured as follows: * **Service:** is set to **Invoice** * **Attribute:** is set to **statusCode** * **Operator:** is set to **IN** * **Add Values:** is set to **FAILED** and **SETTLE\_FAILED** Understanding alert trigger conditions is crucial for setting up effective alerts in your fabric applications. By configuring both `if` and `and` statements, you can specify the exact conditions that trigger an alert. #### Adding and removing conditions When creating an alert from scratch, you can refine your alert trigger conditions by adding **and** statements. This allows for even more nuanced and targeted alerting, so that you can specify combinations of attributes, operators, and values that must be met to trigger an alert. However, every condition for all your statements must be met to trigger the alert, which means too many **and** statements could cause you to miss an event that you want to monitor. ### Look-Back Period The look-back period is the timeframe that fabric considers when assessing data for potential alerts. For instance, if an alert is configured to trigger when order processing times exceed a certain threshold, the look-back period could be defined as the past 24 hours. In this scenario, fabric examines order processing times over the last day to determine if the current processing time deviates significantly from the average. Configuring the look-back period helps provide context to alerts. A shorter look-back period may capture recent changes or sudden spikes in activity, while a longer look-back period can help identify sustained trends or recurring issues. ### Severity Threshold The **Severity threshold** is the term for the required number of events to occur for an alert to be considered low, medium, or severe. * **Low Severity:** Alerts with a low severity threshold are triggered when the specified event occurs infrequently. These alerts typically highlight events that might require attention but may not be of immediate concern. * **Medium Severity:** A medium severity threshold indicates a moderate frequency of the event. Alerts in this category often point to events that may warrant closer monitoring due to their increased occurrence as a potential issue that should be addressed. * **High Severity:** Alerts with a high severity threshold are triggered when the specified event reaches a significant frequency. These alerts usually require immediate attention, as they typically signify critical events or issues that require prompt resolution to prevent impact on business operations. You can configure the severity threshold numbers to tailor alerts to your specific needs. Keeping with the example of the Payments Failure Alert, you could set the **Low Severity** field in this template to five. This will generate a low severity alert when five payments have failed within the time frame you specified. From there, you could set **Medium Severity** to 10, so that a medium severity alert would be generated when 10 payments fail within your time frame. Setting **High Severity** to 15 would generate high severity alert when 15 payments have failed within your time frame. You will need to adjust the severity thresholds until you get the alert dialed in to your needs. Typically, you want to avoid infrequent or minor events and focus on frequent and severe events. Adjusting the severity threshold will help you strike a balance between being notified of potential issues and avoiding unnecessary alert fatigue. ## Templates You can use templates to set up alerts quickly without having to configure each trigger condition manually. These templates have pre-configured trigger conditions for common operational events, such as failed payments. With the predefined triggers for situations that often require immediate attention, you can address potential issues before they escalate into bigger problems. ## Related Topics * [Alerts Conceptual Guide](/v3/guides/home/alerts/alerts-conceptual-guide) * [Alerts Homepage](/v3/guides/home/alerts/alerts-page) * [Creating Alerts](/v3/guides/home/alerts/creating-alerts) * [Managing Alerts](/v3/guides/home/alerts/managing-alerts) # Alerts Page The Alerts page shows an overview of the alerts that have occurred. Alerts are organized into groups based on severity: **High Alerts**, **Medium Alerts**, **Low Alerts**, and **Total Alerts**. The Alerts page only displays the alerts you created or subscribed to. ## Filter controls The controls on the Alerts page allow you to filter and search for alerts. The following table describes each filter option. | Filter | Description | | ---------- | -------------------------------------------------------------------------------------------------------- | | Search | Search for an alert by name. | | Severity | Filter by severity, whether **High**, **Medium**, or **Low**. | | App | Filter by the fabric application the event occurred in, whether **Products**, **Orders**, or **Offers**. | | Created at | Filter by the date and time the alert was triggered. | | All Time | Show alerts from a specific timeframe. | ## Field descriptions You can see additional details about alerts in the table at the bottom of the page. The following table describes each field. | Field | Description | | ----------- | ---------------------------------------------------------------------------------------------- | | Severity | The severity of the alert, whether **High**, **Medium**, or **Low**. | | Alert Name | The name assigned to the alert. | | App | The fabric application the event occurred in, whether **Products**, **Orders**, or **Offers**. | | Issue count | The number of times the event occurred. | | Created at | The date and time when the alert was created. | ## Related Topics * [Alerts Overview](/v3/guides/home/alerts/alerts-overview) * [Creating an Alert](/v3/guides/home/alerts/creating-alerts) * [Managing Alerts](/v3/guides/home/alerts/managing-alerts) # Creating Alerts With the **Alerts** feature, you can set up notifications when business-impacting events occur within your fabric applications. For example, you can set up alerts for high order failure rates, abnormal dips in prices, published SKU counts dropping significantly, or transactional failures. For an overview of the conceptual topics related to creating an alert, see the [Alerts Overview](/v3/guides/home/alerts/alerts-overview). ## Prerequisites Ensure that you have **Administrator** privileges in Copilot. For more detailed information on these settings, see [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control). ## Create My Own Alert 1. In the left menu, click **Home** > **Alerts**. The **Alerts** page is displayed. 2. Click **Create Alert**. The **Create alert** page is displayed. 3. Click **Create My Own**. The **Alert Details** page is displayed. 4. In the **Alert Name** field, enter a name for the alert. 5. In the **Description** field, enter a description of the alert. 6. In the **Alert trigger conditions** section, configure the following fields as required: * **App:** Specifies the application you want to set up the alert for, such as **Orders** or **Inventory**. * **Service:** Specifies the feature within the application to set up the alert for, such as **INVOICE** or **INVENTORY\_IMPORTS**. The options available in the **Service** field are dependent on the selection you made in the **App** field. * **Attributes:** Specifies the characteristics or properties, such as **createdAt** or **statusCode**. The options available in the **Attributes** field are dependent on the selection you made in the **Service** field. * **Operators:** Specifies an expression to filter data, such as greater than (**GT**) or less than or equal to (**LTE**). The options available in the **Operators** field are dependent on the selection you made in the **Attributes** field. * **Add Values:** Specifies the states, statuses, or outcomes related to the selections in the App, Service, and Attribute fields, such as **ALLOCATED** or **NOW() - PT4H**. The options available in the **Add Values** field are dependent on the selection you made in the **App**, **Service**, and **Attribute** fields. For more information on alert trigger conditions, see the [Alerts Overview](/v3/guides/home/alerts/alerts-overview). 7. In the **Look-back period** field, select the frequency you want the system to review and assess data for potential alerts. Note: The **Look-back period** field is displayed depending on how you configure the Alert trigger conditions. If you don't see the **Look-back period** field, skip this step. 8. (Optional) To add another trigger condition to this alert, click **Add Condition**, and fill out the fields as required. 9. Enter a value in the **Low Severity**, **Medium Severity**, and **High Severity** fields. For more information on setting the severity threshold, see the [Alerts Overview](/v3/guides/home/alerts/alerts-overview). 10. Click **Next**. The **Review** page is displayed. 11. To receive email alerts about this event, in the **Alert notification** section, select **Subscribe to this alert**. Choosing to receive email alerts will only send an email to the address associated with your fabric account. Other users with shared access to your organization’s fabric account can [subscribe to this alert](/v3/guides/home/alerts/managing-alerts#subscribing-to-an-alert) or view events that triggered this alert on the Alerts page. 12. Click **Save**. The alert is created. You can access the alert in the **Configured Alerts** tab on the **Alerts** homepage. ### Alert Trigger Conditions Field Descriptions When you are setting up an alert in Copilot, the values displayed in each field are entirely dependent on previously selected fields. The following table outlines the fields in the Alert trigger conditions section, and their values. | Field Name | Description | Values | | -------------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **App** | The fabric application to set up the alert for. | - **Orders**
- **Inventory**
- **Product Catalog** | | **Service:** | The service is the specific feature within the fabric application selected in the **App** field. | - Orders: **Order**, **Invoice**, and **Allocation**
- Inventory: **Inventory\_imports**
- Product Catalog: **Attribute**, **Bundle**, **Category**, **Product**, and **Collection** | | **Attribute** | Specifies a characteristic or property of the selection in the **Service** field. | Includes options such as:
- **createdAt:** The time the service was created.
- **updatedAt:** The time the service was updated.
- **statusCode:** The service’s status code. | | **Operator** | The **Operator** field describes the relationship between the **Attribute** field and the **Add Values** field. | - **IN:** Includes
- **NIN:** Doesn't include
- **EQ:** Is equal to
- **NEQ:** Not equal to
- **GT:** Is greater than
- **LT:** Is less than
- **GTE:** Is greater than or equal to
- **LTE:** Is less than or equal to | | **Add Values** | The values represent specific states or conditions of the selected **Attribute**. | Time-based values include options such as:
- **NOW() - PT2H:** The time of the attribute is within the last two hours.
- **NOW() - PT6H:** The time of the attribute is within the last six hours.
- **NOW() - P2D:** The time of the attribute is within the last two days.

Status-based values include options such as:
- **ALLOCATED:** Indicates a status of allocated for the selected attribute.
- **PROCESSING:** Indicates a status of processing for the selected attribute.
- **FAILED:** Indicates a status of failed for the selected attribute. | ## Create an Alert with a Template 1. In the left menu, click **Home** > **Alerts**. The **Alerts** page is displayed. 2. Click **Create Alert**. The **Create alert** page is displayed. 3. Click **Use Template**. 4. In the **Use Template** section, do the following: * Select the tab of the fabric application you want to set up the alert for; whether **Orders**, **Inventory**, or **Product Catalog**. The templates available for that application are displayed. * Select a template. 5. Click **Next**. The **Alert details** section is displayed. 6. In the **Alert Name** field, enter a name for the alert. 7. In the **Description** field, enter a description of the alert. **Note:** The fields in **Alert trigger conditions** are disabled when creating an alert from a template since they come pre-configured to trigger based on a specific event. For more details on editing the **Alert trigger conditions** fields, see the [create an alert from scratch](/v3/guides/home/alerts/creating-an-alert) section. 8. In the **Look-back period** field, select the frequency at which fabric checks for events that could have triggered the alert. 9. Enter a value in the **Low Severity**, **Medium Severity**, and **High Severity** fields. For more detailed information on setting the severity threshold, see the [Alerts Conceptual Guide](/v3/guides/home/alerts/alerts-conceptual-guide). 10. Click **Next**. The **Review** section is displayed. 11. To receive email alerts about this event, in the **Alert notification** section, select **Subscribe to this alert**. Choosing to receive email alerts will only send an email to the address associated with your fabric account. Other users with shared access to your organization’s fabric account can \[subscribe to this alert]\(link to configured alerts tab) or view events that triggered this alert on the Alerts homepage. 12. Click **Save**. The alert is created. You can access the alert in the **Configured Alerts** tab on the **Alerts** homepage. ## Related Topics * [Alerts Overview](/v3/guides/home/alerts/alerts-overview) * [Alerts Homepage](/v3/guides/home/alerts/alerts-page) * [Managing Alerts](/v3/guides/home/alerts/managing-alerts) # Managing Alerts This document covers the process of editing an alert's details, subscribing to an alert, managing an alert's status, and browsing alert templates. ## Prerequisites Ensure that you have **Administrator** privileges in Copilot. For more detailed information on these settings, see [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control). ### Editing an alert’s details 1. In the left menu, click **Home > Alerts**.
The Alerts page is displayed. 2. Click **Configured alerts**.
The **Configured alerts** tab is displayed. 3. Click on an alert’s title.
The alert details page is displayed. 4. Edit the alert’s details as required.
Depending on the configuration for the alert, editing for certain fields might be disabled. 5. Click **Save**. The alert’s details are saved. You can access the alert in the **Configured Alerts** tab on the **Alerts** homepage. ### Subscribing to an alert 1. In the left menu, click **Home > Alerts**.
The **Alerts** page is displayed. 2. Click **Configured Alerts**.
The **Configured Alerts** tab is displayed. 3. Click on the title of an alert.
The alert details page is displayed. 4. In the **Alert notification** section, select **Subscribe to this alert**. 5. In the **Subscribe by level of severity** fields select the alerts you want to subscribe to. 6. In the **Subscription alert notification method** field, select whether you want to receive email alerts or only see the alert on the **Alerts** page. 7. Click **Save**. You are subscribed to the alert. You will receive email notifications whenever an event triggers the alert conditions. ### Assigning users to alerts fabric users with admin access to their organization’s account can assign alerts to other users in their organization. 1. In the left menu, click **Home > Alerts**.\ The **Alerts** page is displayed. 2. Click **Configured Alerts**.\ The **Configured Alerts** tab is displayed. 3. To edit who is notified when an alert is triggered, click the **Alert** name.\ The alert details page is displayed. 4. In the **Alert notifications** section, select **Users**.\ A list of users in your organization who already have alert notifications set up is displayed. 5. To assign or edit alert settings, choose one of the following options: * To assign alerts to a user or users who don't already have alerts set up, do the following: * Click **Add Users**. The **Add users** window is displayed. * In the **Users** field, select one or more users. * In the **Subscribe by level of severity** fields, select the severity you want to subscribe the user or users to. * In the **Subscription alert notification method** field, select whether you want the user to receive email alerts or only see the alert on the **Alerts** page. * Click **Add Users**. * To edit a single user's existing subscription settings, do the following: * Mouse over the user in the table and click the pencil icon. The **Edit alert notifications window** is displayed. * In the **Subscribe by level of severity** fields, select the severity you want to subscribe the user to. * In the **Subscription alert notification method** field, select whether you want the user to receive email alerts or only see the alert on the **Alerts** page. * Click **Save**. * To batch edit the subscription settings for multiple users, do the following: * Select one or more users in the list and click the **Edit** button. The **Are you sure you want to edit alert notifications for these users?** window is displayed. * (Optional) In the **Users** add or remove the users you are editing. * In the **Subscribe by level of severity** fields, select the severity you want to subscribe the user to. * In the **Subscription alert notification method** field, select whether you want the user to receive email alerts or only see the alert on the **Alerts** page. * Click **Save**. The user or users are subscribed to receive alerts based on the settings you selected. ### Managing an alert’s status 1. In the left menu, click **Home > Alerts**. The **Alerts** page is displayed. 2. Click **Configured alerts**. The **Configured alerts** tab is displayed. 3. Click the alert name. The alert details page is displayed. 4. Click the **Active** toggle button. * If the alert is already in an active state, the **Are you sure you want to deactivate alert?** popup is displayed. * To confirm deactivation, click **Yes, I’m Sure**. * To cancel, click **Cancel**. 5. Click **Save**. The alert’s status is updated. You can access the alert in the **Configured Alerts** tab on the **Alerts** homepage. ### Browsing alert templates 1. In the left menu, click **Home > Alerts**. The **Alerts** page is displayed. 2. Click **Templates**. The **Templates** tab is displayed. Templates are organized by fabric application. 3. To browse templates by fabric application, click the arrow icon to the right of a product menu to expand or collapse that application menu. 4. To learn more about an individual template, click its **View Details** button. The **Template details** menu is displayed. It shows the template’s name, description, severity threshold, and trigger conditions. 5. Take one of the following actions: * To create an alert from this template, click **Use**. The **Create alert** page is displayed. For detailed instructions on creating an alert from a template, see [Creating an Alert from a Template](/v3/guides/home/alerts/creating-an-alert-from-template). * To resume browsing, click **Cancel**. The **Template details** menu closes. ## Related Topics * [Alerts Overview](/v3/guides/home/alerts/alerts-overview) * [Alerts Homepage](/v3/guides/home/alerts/alerts-page) * [Creating an Alert](/v3/guides/home/alerts/creating-alerts) # Inventory See the stock of goods across locations all in one spot ## Introduction The Inventory page shows a list of all the items in your inventory across all locations, with numbers that provide a quick look at the total quantity of each item that's Available to Purchase, Available to Backorder, and Available to Preorder. Click on the column headers to sort the information the inventory page displays. ## Importing Inventory The **Import** button at the top of the page allows you to upload inventory information in a CSV file. Clicking the button opens the Import CSV file modal. It's highly recommended that you download one of the template files to use as a guide. Click on a template button to begin the download process. * **Template: Overlay** overrides inventory levels by “counter” in the fabric Orders inventory database. * **Template: Inventory Update** upgrades “root” values in the Inventory Record including Preorder date, Backorder date, Low stock level, and Safety stock level. **Step 1: Choose upload type to import** Select the type of file you’re uploading. The option you choose should match the type of template you downloaded, either **Overlay** or **Inventory Update**. **Step 2: Click the button to add your file or simply drag and drop it** Click the button to open the file selector or drag the file from your computer and drop it in the uploader. Any CSV file you upload must match the following headers and corresponding data formats with no blank spaces, returns, line breaks, or other characters. Not following the parameters in the templates will result in errors when uploading. * SKU - Unique identifier for the product or item. * Total Quantity - The total amount of product. * Reserved Quantity - For first upload, this must be zero "0." For subsequent updates, use the reserved number from the inventory item details page. * Location ID - Warehouse ID. * Type - This can be either "Stock" or “Transit” if the inventory is in transit. * Channel ID - The channel ID must be either "12" (USA Web) or "13" (Canada Web). * Transit Ref - The transit reference number. * Transit Order Date - The transit order date in UTC Format (yyyy-mm-ddThh:mm:ss.sssZ). This date must be prior to the Transit Stock Date. * Transit Stock Date - The transit stock date in UTC Format (yyyy-mm-ddThh:mm:ss.sssZ). **Notes**: * Inventory can't be updated at the individual level in Copilot at this time. Inventory must be added through .CSV file import. * Some of the fields supported in the template, attributes and counters, are configurable by tenant, so the bulk upload will accept columns for attributes and counters depending on the tenant configuration. ### Inventory Detail Click on an item in your inventory to visit the Inventory Detail page, where you can see how that item’s stock is allocated across your locations. The **Location** and **Channel** dropdowns allow you to see the number of that item you have onHand, allocated, and shipped. Click on the **Other Attributes** tab to edit details about the item, including the Inventory Type, Lead Time, and more. After you make your changes, click the **Save** button at the top-right of the page. # Networks Create rules to define inventory availability ## Introduction A network is a group of locations that share inventory. By defining a network code, storefronts can use network codes to get inventory. The Network page shows a list of all networks you have created previously with an Add Network button at the top-right. You can edit a previously created network by hovering over its name in the list and clicking the pencil icon at the right. ### Types of Networks There are two types of networks: a **Single Network** or **Multiple Networks**. **Single Network** is used to define inventory availability rules that apply to items and locations. **Multiple Networks** is used to group Single Networks together. A possible use case for Multiple Networks could be to set up different types of locations within your retail system, such as stores, warehouses, outlets, etc. In order to set up the Multiple Networks option, you must have created at least two Single Networks previously. ## Creating a Network Click the **Create Network** button at the top-right to create a new network. **Step 1: Add Basic Information** Fill out the Network Name and add a Description (optional). Use the **Select Type of Network** field to choose whether you would like to create a Single Network or Multiple Networks. Follow the steps below that correspond to the type of network you’re creating to complete the process. #### Single Network **Step 2: Set Up Your Rules** Use the **Attribute Type** drop-down to select whether the rule applies to a **Product** or a **Location**. The options in the **Attribute Name** drop-down menu depend on whether you selected Product or Location in the Attribute Type drop-down menu. If you selected **Product**, you can choose between the default option “isActive” or any custom attribute you may have created in [OMS Settings](/v3/guides/orders/settings). If you select **Location**, you can choose between the two default options, `isActive` and `isBopis`, or any custom attributes you may have created in OMS Settings. Use the **Contains** drop-down menu to choose whether the rule applies to items that contain, don't contain, or are equal to the value you enter in the Add Value field. Enter a value into the **Add Value** field. The field accepts any alphanumeric character. Once you have set up the rule, click the **Add Rule Group** button. You can create multiple rule groups that apply to the same Attribute Type or Attribute Name. **Step 3: Add inventory availability** Enter a number of units in the **Safety stock quantity** field. The number set in this field will be subtracted from the available to promise quantity. The network safety stock also aggregates the safety stock for every location in the network. Therefore the actual safety stock will be this number plus the location aggregated safety stock. Enter a number of units in the **Define low stock level** field. Click the **Create** button at the top-right of the page to save your network, or click **Cancel** to exit without saving changes. #### Multiple Networks **Step 2: Set Up Your Multiple Networks** Use the **Single Network** dropdown to select one of the Single Networks you have created previously to be a part of this Multiple Networks group and then click **Add**. After you have added a Single Network, it will appear below the Single Network dropdown, along with its Safety Stock and Low Stock numbers, as well as the date it was Last Updated. Hover over a Single Network you have added and click on the trash can icon that appears at the right to remove it. You must add at least two Single Networks to create a Multiple Networks group. Click the **Create** button at the top-right of the page to save your network, or click **Cancel** to exit without saving changes. # Overview fabric Inventory is your single source of truth for inventory data. You can receive and track inventory across networks and locations. ## Prerequisites Copilot is the primary interface for working with fabric applications. You will need an active account, including an account ID, to access Copilot. Contact your Copilot Admin or Customer Success representative to obtain these credentials. ## Launching Inventory To launch Inventory, log in to your Copilot account and select **Inventory** from the left-hand navigation. ## Navigation Inventory is divided into three separate sections accessible from the left column: * [Manage Inventory](/v3/guides/inventory/inventory) - your dashboard for managing and tracking inventory * [Networks](/v3/guides/inventory/networks) - create rules to define inventory availability * [Locations](/v3/guides/inventory/locations) - manage location information ## Role-Based Access Control (RBAC) fabric Copilot provides the ability to restrict the access of different users to information and actions available to them through roles. For more information and instructions on how to set up these controls, [visit the RBAC documentation](/v3/guides/settings/rbac/role-based-access-control). # Coupons Create codes that customers can enter at checkout to receive a discount ## Introduction The Coupons tab displays a list of your coupons with controls to search and sort and a **Create new** button at the top right. Use the search bar to find specific coupons. Results will auto populate as you type. ## Setting up a Coupon From the Coupons menu, click **Create coupon** to create a new coupon, or click on an existing coupon’s title to edit it. Both options direct you to the **Edit coupon** screen to complete the following sections. ### Coupon details * Coupon title - enter a name for the coupon. This will be displayed in the list of coupons on the main Coupons menu. * Start and End dates and time - the date and time range the coupon is valid. * Coupon usage * Multiple-use coupons can be redeemed repeatedly without restriction. Use the Coupon code field to enter the code customers will need to use at checkout to receive the discount (SPRINGSALE20). * Single-use coupon codes can only be redeemed once. Fill out the Prefix, Starting number, and Total coupon count fields, and click the Generate Codes link. fabric will use the information you provided to create a series of unique coupon codes. For example, say you fill out the fields with the following information: * Prefix - SPRING * Starting number - 200 * Total coupon count - 10fabric would generate 10 coupons: SPRING201, SPRING202, SPRING203, etc. The codes Offers creates will be available for download from the coupon listing page. * Price list selection * All - the coupon will apply to all eligible SKUs on all eligible price lists. * Select price list - the coupon will only apply to eligible SKUs from the price lists you select. (Each price list selected must have the same currency) * The specific price types (Base & Sale) from the price list can be selected to enable discounts on sale prices or prevent over-discounting on sale prices. * Both Sale & Base Price - the discount will be applied if either price type is being used * Sale Price - the discount will ONLY be applied if the Sale price is used and passed to Offers * Base Price - the discount will ONLY be applied if the Base price is used and passed to Offers ### Coupon Stacking Coupons have four different settings to control how they stack (combine) with other discounts running: **Stackable**, **Exclusive**, **Type Exclusive**, and **Universal**. **Stackable** The Stackable setting allows the coupon to stack with any other discount, except for those set to exclusive. The discounts “stack” on top of each other, increasing the total discount amount if the discounts apply to the same items in the cart. Stackable coupons require a priority. The priority defines the order in which stackable coupons are evaluated. Starting with priority 1, coupons are evaluated and applied in ascending order. Use the Stacking Priority dropdown to select the coupon’s priority. Priority 1 uses the price list price to apply the discounts to the target (product/cart). Priority 2 coupons are evaluated with their applicable discounts stacked on top of the discounted price from priority 1 coupons. Evaluation continues until all stackable priorities have been evaluated and applied. **Exclusive** The Exclusive setting means a coupon can't be combined with other discounts (except Universal). Only one non-stackable coupon will be applied to the cart, even if other items would be eligible. This is considered “Globally” exclusive. In these cases, Offers will apply the coupons with the largest monetary discount to the customer’s cart. If two coupons have the same monetary discount amount, the most recently published coupons will be applied. **Type Exclusive** This setting prevents coupons of the same type from being stacked. There are three types based on the discount target: * Product - Coupon types that discount products with \$ off, % off, fixed price, typically these types SKUs, SKU quantity, Buy/Get SKU. * Order - Coupon types that discount part of or the entire cart, for example, Buy/Get Cart. * Shipping - Coupon types that discount shipping, for example, SKU - Shipping, Buy/Get Shipping. **Universal** This setting is used when you always want a coupon evaluated and applied (if it qualifies). These discounts are applied last and can stack on any other coupon regardless of its stacking setting. ### SKU selection Products can be included or excluded from coupons using several criteria. The first step is to set the inclusion criteria by first selecting the product target. Based on the criteria selected, products will be included in the coupon scope. * ALL SKUs - All products in your catalog are eligible for the coupon * SKUs - Select a specific list of products from your catalog * Category - Select specific categories from your product catalog. Products assigned to these categories will be included in the coupon. * Bulk Upload SKUs - upload a specific list of products from your catalog Please note: * Global exclusions continue to be considered regardless of coupon-specific rules. * Browse/Select SKU and Upload SKU are only enabled if the ‘OR’ condition is selected * If multiple values are selected in Category, Collection, or Attribute, these are treated as an ‘OR’ where only one must be true for the products to match the conditions. Next, select the condition that can be used to decide how the criteria for inclusions interact. * AND = ALL conditions must be met for the coupon to qualify * OR = Only ONE of the criteria must be met for the coupon to qualify Finally, you can exclude a subset of products. * ALL SKUs - All products in your catalog are eligible for the promotion or coupon * SKUs - Select a specific list of products from your catalog * Category - Select specific categories from your product catalog. Products assigned to these categories will be included in the coupon. * Bulk Upload SKUs - upload a specific list of products from your catalog Please note: * Global exclusions continue to be considered regardless of coupon-specific rules. * Browse/Select SKU and Upload SKU are only enabled if the ‘OR’ condition is selected * If multiple values are selected in Category, Collection, or Attribute, these are treated as an ‘OR’ where only one must be true for the products to match the conditions. ### Coupon type **Coupon is applicable on** has three buttons to select the whether the coupon applies to: * Specific SKUs * A customer’s Cart Value * The Quantity of items in a customer’s cart After you set up the Coupon type, you can add additional discounts with the **Add Another Discount Type** button. For example, you can create a coupon that gives shoppers both 10 percent off and free shipping. You can add up to three total discounts. Use the **Add Notes** section to jot down any important information while creating or updating a coupon. The notes section has a character limit of 100. Changes to the notes section replace prior versions of the notes. Prior versions of the notes aren't saved for retrieval. ## SKUs coupons Use the Coupon type drop-down menu in conjunction with the Value field to choose whether the coupon will give the customer a Percentage off, an Amount off, or a discount applied to the shipping costs with Shipping off. Percent off and Amount off are applied individually on all the valid SKUs in the cart. When **Shipping off** is selected, the **Shipping type** and **Shipping-Coupon-type** drop-down menus appear. Use the Shipping-coupon-type drop-down menu to choose between Percentage off, Amount off, or Free. The Value field will change based on selection to allow for a percentage, dollar amount, or disappear, respectively. Each fabric customer account can be configured to further discount the SKUs with clearance prices. Consult with your fabric representative to set up this custom configuration. ## Quantity coupons Enter a number in the Minimum quantity of SKUs field to set the minimum number of items the customer must have in their cart before being eligible for the coupon. Use the Coupon type drop-down menu in conjunction with the Value field to choose whether the coupon will give the customer a Percentage off or an Amount off. The **Add another tier** feature allows you to create progressive coupons based on increasing minimum cart value thresholds. An example of a tiered coupon would be as follows * 10% discount once the cart reaches 3 items * 15% discount once the cart reaches 4 items * 20% discount once the cart reaches 5 items Click the Add another tier button to add a tier and its corresponding Delete button to remove the tier. You can create up to six tiers. ### Most Expensive/Cheapest Item Discount Application You can optionally specify to ONLY apply a discount to the most expensive or cheapest product in a customer’s cart, rather than all of the eligible items. This setting is available for the following discount types: * Percentage off * Amount off * Fixed price * Free It can't apply to shipping discounts. ### Next-most Expensive Discount This promotion strategy enhances savings by applying discounts to the next-most expensive items in a shopper's cart. This is applicable only for the Buy-Get type of discounts where shoppers get SKU discounts. In the next-most expensive type of promotion, the most expensive item in a shopper's cart is used to qualify them for the promotion. Of the remaining items in the cart that qualify for the promotion, the next-most expensive item is discounted. If multiple items in the cart qualify for the promotion, then each of the next-most expensive items is discounted. For example, a shopper adds four items to their cart: A for \$40, B for \$30, C for \$20, and D for \$10. In this case: * Item A being the most expensive in the list doesn't get discounted. * Item B, being the next-most expensive one, receives a discount. * After applying the discount to B, the system checks the remaining two items in the cart - C and D. * Item C being the most expensive in the list doesn't get discounted. * Item D, being the next-most expensive one, receives a discount. As a result, items B and D get discounted through this promotion. ## Buy X Get Y Coupons Buy X Get Y coupons allow you to discount products based on customers purchasing them in a bundle or spending over a minimum amount. The most common use is for “Buy one, get one” coupons. ### Customer buys There are three options: * SKUs - This allows you to choose alternative sets of SKUs. A customer must purchase the required quantity from at least 1 SKU set. * Bundle - This allows you to choose multiple sets of SKUs. A customer must purchase the required quantity from all SKU sets. * Cart Value - This lets you set a minimum amount that the customer must spend in order to get a discount on a specific SKU. You won't use ‘SKU sets’ for this option; instead, you can select SKUs that will be included in the total spend amount. Use **Browse SKUs**to select the SKUs in the SKU set and enter the minimum quantity of SKUs that must be added to the cart. Use **+ Add another set of SKUs** to display an additional section for adding SKUs. Each SKU set will be labeled with a letter as an identifier, starting from A and going in alphabetical order. You must select the SKUs and the minimum quantity before you can move onto ‘Customer Gets.' ### Customer Gets Choose the discount the customer will receive. * SKU - This option allows you to choose specific SKUs to be discounted. You can also specify if you would like to give an item for ‘free’. * Cart - This option allows you to discount the total cart value by an amount or percentage. * Shipping - This option allows you to discount the shipping cost. You will be able to select shipping methods that you have configured in fabric Orders. For the SKU option, you can select a set of SKUs that can be discounted. You can choose the same set you created before in the ‘customer buys’ section, or you can choose to create a new SKU set by clicking on **+ Add another set of SKUs**. Then choose the maximum quantity that can be discounted and how much they should be discounted by. You can add additional sets of SKUs to be discounted by selecting **+ Add another discount**. All SKU sets will be included when calculating the discount. ### Discount type There are four discount types: * **Percentage off** - Reduces the price of the items, cart, or shipping by a percentage. The percentage value range from 1 to 100%. * **Amount off** - Reduces the price of the items, cart, or shipping by a specific monetary amount. The currency used for the discount corresponds to the price list associated with the promotion. The amount can range from 1 to the total price. If the discount amount exceeds the price, the price becomes zero. * **Shipping off** - Reduces the shipping cost based on the chosen shipping method by either a percentage or amount. You can also set the discount as `Free` to indicate a 100% discount. * **Shipping methods** - The offers service uses the shipping methods configured in fabric OMS. This means you must use fabric OMS to apply shipping discounts. Multiple shipping methods can be selected; however, only a single discount type can be applied per method. You can create separate promotions to apply discount types for each shipping method. * **Shipping discount qualifications** - On a shipping-type promotion or coupon, you can choose whether the discount applies to the entire shipment or just the items in the cart that qualify for the discount. * **Entire cart:** With this option selected, every item in a cart must qualify for the promotion to apply regardless of ship-to locations. * **Entire Shipment:** With this option selected, Only the items that share the same ship-to locations qualify for the promotion. For example, in the event of multi-fulfillment orders, when part of the order ships to home and part is picked up in-store, only items that qualify within the same ship-to qualify for the promotion. * **Fixed price** - Assigns a fixed price to the items, cart, or shipping. The currency used for the discount corresponds to the price list associated with the promotion. In a "Buy X-Get Y" promotions, the fixed price is applied to each unit of the discounted items. **Note:** This option isn't applicable to promotions based on Cart Value. ### Most/Least Expensive Item Discount Application You can optionally specify to ONLY apply a discount to the most or least expensive product in a customer’s cart, rather than all of the eligible items. This setting is available for the following discount types: * Percentage off * Amount off * Fixed price * Free It can't apply to shipping discounts. ## Dynamic Discounts Dynamic discounting allows coupons to have variable discount amounts to prevent over-discounting when coupons stack. For example, if one coupon discounts an item or cart by 40%, you can limit a subsequent discount to 10%. Use the toggle button to turn dynamic discounts on or off. The If no discount already exists field allows you to set the maximum percentage off of the first applicable discount. The If discount already exists field allows you to set the maximum percentage off of any subsequent applicable discounts. Dynamic Discounts can be set on SKU or SKU Quantity coupons including: * Percentage off * Amount off * Shipping off * Fixed price Dynamic Discounts aren't eligible for Buy/Get or Spend/Get coupons. ## Coupon Limits There are two ways to limit coupon use: per user and site-wide. Limiting coupons on a per-user basis allows you to choose how many times an individual redeems the coupon. This feature requires everyone redeeming the coupon to be registered and signed in to your web store. Limiting coupons site-wide allows you to choose how many times a coupon can be redeemed in total, by any user. These features can be used individually or in conjunction with each other for more control. For example, you may set a site-wide coupon limit at 100. To prevent one person from repeatedly using the coupon, you can also limit usage on a per-user basis, and set per-user redemption to one or two. ### Coupon Attributes You can add custom metadata to existing promotions and coupons by using attributes. By adding coupon attributes, you can query the coupon using the assigned attribute values. For example, you can create a *Brand* attribute with different brands as the attribute values. When you create a coupon, you can assign the *Brand* attribute with any of the predefined brand values. This method helps you specify your coupons more precisely and limit their use to certain conditions, such as specific brands, email types, or loyalty programs. #### Prerequisites Ensure that all required attributes are created in the [Offers Settings](/v3/guides/offers/settings) page. #### Adding coupon attributes 1. In the left menu, click **Offers** > **All coupons**.\ The **Coupons** page is displayed. 2. Click **Create Coupon**.\ The **Create Coupon** page is displayed. 3. Scroll to the **Coupon attributes** section. 4. In the **Attribute name** drop-down menu, select the attribute you want added to the coupon.\ When an attribute is selected, the **Attribute values** are automatically populated. 5. (Optional) Remove any attribute values you don't want by selecting the **Attribute values** drop-down menu and un-checking the value.\ You can also click the `x` next to an attribute value to remove the value. Note that at least 1 value must be present. 6. (Optional) Click **Add another attribute** to add additional attributes. 7. To create the coupon, you must enter the remaining required information in each section. Each section for creating a coupon is outlined in this document. #### Editing an existing coupon attributes 1. In the left menu, click **Offers** > **All Coupons**.\ The **Coupons** page is displayed. 2. To edit coupon attributes, do one of the following: * Click the name of the existing coupon. * Click the pencil icon at the rightmost of the existing coupons row.\ The edit coupon page is displayed with the coupons name. 3. Scroll to the **Coupon attributes** section. 4. Edit the coupon attributes as required.\ See the steps outlined in [adding coupon attributes](#adding-coupon-attributes) for information on changing values. 5. (Optional) To edit the attribute name and add or remove attribute values, see the editing steps outlined in [Offers Settings](/v3/guides/offers/settings). #### Removing an existing coupon attribute 1. In the left menu, click **Offers** > **All Coupons**.\ The **Coupons** page is displayed. 2. To delete coupon attributes, do one of the following: * Click the name of the existing coupon. * Click the pencil icon at the rightmost of the existing coupons row.\ The edit coupon page is displayed with the coupons name. 3. Scroll to the **Coupon attributes** section. 4. Click the reset icon.\ If more than one coupon attribute exists, a trash icon is displayed instead of the reset icon. 5. Click **Update** ## Customer Segments Offers lets you target coupons at specific groups of customers. However, before targeting a customer segment, you must first [create a customer segment in Offers Settings](/v3/guides/offers/settings#customer-segments). After you have created a customer segment, you can target that segment with coupons. * Target audience - choose whether the coupon will apply to: * All - the coupon will be available to all shoppers. * Segment - the coupon will be available to shoppers within the segment you have identified. * Segment name - Select the segment you wish to link to the coupon. * Segment values - The values will be populated here. You can choose to select specific values that you want to link to the coupon. You can add multiple segment types by clicking on ‘+Add another segment.’ **Please note:** The segment values will be ‘printed’ on the coupon once it's created: * If you delete a segment from settings, the segment value on the coupon will remain to maintain the state of the coupon that was live. * You can edit segment values on a coupon by editing the coupon itself. * If a segment is no longer supported, the coupon is unlikely to be applied as Storefront and Cart are required to identify the segment and use it when applying coupon. * If a segment is no longer supported, the coupon is unlikely to be applied as Storefront and Cart are required to identify the segment and use it when applying coupon. #### Excluding a Segment Segments can be excluded from coupons. To do this, first specify the included target audience, either "All" or a specific segment/value combination. Next, click on the **+Add exclusion list** link under the Exclude Segments subsection and add the details. * Segment name - Select the segment you wish to exclude from the coupon. * Segment values - The values will be populated here. Select specific values that you want to link to the coupon and exclude. You can add multiple segments to exclude by clicking on **+Add another segment**. ## Define Terms & Conditions (optional) The title and description fields provide space for the coupon’s terms and conditions, if any. The Add another condition feature allows you to expand the terms and conditions. Click the Add another tier button to add a tier and its corresponding Delete button to remove the tier. # Overview Offers is fabric's pricing and promotions engine with tools to manage your pricing, promotions, and coupons in one place. fabric Offers works in conjunction with Product Catalog to set up and manage Stock Keeping Unit (SKU) prices. Its wide range of coupon and promotion features let you design discounts ranging from single-use, customer-specific coupons to site-wide promotions. Offers must be connected to a front-end such as a web storefront or mobile app to display content and facilitate interaction. You must be an active user of fabric's Product Catalog service to use Offers. Product data must be available in Product Catalog to enable the creation of prices, price lists, promotions, and coupons within Offers. ## Role-Based Access Control (RBAC) fabric Copilot provides the ability to restrict the access of different users to information and actions available to them through roles. For more information and instructions on how to set up these controls for Offers, see [the RBAC](/v3/guides/offers/role-based-access-control) documentation. ## Accessing Offers in Copilot 1. Log in to your Copilot account. If you do not have an active Copilot account, [click here](https://live.copilot.fabric.inc/auth/v2/login) to sign up for a free trial, or [contact support](https://support.fabric.inc/hc/en-us/requests/new) for help. 2. On the left menu, click **Offers**, and then click one of the following options as required: * [Pricing](/v3/guides/offers/pricing): Sets and tracks the price of items in your web store. * [Promotions](/v3/guides/offers/promotions/overview): Automatically applies discounts at checkout. * [Coupons](/v3/guides/offers/coupons): Provides discount codes that customers can apply at checkout. * [Settings](/v3/guides/offers/settings): Sets and updates price lists. # Pricing Set and track the price of your products ## Introduction Offers works in conjunction with the products you have uploaded into your fabric Product Catalog account. Offers automatically connects to Product Catalog and displays all of the products you have uploaded. Pricing is the default menu in Offers. Selecting **Offers** from the left-hand navigation directs you to the Pricing menu. ### Add Bulk Price The **Add Bulk Price** button at the top-right allows you to upload a .CSV file with information including the cost, price, and clearance price. Clicking the button opens the Import .CSV file modal. It's highly recommended that you **download the template** as a guide. Not following the parameters in the guide will result in errors. Any .CSV file you upload must match the following headers and format: * SKU ID - the SKU ID of the item in Product Catalog * Cost - the cost of the item from the distributor * Price - the regular amount you charge customers to purchase the item * Clearance Price - the lowest amount you charge customers to purchase the item * Start Date - the date the price change begins. Dates must follow the YYYY-MM-DDTHH:MM:00.000Z format. For example, a price change scheduled for June 1, 2022 at noon would be 2022-06-01T12:00:00.000Z. * Price List Name - the name you assign to the price list You can check the status of your upload by clicking Import history. If there is an error in the file, Offers will flag the row with the error. When the upload is complete, you can download the .CSV file with the errors, correct them, and re-upload the file. Common errors you may encounter after you upload your version of the .CSV file include: * SKU ID not found: A SKU ID doesn't match the SKU of any product in your Product Catalog account. * Headers don't match the price template headers: The headers don't match the headers in the template. * Only numeric and decimal values are allowed in cost: There is a character in the cost column that isn’t a number or decimal. * Incorrect date format for Start/End Date (UTC). Use this date format YYYY-MM-DDTHH:MM:00.000Z: There are dates that don’t match the correct format. * No price data found: There are no prices listed in the price columns. * Start Date(UTC)/Price is required: Data is missing from one of these two required fields. * Clearance price/Price/Cost price should always be >= 0.00: All data in these columns must be greater than 0. * Cost can't be greater than its corresponding Price: The price (defined as the amount the merchant charges customers for the product) must be greater than the cost (the amount the merchant paid the supplier for the product). * Clearance price can't be greater than or equal to its corresponding price: The amount listed in the price column must be greater than the amount listed in the clearance price column. * The header for an additional attributes column isn't correctly formatted: Column names for additional attributes should follow this format: **additionalAttributes.exampleAttribute**. For example, an additional attributes column header could be additionalAttributes.customSkuTitle or additionalAttributes.customCategories. ### Manual Price Editing To set up the cost, price, or clearance price of an individual item, first select the price list it's on by clicking on the **Price List** dropdown. Then find and click on the individual item to set the following pricing details: * Cost - optional * Price - the regular amount you charge customers to purchase the item * Clearance Price - optional * Start date and time - the date the cost/price/clearance price begins. Dates must follow the YYYY-MM-DDTHH:MM:00.000Z format. For example, if a price began on June 1, 2022 at noon, you would enter 2022-06-01T12:00:00.000Z. * End date and time - same logic as Start date and time; defaults to December 31, 2099. Please note that Offers supports up to five decimal places for price, cost, and clearance price values. When finished, click **Add Price**. To bulk edit the cost and price attributes for all the different variations of a product (for example, all colors, prints, sizes, etc.) edit the parent product. To change only the cost and price attributes for a single product (for example, only the green jacket), find and edit the individual variant. ### View Modes Use the **List View** and **Tile View** buttons at the top-right of the page to change how the Pricing home page displays items. Tile View includes images but has less information, while List View has more information but no images. # null This topic covers the process of creating a buy-get promotion. ## Prerequisites * Ensure that you have **Admin** or **Editor** privileges for Offers. For more detailed information on these settings, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control-offers-roles). * Ensure that you have added at least one item in fabric Product Catalog. For more detailed information, see [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item). * Ensure that you have created at least one price list in fabric Offers. For more information, see [Pricing](/v3/guides/offers/pricing). * If you plan to create a promotion based on [Categories](/v3/guides/product-catalog/categories/categories) or [Collections](/v3/guides/product-catalog/collections/collections), ensure you have set up these features in Product Catalog and added items to them. ## Procedure 1. In the left menu, click **Offers > Promotions**.\ The **Promotions** page is displayed. 2. Click **Add Promotion**. The **Create Promotion** page is displayed. 3. In the **Select type** field, select **Buy X - Get Y**. 4. Click **Next**. The **Basic details** menu is displayed. 5. In the **Promotion name** field, enter a name for the promotion.
This name is for internal use only. fabric recommends giving it a unique, descriptive name that will help you differentiate this promotion from other promotions you may be running concurrently. For example, *Labor Day Dining Set Clearance*. 6. (Optional) In the **Notes** field, enter any internal-facing details that might be relevant to this promotion. 7. In the **Start date** and **Start time** fields, enter the date and time the promotion begins.
The start date and time must be in the future. 8. In the **End date** and **End time** fields, enter the date and time the promotion ends.
The end date and time must be after the start date and time. 9. In the **Price lists** field, select one or more price lists.
The promotion will only apply to eligible SKUs on the price lists you select. If selecting multiple price lists, they must all use the same currency. For more information, see [Price lists](/v3/guides/offers/promotions/overview#price-lists). 10. In the **Apply promotion to** field, select a price type.
For more information on price types, see [Price lists](/v3/guides/offers/promotions/overview#price-lists). 11. Click **Next**.
The **Conditions** menu is displayed. 12. To define the conditions that must be met to receive the promotional offer, do one of the following: * Select **Buys min. qty of SKUs**. * In the **A minimum of** field, enter a number of SKUs. * Select **SPends a min. amount**. * In the **A minimum amount of** field, enter a dollar amount. 13. To select the items that are eligible for the promotion, in the **From** field, make one or more selections.
For more information, see [Product eligibility definitions for promotions](/v3/guides/offers/promotions/overview#product-eligibility-definitions-for-promotions). 14. Click the **Browse** button.
The **Browse SKUs customers must buy** window is displayed. 15. Select the SKUs that are eligible for the promotion and click **Add**.
The SKUs you selected are added to the list of SKUs that are eligible for the promotion. 16. If you selected multiple conditions in step 12, select the **AND** or **OR** operator to choose how your selections interact with each other. For more information on these settings, see [Product eligibility definitions for promotions](/v3/guides/offers/promotions/overview#product-eligibility-definitions-for-promotions). 17. (Optional) To exclude items from the promotion, in the **Exclude** field, select one or more options and configure as required. For more information on excluding products, see [Excluding products](/v3/guides/offers/promotions/overview#product-exclusions-from-promotions). 18. To set up the type of discount, in the **Customer gets** section, take one of the following steps.
For more information on the **Customer gets** section, see [Defining discounts and how they're applied](/v3/guides/offers/promotions/overview#defining-discounts-and-how-they-re-applied). * To apply the discount to individual SKUs, in the **Discount on** field, select **SKU**. a. In the **Discount type** field, select a discount type. b. (Optional) To allow the promotion to have variable discount amounts to prevent over-discounting when promotions stack, click **Dynamic discount** and do the following: * In the **Additional discount (If discount already exists)** field, enter a value. c. In the **Discount value** field, enter a value. * To apply the discount to the cost of shipping, in the **Discount on** field, select **Shipping** and do the following: a. In the **Discount type** field, select a discount type.\ b. In the **Shipping type** field, choose one or more shipping methods the discount applies to. c. In the **Applicable on** field, select **Entire Cart** or **Entire Shipment**. d. (Optional) To allow the promotion to have variable discount amounts to prevent over-discounting when promotions stack, click **Dynamic discount** and do the following: * In the **Additional discount (If discount already exists)** field, enter a value. e. In the **Discount value** field, enter a value. * To apply the discount to the entire cart, in the **Discount on** field, select **Cart** and do the following: a. In the **Discount type** field, select a discount type.\ b. In the **Discount value** field, enter a value.
19. (Optional) To add another discount, select **Add Another Discount** and set up the discount as required. 20. Click **Next**.
The **Stacking & additional settings** menu is displayed. 21. To set how this promotion can be combined with or restricted by other promotions you are running, in the **Set promotion stacking** field, select a stacking type, and, if applicable, set the priority.
For more information on promotion stacking and priority, see [Stacking & additional settings](/v3/guides/offers/promotions/overview#stacking-and-additional-settings). 22. (Optional) To create tailored messaging about the promotion on various pages of your commerce site, click the arrow icon next to **Promotion messaging**. * In the **Choose where to add messaging** field, select one or more places to add the messaging. * In the **Locale set 1** field, select the locales where this messaging will appear. * Enter a title for the message. * Enter the message body. For more information on promotion messaging, see [Promotion messaging](/v3/guides/offers/promotions/overview#promotion-messaging). 23. (Optional) To add interal-facing tags to help you identify or classify the promotion, click the arrow icon next to **Promotion attributes** and do the following: * In the **Attribute name** field, select a name. * In the **Attribute values** field, select one or more values. Attribute names and attribute values are user-generated and can be created by visiting **Offers > Settings > Attributes** in Copilot. For more information, see [Creating an attribute](/v3/guides/offers/settings#attributes). 24. (Optional) To target the promotion to specific customer segments, click the arrow icon next to **Customer segments** and do the following: * Select **Segment**. * In the **Segment name** field, select a name. * In the **Segment values** field, select one or more values. * (Optional) To exclude segments, select **Exclude Segment**. * In the **Segment name** field, select a name to exclude. * In the **Segment values** field, select one or more values to exclude. Segment names and segment values are user-generated and can be created by visiting **Offers > Settings > Customer segments** in Copilot. For more information, see [Customer segments](/v3/guides/offers/settings#customer-segments). 25. (Optional) To set the maximum number of times the promotion can be used, click the arrow icon next to **Usage limits** and enter a number. 26. Click **Next**.
The **Review & create** menu is displayed. 27. Verify that all promotion details are correct.
Use the **Back** button to move to previous steps in the process. 28. Click **Create**. The promotion is created with the settings you specified. ## Related Topics * [Promotions Overview](/v3/guides/offers/promotions/overview) * [Creating a SKU Promotion](/v3/guides/offers/promotions/creating-a-sku-promotion) * [Creating a SKU Quantity Promotion](/v3/guides/offers/promotions/creating-a-sku-quantity-promotion) # null This topic covers the process of creating a SKU promotion. ## Prerequisites * Ensure that you have **Admin** or **Editor** privileges for Offers. For more detailed information on these settings, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control-offers-roles). * Ensure that you have added at least one item in fabric Product Catalog. For more detailed information, see [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item). * Ensure that you have created at least one price list in fabric Offers. For more information, see [Pricing](/v3/guides/offers/pricing). * If you plan to create a promotion based on [Categories](/v3/guides/product-catalog/categories/categories) or [Collections](/v3/guides/product-catalog/collections/collections), ensure you have set up these features in Product Catalog and added items to them. ## Procedure 1. In the left menu, click **Offers > Promotions**.\ The **Promotions** page is displayed. 2. Click **Add Promotion**. The **Create Promotion** page is displayed. 3. In the **Select type** field, select **SKU Promotion**. 4. Click **Next**. The **Basic details** menu is displayed. 5. In the **Promotion name** field, enter a name for the promotion.
This name is for internal use only. fabric recommends giving it a unique, descriptive name that will help you differentiate this promotion from other promotions you may be running concurrently. For example, *Labor Day Dining Set Clearance*. 6. (Optional) In the **Notes** field, enter any internal-facing details that might be relevant to this promotion. 7. In the **Start date** and **Start time** fields, enter the date and time the promotion begins.
The start date and time must be in the future. 8. In the **End date** and **End time** fields, enter the date and time the promotion ends.
The end date and time must be after the start date and time. 9. In the **Price lists** field, select one or more price lists.
The promotion will only apply to eligible SKUs on the price lists you select. If selecting multiple price lists, they must all use the same currency. For more information, see [Price lists](/v3/guides/offers/promotions/overview#price-lists). 10. In the **Apply promotion to** field, select a price type.
For more information on price types, see [Price lists](/v3/guides/offers/promotions/overview#price-lists). 11. Click **Next**.
The **Conditions** menu is displayed. 12. To select the items that are eligible for the promotion, in the **From** field, make one or more selections.
For more information, see [Product eligibility definitions for promotions](/v3/guides/offers/promotions/overview#product-eligibility-definitions-for-promotions). 13. Click the **Browse** button.
The **Browse SKUs customers must buy** window is displayed. 14. Select the SKUs that are eligible for the promotion and click **Add**.
The SKUs you selected are added to the list of SKUs that are eligible for the promotion. 15. If you selected multiple conditions in step 12, select the **AND** or **OR** operator to choose how your selections interact with each other. For more information on these settings, see [Product eligibility definitions for promotions](/v3/guides/offers/promotions/overview#product-eligibility-definitions-for-promotions). 16. (Optional) To exclude items from the promotion, in the **Exclude** field, select one or more options and configure as required. For more information on excluding products, see [Excluding products](/v3/guides/offers/promotions/overview#product-exclusions-from-promotions). 17. To set up the type of discount, in the **Customer gets** section, take one of the following steps.
For more information on the **Customer gets** section, see [Defining discounts and how they're applied](/v3/guides/offers/promotions/overview#defining-discounts-and-how-they-re-applied). * To apply the discount to individual SKUs, in the **Discount on** field, select **SKU**. a. In the **Discount type** field, select a discount type. b. (Optional) To allow the promotion to have variable discount amounts to prevent over-discounting when promotions stack, click **Dynamic discount** and do the following: * In the **Additional discount (If discount already exists)** field, enter a value. c. In the **Discount value** field, enter a value. * To apply the discount to the cost of shipping, in the **Discount on** field, select **Shipping** and do the following: a. In the **Discount type** field, select a discount type.\ b. In the **Shipping type** field, choose one or more shipping methods the discount applies to. c. In the **Applicable on** field, select **Entire Cart** or **Entire Shipment**. d. (Optional) To allow the promotion to have variable discount amounts to prevent over-discounting when promotions stack, click **Dynamic discount** and do the following: * In the **Additional discount (If discount already exists)** field, enter a value. e. In the **Discount value** field, enter a value. * To apply the discount to the entire cart, in the **Discount on** field, select **Cart** and do the following: a. In the **Discount type** field, select a discount type.\ b. In the **Discount value** field, enter a value.
18. (Optional) To add another discount, select **Add Another Discount** and set up the discount as required. 19. Click **Next**.
The **Stacking & additional settings** menu is displayed. 20. To set how this promotion can be combined with or restricted by other promotions you are running, in the **Set promotion stacking** field, select a stacking type, and, if applicable, set the priority.
For more information on promotion stacking and priority, see [Stacking and additional settings](/v3/guides/offers/promotions/overview#stacking-and-additional-settings). 21. (Optional) To create tailored messaging about the promotion on various pages of your commerce site, click the arrow icon next to **Promotion messaging**. * In the **Choose where to add messaging** field, select one or more places to add the messaging. * In the **Locale set 1** field, select the locales where this messaging will appear. * Enter a title for the message. * Enter the message body. For more information on promotion messaging, see [Promotion messaging](/v3/guides/offers/promotions/overview#promotion-messaging). 22. (Optional) To add interal-facing tags to help you identify or classify the promotion, click the arrow icon next to **Promotion attributes** and do the following: * In the **Attribute name** field, select a name. * In the **Attribute values** field, select one or more values. Attribute names and attribute values are user-generated and can be created by visiting **Offers > Settings > Attributes** in Copilot. For more information, see [Creating an attribute](/v3/guides/offers/settings#attributes). 23. (Optional) To target the promotion to specific customer segments, click the arrow icon next to **Customer segments** and do the following: * Select **Segment**. * In the **Segment name** field, select a name. * In the **Segment values** field, select one or more values. * (Optional) To exclude segments, select **Exclude Segment**. * In the **Segment name** field, select a name to exclude. * In the **Segment values** field, select one or more values to exclude. Segment names and segment values are user-generated and can be created by visiting **Offers > Settings > Customer segments** in Copilot. For more information, see [Customer segments](/v3/guides/offers/settings#customer-segments). 24. (Optional) To set the maximum number of times the promotion can be used, click the arrow icon next to **Usage limits** and enter a number. 25. Click **Next**.
The **Review & create** menu is displayed. 26. Verify that all promotion details are correct.
Use the **Back** button to move to previous steps in the process. 27. Click **Create**. The promotion is created with the settings you specified. ## Related Topics * [Promotions Overview](/v3/guides/offers/promotions/overview) * [Creating a SKU Quantity Promotion](/v3/guides/offers/promotions/creating-a-sku-quantity-promotion) * [Creating a Buy Get Promotion](/v3/guides/offers/promotions/creating-a-buy-get-promotion) # null This topic covers the process of creating a SKU quantity promotion. ## Prerequisites * Ensure that you have **Admin** or **Editor** privileges for Offers. For more detailed information on these settings, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control-offers-roles). * Ensure that you have added at least one item in fabric Product Catalog. For more detailed information, see [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item). * Ensure that you have created at least one price list in fabric Offers. For more information, see [Pricing](/v3/guides/offers/pricing). * If you plan to create a promotion based on [Categories](/v3/guides/product-catalog/categories/categories) or [Collections](/v3/guides/product-catalog/collections/collections), ensure you have set up these features in Product Catalog and added items to them. ## Procedure 1. In the left menu, click **Offers > Promotions**.\ The **Promotions** page is displayed. 2. Click **Add Promotion**. The **Create Promotion** page is displayed. 3. In the **Select type** field, select **SKU Quantity**. 4. Click **Next**. The **Basic details** menu is displayed. 5. In the **Promotion name** field, enter a name for the promotion.
This name is for internal use only. fabric recommends giving it a unique, descriptive name that will help you differentiate this promotion from other promotions you may be running concurrently. For example, *Labor Day Dining Set Clearance*. 6. (Optional) In the **Notes** field, enter any internal-facing details that might be relevant to this promotion. 7. In the **Start date** and **Start time** fields, enter the date and time the promotion begins.
The start date and time must be in the future. 8. In the **End date** and **End time** fields, enter the date and time the promotion ends.
The end date and time must be after the start date and time. 9. In the **Price lists** field, select one or more price lists.
The promotion will only apply to eligible SKUs on the price lists you select. If selecting multiple price lists, they must all use the same currency. For more information, see [Price lists](/v3/guides/offers/promotions/overview#price-lists). 10. In the **Apply promotion to** field, select a price type.
For more information on price types, see [Price lists](/v3/guides/offers/promotions/overview#price-lists). 11. Click **Next**.
The **Conditions** menu is displayed. 12. To select the items that are eligible for the promotion, in the **From** field, make one or more selections.
For more information, see [Product eligibility definitions for promotions](/v3/guides/offers/promotions/overview#product-eligibility-definitions-for-promotions). 13. Click the **Browse** button.
The **Browse SKUs customers must buy** window is displayed. 14. Select the SKUs that are eligible for the promotion and click **Add**.
The SKUs you selected are added to the list of SKUs that are eligible for the promotion. 15. If you selected multiple conditions in step 12, select the **AND** or **OR** operator to choose how your selections interact with each other. For more information on these settings, see [Product eligibility definitions for promotions](/v3/guides/offers/promotions/overview#product-eligibility-definitions-for-promotions). 16. (Optional) To exclude items from the promotion, in the **Exclude** field, select one or more options and configure as required. For more information on excluding products, see [Excluding products](/v3/guides/offers/promotions/overview#product-exclusions-from-promotions). 17. To set the minimum quantity of SKUs the customer must purchase in order to be eligible for the promotion, in the **Buy min quantity of SKUs field**, enter a value. 18. To set up the type of discount, in the **Customer gets** section, take one of the following steps.
For more information on the **Customer gets** section, see [Defining discounts and how they're applied](/v3/guides/offers/promotions/overview#defining-discounts-and-how-they-re-applied). * To apply the discount to individual SKUs, in the **Discount on** field, select **SKU**. a. In the **Discount type** field, select a discount type. b. (Optional) To allow the promotion to have variable discount amounts to prevent over-discounting when promotions stack, click **Dynamic discount** and do the following: * In the **Additional discount (If discount already exists)** field, enter a value. c. In the **Discount value** field, enter a value. * To apply the discount to the cost of shipping, in the **Discount on** field, select **Shipping** and do the following: a. In the **Discount type** field, select a discount type.\ b. In the **Shipping type** field, choose one or more shipping methods the discount applies to. c. In the **Applicable on** field, select **Entire Cart** or **Entire Shipment**. d. (Optional) To allow the promotion to have variable discount amounts to prevent over-discounting when promotions stack, click **Dynamic discount** and do the following: * In the **Additional discount (If discount already exists)** field, enter a value. e. In the **Discount value** field, enter a value. * To apply the discount to the entire cart, in the **Discount on** field, select **Cart** and do the following: a. In the **Discount type** field, select a discount type.\ b. In the **Discount value** field, enter a value.
19. (Optional) To add another discount, select **Add Another Discount** and set up the discount as required. 20. Click **Next**.
The **Stacking & additional settings** menu is displayed. 21. To set how this promotion can be combined with or restricted by other promotions you are running, in the **Set promotion stacking** field, select a stacking type, and, if applicable, set the priority.
For more information on promotion stacking and priority, see [Stacking and additional settings](/v3/guides/offers/promotions/overview#stacking-and-additional-settings). 22. (Optional) To create tailored messaging about the promotion on various pages of your commerce site, click the arrow icon next to **Promotion messaging**. * In the **Choose where to add messaging** field, select one or more places to add the messaging. * In the **Locale set 1** field, select the locales where this messaging will appear. * Enter a title for the message. * Enter the message body. For more information on promotion messaging, see [Promotion messaging](/v3/guides/offers/promotions/overview#promotion-messaging). 23. (Optional) To add interal-facing tags to help you identify or classify the promotion, click the arrow icon next to **Promotion attributes** and do the following: * In the **Attribute name** field, select a name. * In the **Attribute values** field, select one or more values. Attribute names and attribute values are user-generated and can be created by visiting **Offers > Settings > Attributes** in Copilot. For more information, see [Creating an attribute](/v3/guides/offers/settings#attributes). 24. (Optional) To target the promotion to specific customer segments, click the arrow icon next to **Customer segments** and do the following: * Select **Segment**. * In the **Segment name** field, select a name. * In the **Segment values** field, select one or more values. * (Optional) To exclude segments, select **Exclude Segment**. * In the **Segment name** field, select a name to exclude. * In the **Segment values** field, select one or more values to exclude. Segment names and segment values are user-generated and can be created by visiting **Offers > Settings > Customer segments** in Copilot. For more information, see [Customer segments](/v3/guides/offers/settings#customer-segments). 25. (Optional) To set the maximum number of times the promotion can be used, click the arrow icon next to **Usage limits** and enter a number. 26. Click **Next**.
The **Review & create** menu is displayed. 27. Verify that all promotion details are correct.
Use the **Back** button to move to previous steps in the process. 28. Click **Create**. The promotion is created with the settings you specified. ## Related Topics * [Promotions Overview](/v3/guides/offers/promotions/overview) * [Creating a SKU Promotion](/v3/guides/offers/promotions/creating-a-sku-promotion) * [Creating a Buy Get Promotion](/v3/guides/offers/promotions/creating-a-buy-get-promotion) # Overview With the Promotions feature in fabric Offers, you can create targeted discounts, incentives, and pricing rules tailored to specific products, categories, collections, product attributes, and customer segments. You can also configure promotion conditions, set exclusions, and define how multiple promotions interact through stacking rules. The key elements of a promotion include: | **Elements** | **Description** | | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | Eligible products | The SKUs, categories, and collections that qualify for the promotion. | | Conditions | Criteria that define the requirements to activate the promotion, such as a minimum purchase quantity or specific product features. | | Discount type | Formats of the discount, including percentage reductions, fixed amount discounts, or free shipping. | | Promotion stacking | Rules determining how promotions combine, whether by allowing multiple discounts or making them exclusive. | | Dynamic discounting | Controls the way discounts are applied when multiple promotions are eligible, preventing over-discounting by limiting how discounts stack. | | Promotion messaging | Customizable promotional messages visible on product pages, in the customer's cart, or at checkout, tailored for specific customer segments. | Promotions are applied automatically to a customer's order once the items in their cart meet the criteria you specify. Unlike [Coupons](/v3/guides/offers/coupons), customers don't need to provide a code to receive the discount. ## Types of Promotions fabric supports three types of promotions: * **SKU Promotion**: A discount targeting specific SKUs, where individual products are selected for eligibility, and a discount type is assigned. This promotion type is ideal for sales on specific products, clearing inventory, or spotlighting new arrivals. For example, a *Spring clearance* could offer a percentage discount on products from the previous year's collection. * **SKU Quantity Promotion**: A discount applied when a customer buys a specific quantity of a particular SKU. This promotion is often used to clear inventory or promote high-margin products. For example, you can create a *Buy 3, get 15% off* promotion to encourage customers to purchase in bulk and increase average order value. * **Buy X Get Y Promotion**: A free or discounted product,Y, is offered when customers purchase a designated product or quantity of X. This promotion is ideal for bundling complementary products, driving larger transactions, and increasing cart size. For example, you can create *Buy one, get one free* or *Buy two, get 50% off the third item* to offer an incentive when the customer's cart meets the minimum purchase threshold. ## Promotion Setup Setting up a promotion includes configuring key elements such as price lists, product eligibility conditions, discount types, exclusions, and how multiple promotions interact, as described in the following workflow: 1. Choose a [price list](/v3/guides/offers/promotions/overview#price-lists) to establish the baseline pricing, ensuring that discounts apply correctly depending on whether items are full-price or already discounted. 2. Set the [conditions](/v3/guides/offers/promotions/overview#product-eligibility-definitions-for-promotions) that determine which products qualify for the promotion. This could include all products, specific SKUs, categories, or product attributes. 3. Apply [exclusions](/v3/guides/offers/promotions/overview#product-exclusions-from-promotions) to refine the promotion by targeting specific products or excluding certain items from the offer. 4. Specify the type of [discount](/v3/guides/offers/promotions/overview#defining-discounts-and-how-they-re-applied) the customer receives. For example, percentage off, amount off, or free shipping, and decide if it applies to individual items, shipping costs, or the entire cart. 5. Set up [stacking](/v3/guides/offers/promotions/overview#stacking-and-additional-settings) to apply multiple promotions simultaneously. Define how they interact by assigning priorities or making them exclusive. 6. Configure [promotion messaging](/v3/guides/offers/promotions/overview#promotion-messaging) to determine where details appear for customers, such as product pages, the cart, or the checkout. Customize messaging based on customer groups or regions. ### Price lists Price lists determine how discounts are applied to products. By selecting a price list, you define whether the discount applies to full-price items, sale items, or both. This ensures that promotional pricing is applied as desired, without over-discounting. The following table outlines the different types of price lists and how they determine the application of discounts during a promotion: | **Price list** | **Description** | | ---------------------- | ---------------------------------------------------------------------------------------- | | Only base price | The discount applies only if the item isn't already on sale. | | Only sale price | The discount applies only if the item is on sale. | | Both sale & base price | The discount applies regardless of whether the item is at base price or already on sale. | For more information, see [the pricing guide](/v3/guides/offers/pricing). ### Product eligibility definitions for promotions The **Customer buys** section allows you to define conditions that specify which products are eligible for the promotion. Setting these conditions ensures that the promotion is applied only to products that meet your defined criteria. The following table describes the options to define product eligibility based on the price list or lists you selected: | **Condition** | **Description** | | ------------------ | ---------------------------------------------------------------------------------------------- | | All SKUs | The promotion applies to all products. | | Specific SKUs | The promotion applies to specific products you select. | | Categories | The promotion applies to one or more categories of products that you select. | | Collections | The promotion applies to one or more collections of products that you select. | | Product Attributes | The promotion applies to products based on specific attributes, such as color, size, or brand. | You can combine multiple conditions using the **AND** or **OR** operator to create a more targeted promotion. The **AND** condition requires all conditions to be met, while the **OR** condition allows the promotion to apply if any one condition is satisfied. For example, if you select both the *Category: Apparel* and *Color: Red*, with the **AND** operator, only red apparel qualifies for the promotion. On the other hand, if you use the **OR** operator, any items in the category *apparel* will qualify for the promotion. Combining conditions allows you to ensure that the right products are included based on multiple criteria. For example, you can include all items in the *Apparel* category, but limit the promotion to products with the attribute *Color: Red* or *Size: Large*. This allows you to ensure that the right products are included based on multiple conditions. #### Product exclusions from promotions After selecting your initial group of products based on SKUs, categories, collections, or product attributes, you can refine your promotion by excluding specific products. The **Exclude** field allows you to remove certain items from the promotion, even if they meet the initial promotion criteria. For example, you might run a sale on all products in the *Apparel* category, but exclude premium brands or limited-edition items. Using the exclude field, you can remove these products by specifying their SKUs, categories, collections, or attributes. You can exclude products in the following ways: * SKUs: Specify the SKUs of individual products that you don’t want to include in the promotion. * Category: Specify the categories that you don't want to include in the promotion. * Collection: Specify the collections that you don't want to include in the promotion. * Attributes: Specify the products by their attributes that you don't want to include in the promotion. By using exclusions, you gain greater precision over which products are part of a promotion, avoiding unintended discounts on products that don’t align with your strategy. ### Defining discounts and how they're applied Promotions offer various types of rewards, such as a percentage off, a fixed amount off, or free shipping, to customers when the promotion criteria are met. Different types of discounts can be applied to various aspects of a promotion. Here’s an overview of the most common discount applications: | **Discount on** | **Description** | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | SKU | The discount applies to the specific SKU or SKUs you specify. Ideal for promotions highlighting specific products or for clearing inventory. | | Shipping | The discount applies to shipping. | | Cart | The discount applies to the total value of the customer's cart. Cart discounts incentivize customers to add more items to their carts to qualify for the discount. | The discount type defines how the discount is applied to the promotion. A promotion can support up to three different discounts. For example, you can create a promotion that gives shoppers 10 percent off and then create a second discount that offers free shipping. There are several discount types available, each with their own function: | Discount type | Description | | -------------- | ------------------------------------------------------------- | | Percentage off | Reduces the cost of eligible items by a specified percentage. | | Amount off | Reduces the cost of eligible items by a specified amount. | | Fixed price | Sets a specific price for eligible items. | | Free | Only available when the discount applies to shipping. | When creating a promotion that applies to the shipping method, you must select a fulfillment rule set that you configured in fabric Orders. For more information, see the [Creating a fulfillment rule set guide](/v3/guides/orders/order-fulfillment-logic/create-a-new-rule-set-ui). #### Shipping discounts Shipping discounts can be applied with one of the following options: * Entire cart: Each item in a cart must qualify for the promotion to apply regardless of ship-to locations. * Entire shipment: Only the items that share the same ship-to locations qualify for the promotion. For example, in the event of multi-fulfillment orders, when part of the order ships to home and part is picked up in-store, only items that qualify within the same ship-to qualify for the promotion. You can use multiple shipping methods, such as home delivery, in-store pickup, or split shipments. However, only a single discount type can be applied per shipping method. This means if one part of the order is shipped and another part is picked up, you can apply a shipping discount to one method at a time. ### Dynamic discounting Dynamic discounting allows promotions to have variable discount amounts, preventing over-discounting when multiple promotions stack. By enabling dynamic discounting, you can set limits on the discount percentage or amount applied, ensuring that the total discount remains controlled even when promotions overlap. For example, if one promotion discounts an item or cart by 40%, you can limit a subsequent discount to 10%. Dynamic Discounts aren't eligible for buy/get or spend/get promotions. ## Stacking and Additional Settings Promotion stacking refers to the ability to combine multiple promotions or discounts on the same cart. When promotion stacking is enabled, a customer can apply more than one discount to their cart, increasing the overall savings. For example, a customer could receive both a 10% discount for a storewide sale and an additional \$5 off for a specific product promotion. Promotion stacking is controlled by assigning a priority to each promotion. Promotions with a lower priority number are applied first, and subsequent promotions are stacked on top, applying their discounts to the already-discounted price. This allows for more control over how multiple promotions interact, ensuring that promotions with higher priority are considered before others. Promotions are stacked using the following options: * **Stackable**: The promotion can stack with any other discount, except for those set to exclusive. The discounts are applied on top of each other, increasing the total discount amount if the discounts apply to the same item. Stackable promotions require a priority, which defines the order in which stackable promotions are evaluated. Starting with priority 1, promotions are evaluated and applied in ascending order. Priority 1 uses the price on the price list to apply the discounts. Priority 2 promotions are evaluated with their applicable discounts stacked on top of the discounted price from priority 1 promotions. Evaluation continues until all stackable priorities have been evaluated and applied. * **Exclusive**: The promotion can't be combined with other discounts, except Universal. Only one non-stackable promotion is applied to the cart, even if other items are eligible. This is considered globally exclusive. In these cases, Offers applies the promotions with the largest monetary discount. If two promotions have the same monetary discount amount, the most recently published promotions are applied. * **Type exclusive**: This promotion can't be combined with other promotions of the same discount type, such as SKU, cart, or shipping. When multiple promotions of the same type are available, only the one with the highest level or best discount is applied to the customer’s order. This ensures that conflicting promotions don't overlap, preventing excessive discounts. * **Universal**: The promotion is always evaluated and applied. These discounts are applied last and can stack on any other promotion regardless of its stacking setting. ### Promotion messaging Promotion messaging allows you to create custom messages that notify customers about active promotions. The message can appear on any combination of the following pages: The message can appear on Product Detail Page (PDP), Product List Page (PLP), customer's cart, and the checkout page, or any combination of these. Additionally, you can target specific customer groups by choosing the locale, ensuring the message is displayed in the appropriate language or region. This feature helps ensure that your promotional offers are clearly communicated to the right audience. ### Promotion attributes Promotion attributes are internal-facing tags to categorize and classify promotions for use in reporting and analytics. For example, you can tag promotions with attributes such as *Seasonal Sales* and further define them with values such as *Summer* or *Fall*. This classification allows you to query and report on promotions based on the attributes you’ve assigned, making it easier to measure the performance of targeted campaigns. For more information on creating these attributes, see the [Attributes guide](/v3/guides/offers/settings#attributes). ### Customer segments You can define which customer segments are eligible for the promotion. Targeting customer segments allows you to apply discounts or special offers to specific groups of customers. For more information on customer segments, see the [customer segments](https://developer.fabric.inc/v3/guides/offers/settings#customer-segments). ## Related Topics * [Creating a SKU Promotion](/v3/guides/offers/promotions/creating-a-sku-promotion) * [Creating a SKU Quantity Promotion](/v3/guides/offers/promotions/creating-a-sku-quantity-promotion) * [Creating a Buy Get Promotion](/v3/guides/offers/promotions/creating-a-buy-get-promotion) # Settings ## Introduction To manage price lists, global exclusions, and customer segments, click on the **Settings** menu under Offers in the left-hand navigation. ### Price Lists Price lists is the default view when accessing the Offers Settings menu. For a new price list, enter a name under Price List Name and then click the **Add price list** button. The new price list you create will be listed along with other existing prices lists under Manage Price List. Use the buttons at the left to choose which price list is set as the Default List. The Default Price List serves as the master price list in cases of conflicting prices. For example, if you have a single SKU that appears at different prices on five different price lists, the SKU’s price as it appears in the Default Price List will be shown. Sort price lists by clicking on the arrow next to Price List ID. To change a Price List Name, click on its corresponding pencil icon and enter a new name. Click the checkmark to save or the X to cancel. ### Global exclusions Global Exclusions allows you to protect SKUs from being discounted by active promotions. To set up Global exclusions, select **Global exclusions** from the Settings menu and click the **Create exclusion list** button. * Give the list a title * Set the start and end dates/times. This sets the duration that the SKUs in the list will be protected from discounts. * Set whether you want the SKU price, Shipping price, or both to be protected * SKU price - This protects the SKU’s price from being discounted * Shipping price - This will ensure that the shipping price is applied during checkout for this SKU. * Select the SKUs to be excluded from discounts * Bulk upload - Use a CSV file to import SKUs * Browse SKUs - Browse SKUs that are in your Product Catalog and select * Click **Save** To edit a Global exclusion list, mouse over the list and click on the edit icon that appears. Make your changes, and then click save. To delete a Global exclusion list, mouse over the list, click on the delete icon that appears, and then click **confirm** in the dialog box. ### Customer segments Offers allows you to target promotions at specific groups of customers. You will need to first segment your customers through one of the following options: * Use of a third-party segmentation tool: There are many third-party tools available that will group your customers by their traits and behaviors. Once grouped, they will be given a group identifier that can be stored with the customer’s profile. * Customization of your online store: You can use information from the browser to do simple segmentation by the customer's device type and location. * Customer tagging: You can store custom traits to customer profiles that can then be added to our segmentation configurations. Once customers are in a segment, a customer on your online store will need to have their segment identified and submitted when checking for eligible promotions from Offers. Their segment can be identified using a third-party segmentation tool plugin, the browser, or by checking the customer's profile if they're logged in. Their segment ID will need to be added to the user Profile section of the promotion evaluate request. **Creating a Customer Segment** To set up Customer segments, select **Customer segments** from the Settings menu and click the **Create Segment** button. * Segment name - Enter a name for your segment type. * Segment values - You can create multiple options within a segment type. Enter a value and press enter to save it. **Linking a Customer Segment to a Promotion** Once you have created a customer segment in Offers Settings, take the steps in the [Offers Promotions document](/v3/guides/offers/promotions) to link the customer segment to a promotion. ### Attributes With the attributes feature, you can create internal-facing tags to help you identify or classify promotions and coupons. For example, business intelligence or reporting tools can use the attribute and value you set up for querying purposes. Two attributes can share the same name, such as seasonal Sales, with values such as summer or fall to differentiate them. **Creating an attribute** 1. In the left menu, click **Offers > Settings**. The **Settings** page is displayed. 2. Select the **Attributes** tab. The **Create attribute** tab is displayed. 3. In the **Attribute name** field, enter a name for the attribute. 4. In the **Attribute values** field, enter an attribute value. 5. Click **Create Attribute**. The attribute is created. You can assign the attribute when creating or editing a promotion or coupon. # Activity Log The **Activity Log** tab displays a history of all your Order import and export events. By default, the most recent activities are displayed. To find a specific file, in the search bar, enter the **File ID** and press Enter. ## Activity Log Table | Field | Description | | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **File Id** | A unique system-generated file ID that's assigned upon starting the import or export process. | | **Type** | The file type, such as **Import** or **Export**. | | **Module** | Indicates which of the four Order modules the file relates to. Possible values are **Allocation**, **Invoice**, **Shipment**, and **Order**. | | **Status** | The status of the activity, such as **Finished** or **System error**. | | **Created on** | The date and time the file was created. | | **Message** | A message displaying additional details for the import or export. Click the download icon to download a .zip file containing the import or export CSV and a separate logs file for debugging. | # Creating a Rule Set The following guide contains examples and field descriptions for the Order Fulfillment Logic (OFL) user interface. ## Basic Information | Field name | Description | Values | | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | | **Fulfillment Rule Set Name (Required)** | The name of the rule set. This name is displayed in the table on the Fulfillment Rules page. | String | | **Description (optional)** | A description of the rule set. It's best practice to include a detailed description describing the purpose of the rule set for anyone viewing the rule set. If this is a cloned rule set with minor differences, describe the differences between each rule set. | String | ### Field descriptions **Order Level Rule Groups** are run in order from the top down. If one of the rule conditions are met, this rule is executed and subsequent rules aren't run. If you wanted to move a rule up, you can drag and drop rules to change their order. Item level rules runs in parallel and execute all rules even if a previous rule condition is met (including order level rules). This means item level rules override order level rules for the specified item. ### Condition fields When creating any new rule, a condition is required. The condition is used to determine if a rule should be executed. A condition is used as the prerequisite to take an action. Each condition you create executes from the top down. This means the order of your defined conditions matter. If you wanted to move a condition up, you can drag and drop conditions to change their order. The following table outlines the available fields and their values for conditions. | Field name | Description | Values | | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Entity** | Entity is used to determine the attribute schema used to fulfill the condition. For **Order Level Rule Groups**, the Order schema is set as the default. For **Item Level Rule Groups**, the Item schema is set as the default. The default values can't be changed. | Order, Item | | **Attribute** | The dropdown for attribute is populated based on the Order or Item attribute type. | Default values for Order are `type`, `subtype`, `orderId`, `channelId`, and `referenceId`. The default values for Item are `attributes`, `type`, `backOrdered`, `lineId`, `itemId`, `sku`. Additional values are available based on your Order or Item schema. For example, shippingInfo.address.city, price.itemUnitPrice. | | **Operator** | A list of supported expressions. Each expression can be used to filter in different ways. Only supported expressions are displayed for an attribute. | • Equals

• Doesn't equal

• Contains

• Doesn't contain

• Less Than

• Less Than or Equal To

• Greater Than

• Greater Than or Equal To | | **Value** | The value of an attribute. For example, an online order can have the attribute *type* with a value equal to *STH* (Ship to home). This value can also be *SDD* (Same day delivery). Multiple values are supported. | String | ### Action fields Each action you create executes from the top down. This means the order of your defined actions matters. If you wanted to move an action up, you can drag and drop actions to change their order. There are 3 different **Fulfillment Rule Type** options. These rule types determine which additional action field options are made available. * **Provided location:** Buy online, pick up in store (BOPIS). The order itself has the location and it doesn't need to be provided. * **Static Location:** Use this method if you want to predefine where all your orders will be fulfilled from when meeting a rule/condition. This can be any location that you provide along with the associated location number. For example, as a retailer you can choose to ship all web ship orders from the `DC 975` location. Additionally, you can use this method for item level rules to assign fulfillment locations for particular SKUs. For example, you can provide a SKU that starts with 1122 and set this SKUs specific fulfillment location. * **Location Prioritization** Location prioritization allows for multiple inventory networks and additional features such as geo-location, split shipments, and item exclusions. This method is best used for retailers who have a lot of store presence or multiple warehouses in a particular region. It also provides the most flexibility if you want to split shipments from different locations for a single order. Once an **Fulfillment Rule Type** is selected, depending on the selected type, different fields outlined in the table below are made available. | Field name | Description | Value | | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | **Location Numbers** | Used to configure the distribution location number. | String | | **Allows Partial Fulfillment** | Set this value to Yes if you want to allow the order to be partially filled if one or more of the SKU’s aren't available at a particular location. For example, if an order had 5 table lamps and 1 chair but you did not have the chair available, the 5 table lamps are shipped and the chair is ignored. Setting this value to No cancels the order if it can't be fully fulfilled. | Yes/No | | **Included Location Types** | A dropdown containing all the available configured inventory networks. This option is only available for the Location Prioritization action type. All the locations that are selected will be checked for inventory availability based on the additional geo locations, split shipment, and exclude fields selected. | Value is based on your available fulfillment locations. All configured locations are listed. For example: StoreDropshipDC | | **Geolocation** | Enable this field if you want to fulfill shipments based on the customers shipping location. If this field is set to No, Initial Boundary, Increment Size, and Maximum Boundary aren't used. | Yes/No | | **Initial Boundary** | The initial circumference boundary when determining geo-location. For example, if the value 100 is provided, fabric will look to see if any Included Location Types can fulfill the order within 100 miles of the shipping location. | Number | | **Increment Size** | Incremental Boundary In Miles is the number of miles you want to add every time search is performed. This means if the Initial Boundary was unable to fulfill an order, the incremental circumference is increased by the number specified here. For example, we can set this value set to 50. If no stores were in the first 100 miles entered in Initial Boundary, the search boundary is increased to 100-150, then 150-200, until it reaches the Maximum Boundary value. | Number | | **Maximum Boundary** | The maximum search radius. Once the Increment Size reaches this number and the order can't be fulfilled, the order is canceled. | Number | | **Inventory Balancing** | The Inventory Balancing dropdown has two values, Distance and InventoryAvailability. Selecting Distance means the order fulfillment is completed by the nearest store with the items in stock. Selecting InventoryAvailability, means fabric looks at each of the eligible stores within your boundary and chooses the store with the most inventory. For example, if a store had 1 item remaining and another store had 5 of the same item within the search boundary, the order fulfillment would default to the store with more inventory. | DistanceInventoryAvailability | | **Order Level Split Shipments** | Setting this value to Yes enables orders to be fulfilled through multiple stores if the SKU’s or items aren't available at a single location. Setting this value to No means that fabric must find a location that has every item for an order at a single fulfillment location. If fabric is unable to find all the items in the order at a single location, the entire order is canceled. | Yes/No | | **Item Level Split Shipments** | Set this value to Yes if you want to look between locations to meet the item quantity request of an order. For example, if an order for 20 of the same office chair came in, and a location only had 15 available, the remaining 5 chairs would be sourced from another location. With this set to No, the remaining quantity of chairs are canceled and only the 15 at the first location are allocated. | Yes/No | | **Maximum Splits allowed per order** | The maximum number of locations that a split order can be fulfilled from. | Number | | **Item exclusions** | Allows you to create an additional condition based on an item attribute. For example, if an item is less than \$10, you can create a condition to ship it from a retail store near the customer to save on shipping costs. | Yes/No | ## Creating a Fulfillment Rule Set Requirements: * Allocate orders to different fulfillment locations based on a the selected shipping type during checkout. * Configure geographic distance rules for same day shipping. * Configure rules around split shipments. * Configure a price/margin rule for items under a certain cost. * Configure an auto cancel rule for shipments that can't be fulfilled. * Create a default dropship rule to ship directly from the factory for orders that can't be fulfilled from the main fulfillment locations. Using the above requirements, the examples outlined in this document assume that both a web store and retail locations are available. The web store allows customers to select two different types of shipping: default and expedited. In the `Order` attribute are the attribute types `STH` (ship to home) and `SDD` (same day delivery). The rules that are created must automatically send an order to a specific location based on the shipping type selected during checkout. The following examples outline how to create a rule set for each requirement. Although the conditions and requirements are separate examples in this document, note that all of the following examples make up a single **Fulfillment Rule Set** and that only one rule set can be active at any given time. All of the examples below build upon one another. ## Pre-requisites Ensure you have the **Orders & Inventory Editor** or **Administrator** privilege for fabric Orders. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Create a new rule set 1. Using the left navigation, click **Orders** > **Fulfillment**. * The **Fulfillment Rule Set** page is displayed. 2. To create a new rule, click **Create Rule Set**. 3. In the **Basic Information** section, provide a **Fulfillment rule set name**, and optionally a **description**. * It's best practice to always provide a description indicating what the rule is doing and its purpose. ### Example 1 - Allocate orders to specific fulfillment locations This example fulfills the following requirements: * Allocates orders to different fulfillment locations based on a the selected shipping type during checkout. * Geographic distance rules for same day shipping. * Creates rules for split shipments. To create a rule, you must first define the condition for when the rule should be executed. 1. In the **Setup your set of rules** section, a default rule is provided in the subsection for **Order Level Rule Group**. Click the edit icon to rename the default rule. * In this example, the first rule is called **Allocate to fulfillment locations \[ STH ]**. * Expanding the field reveals the **Add condition** and **Add action** buttons. A blank default condition and action are provided. The fields populated for **Attribute** are all based on your **Attribute type** which is automatically set to `Order`. This can't be changed. 2. In the **Attribute** field, select `type`. 3. In the **Operator** field, select `Equals`. 4. In the **Value** field, enter `STH` as the value. * This condition makes it so an action is triggered when the condition for an order is `STH`. Note that in your instance, ship to home may not be equal to the value `STH`. For example, the value could be `Ship_To_Home`. It's suggested that you check your `Order` schema to determine what values are allowed/expected. Once a condition is created, the **Fulfillment Rule Type** needs to be set. The **Fulfillment Rule Type** determines what happens when a condition is met. In this example, the action needs to direct `STH` orders to the `DC` fulfillment warehouse. 1. In the **Fulfillment Rule Type** field, select **Multi Location Single Ship Fulfillment**. * Additional fields appear. If you only have a single fulfillment location and aren't expecting additional conditions, you can use **Configured Location** and enter the location number without needing to follow the remaining steps. 2. Set the **Included Location Types** field to where you want to fulfill `STH` orders. * In this example, `STH` orders need to be fulfilled in `DC`. 3. The remaining available options aren't needed in the `STH` use case. For more information on each of these fields, visit the [Action fields table](#action-fields). The following list is an example of what the default values look like: * Set **Geolocation** to `No`. * Set **Order Level Split Shipments** to `No`. * Set **Item Level Split Shipments** to `No`. * Set **Allows Partial Fulfillment** to `Yes`. * Set **Maximum Splits allowed per order** to `3`. * Set **Item exclusions** set to `No`. This creates our first rule which is executed when the shipping method `STH` is selected during checkout. However, in order to create a same day delivery `SSD` condition, an additional rule is needed. 1. Click **Add Rule**. 2. In the **Attribute** field, select `type`. 3. In the **Operator** field, select `Equals`. 4. In the **Value** field, enter `SDD` as the value. * This condition makes it so an action is triggered when the condition for an order is `SDD` (same day delivery). Note that in your instance, same day delivery may not be equal to the value `SDD`. For example, the value could be `expedite` or `same_day_delivery`. It's suggested that you check your `Order` schema to determine what value is expected. 5. Set the **Included Location Types** field to the main warehouse `DC` and retail locations `Store`. * If we had additional distribution methods, they could be selected here. 6. Set the **Geolocation** field to `Yes`. * The **Geolocation** feature looks at the customer's location and sees if any of our inventory networks within a set distance are able to fulfill the order. * Unlike `STH`, `SDD` requires that we take into consideration where the items are located in relation to the shipping location. This is because we want to fulfill the order as quickly as possible and ship from the closest location to the customer. 7. Set the geolocation boundaries. The following settings look for a store from 0-100 miles from the customer's shipping address that can fulfill the order. If the order can't be fulfilled, it then searches between 100-200 miles and finally, 200-300 miles. * Set the **Initial Boundary** field to `100`. * Set the **Increment Size** field to `100`. * Set the **Maximum Boundary** field to `300`. 8. Set the **Inventory Balancing** field to one of the following values: * **Distance**: The order fulfillment is completed by the nearest store with the items in stock. * **InventoryAvailability**: Looks at each of the eligible stores within the geo-location boundary and chooses based on maximum available stock. For example, if multiple stores had the items in stock and one store had 1 item remaining, whereas another store had 5, the order fulfillment would default to the store with 5 inventory. 9. Split shipments are used to fulfill orders from multiple fulfillment locations. Each split shipment method changes how an order is fulfilled. Depending on your individual needs and logistics, one or more of these methods may not be feasible. Visit the [Action fields table](#action-fields), for more information on each of these fields and examples. * Set the **Order Level Split Shipments** field to `Yes`. * Set the **Item Level Split Shipments** field to `Yes`. * Set the **Allows Partial Fulfillment** field to `Yes`. * Leave the **Maximum Splits allowed per order** field as the default value of `3`. 10. Set the **Item exclusions** field to `No`. ### Example 2 - Create a price rule for items under a set cost This example fulfills the following requirements: * Creates a price/margin rule for items under a certain cost. * Configures an auto cancel rule for shipments that can't be fulfilled. There are three ways to create price rules. If you must ship certain items from certain locations, it's recommended you use the third method described below: * Create a new rule with the condition specifying a price. * Add an item exclusion to an existing condition. * Use item level rules to provide a condition and action for all items within a certain price range. If you wish to follow along, please review the following example [Allocate Orders to Specific Fulfillment Locations](#example-1---allocate-orders-to-specific-fulfillment-locations). The example below builds upon this example. The allocate orders to a specific fulfillment location rule set allocates ship to home `STH` orders to a `DC` fulfillment location. Same day delivery `SDD` orders are fulfilled based on geographical location and can be shipped from retail stores or the `DC` fulfillment location. 1. Using the Allocate to fulfillment locations \[ STH ] rule, set the **Item exclusions** field to `Yes`. * Enabling **Item exclusions** creates a new **Item Exclusion** condition above your action with the **Entity** default set to `Item`. 2. Set the **Attribute** field to `price.itemUnitPrice`. 3. Set the **Operator** field to `Less Than or Equal To`. 4. In the **Value** field, enter `5`. * This condition now checks to see if any item is less than or equal to 5\$. If an item meets this condition, it's excluded from that action. In other words, if **Item exclusions** is `Yes`, fabric looks at the next action in a rule that has been specified. At this point, if you don't configure a default condition or add an additional action, the items that fall under the exclude condition are never added to an order. This means those items are canceled and depending on if you have **Allows Partial Fulfillment** enabled or not, the shipment is cancelled. There are two options for making sure small items are shipped. * Create another action within the same rule where the exclusion exists. * Create an item level rule. In this example an item level rule is created. 1. Rename the default item rule from the **Item Level Rule Group** section to `Items under 5$`. 2. Set the **Attribute** field to `price.itemUnitPrice`. 3. Set the **Operator** field to `Less Than or Equal To`. 4. In the **Value** field, enter `5`. 5. In the **Fulfillment Rule Type** field, select **Multi Location Single Ship Fulfillment Method**. 6. Set the **Included Location Types** field to include `Store`. * If instead of using retail stores you had specific warehouses to ship smaller items from, you could instead use **Configured Location Fulfillment Method** and enter the location numbers. 7. Set the **Geolocation** field to `Yes`. * The locations should be limited based on shipping costs and logistics. * Set the **Initial Boundary** field to `200`. * Set the **Increment Size** field to `100`. * Set the **Maximum Boundary** field to `400`. 8. Set the **Inventory Balancing** field to `Distance`. * This ensures the item is shipped from the closest store. 9. Set all of the split shipment options to `No`. * It would be too costly to ship items under \$5 from multiple different locations for a single order. * Set the **Order Level Split Shipments** field to `No`. * Set the **Item Level Split Shipments** field to `No`. * Set the **Allows Partial Fulfillment** field to `No`. * You can choose to enable partial fill if you want to partially fill an order. * Leave the **Maximum Splits allowed per order** field as the default value of `3`. 10. Set the **Item exclusions** field to `No`. This item level rule accounts for all items under 5 dollars and ships items under 5 dollars from the nearest retail location. ### Example 3 - Create a default dropship action Sometimes, you are unable to fulfill an order from any of your available fulfillment locations. When this happens, you can create an action to fulfill the order directly from a factory dropship location. With this type of action in place, orders with partially filled SKUs and items not currently in stock can still be fulfilled. If you wish to follow along, please review the following example [Allocate Orders to Specific Fulfillment Locations](#example-1---allocate-orders-to-specific-fulfillment-locations). The example below builds upon this example. The allocate orders to a specific fulfillment location rule set allocates ship to home `STH` orders to a `DC` fulfillment location. Same day delivery `SDD` orders are fulfilled based on geographical location and can be shipped from retail stores or the `DC` fulfillment location. In this example, an additional action is added to backfill orders with no inventory. If an order can't be fulfilled, the remaining items are sent to a dropship location to be fulfilled at a later time. 1. In the **Allocate to fulfillment locations \[ STH ]** rule, click the **Add action**. * You will already have an action to fulfill orders from `DC` from the previous example. A new action must be created under it. 2. In the **Fulfillment Rule Type** field, select **Location Prioritization**. 3. Set the **Included Location Types** field to include `Dropship`, `store`, and `DC`. * Every fulfillment location is selected to ensure the order is fulfilled if possible. 4. In the first action, set the **Allows Partial Fulfillment** field to `Yes`. * If this is disabled, the order will be canceled because it can't be fulfilled in the first action. Actions execute from the top down. * Alternatively, if you wanted to guarantee that an order is fulfilled, you would also set **Item Level Split Shipments** and **Order Level Split Shipments** to `Yes`. However, this can complicate shipping logistics making it so certain orders might have multiple shipping locations for different SKUs. Check with your team to determine what settings should be enabled based on your individual needs. 5. All remaining fields can be left as their default values. ## Related Topics * [Order Fulfillment Logic Overview](/v3/guides/orders/order-fulfillment-logic/order-fulfillment-logic) * [Orders Overview](/v3/guides/orders/overview) * [Order Management](/v3/guides/orders/order-management/creating-an-order) * [Order History](/v3/guides/orders/activity-log) * [Order Settings](/v3/guides/orders/settings) * [Order API Documentation](/v3/api-reference/orders/allocations/overview) # Updating a Rule Set To prevent fulfillment or distribution from breaking due to changes, direct editing of rule sets is disabled. Instead, once you have completed your edits, the **Clone** option is enabled. A cloned rule set acts as a entirely new rule set allowing you to set it as the primary active rule set. Note that only one rule set can be active at a time. ## Prerequisites Ensure that you have the **Orders & Inventory Editor** or **Administrator** privileges to fabric Orders. For more detailed information on these settings, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Procedure 1. Using the left navigation, select **Orders** > **Fulfillment**. * The **Fulfillment Rule Set** page is displayed. 2. Using the **ID** or **Name**, find the rule set you want to update. * The fulfillment rule set table alphabetically sorts your rule sets (A-Z) with your active rule set at the top. 3. Click the **ID**. * The **Edit Fulfillment Rule Set** page is displayed. 4. Click **Clone**. * Editing is disabled until you clone the rule set. 5. In the **Basic Information** section, provide a new **Fulfillment rule set name** and **description**. * Because this is a clone of the previous rule set, it can be confusing if you don't change the name. 6. In the **Setup your set of rules** section, click an order level or item level rule to expand and reveal the conditions and actions for that rule. 7. Make edits to the fields you want to change. * For more detailed information on each of the fields, see the [Creating a Rule Set](https://developer.fabric.inc/v3/guides/orders/order-fulfillment-logic/create-a-new-rule-set-ui#field-descriptions) field descriptions section. 8. Click **Save**. The edited rule set is added to the **Fulfillment Rule Set** table. ## Related Topics * [Order Fulfillment Logic Overview](/v3/guides/orders/order-fulfillment-logic/order-fulfillment-logic) * [Orders Overview](/v3/guides/orders/overview) * [Order Management](/v3/guides/orders/order-management/overview) * [Order History](/v3/guides/orders/activity-log) * [Order Settings](/v3/guides/orders/settings) * [Order API Documentation](/v3/api-reference/orders/allocations/overview) # Order Fulfillment Logic Overview The order fulfillment feature allows you to create fulfillment rule sets. Fulfillment rule sets are used to direct orders to different fulfillment locations based on characteristics, such as geo-location, warehouse location, item price, order attribute type, and more. ## Pre-requisites Ensure you have the **Orders & Inventory Editor** or **Administrator** privilege for fabric Orders. For more information, see [Role-Based Access Control](../../settings/rbac/role-based-access-control-orders-roles.mdx). ## Rule Setup When creating a new fulfillment rule set, you must provide some basic information along with the rules in the [order level rule group](###order-level-rule-group) or [item level rule group](###item-level-rule-group) sections. Ensure that you create all your rules in a single fulfillment rule set because only one rule set can be active at a time. ### Order level rule group When you create rules in the **Order Level Rule Group**, they're executed in the order that they're sorted. This means rules are executed from the top down. You can drag and drop rules to execute in any order as needed. Its important to note that when a rules condition is met, the additional rules defined below it aren't executed. If no rule conditions are met and no default condition is provided, the rules are all ignored. #### Example Let's assume 2 rules are defined. One for fulfilling online orders at a specified fulfillment warehouse, and one for packaging specific online orders (based on the shipping location) at a different warehouse equipped to package unique orders. If the order of the rules contains the first rule at the top and the second rule below, the second rule can't run because the first rules condition is always met before the second rule has executed. However, if we were to swap the rules order and run the second rule first, it would guarantee that the rule is run. If fabrics rules condition isn't met, fabric proceeds to run the next rule below. This means the last rule (as a best practice) should be a default catch-all and very specific rules with unique conditions should be run first. ### Item level rule group Item level rules run in parallel and execute all rules even if a previous rule condition is met (including order level rules). This means item level rules override order level rules. The **Attribute type** is limited to the `Item` attribute type and only allows you to create conditions based on item attribute values such as `price.ItemUnitPrice`. This allows item level rules to control where certain items are fulfilled from and guarantees a static fulfillment location regardless of the order level rules you have implemented. Item level rules are often used when you set up certain item exclusions. This could be specific SKUs that ship from a particular warehouse, items under a certain price point, items that weigh a lot, and more. ### Frequently asked questions What happens if more than one condition is met for an order? * If the rules are within the **Order Level Rule Group** section, the rules are executed from the top down. For example, if the first rules condition is fulfilled, subsequent rules aren't run on that order. Rules defined within **Item Level Rule Group** always execute. This is because the rules are run on specific item conditions rather than order conditions. What happens if an item level rule conflicts with a order level rule? * Because item level rules run at the item level, they always take priority over order level rules. For example, an order level rule specifies shipping an order with 5 items and one of the items in the order fulfills the condition for an item level rule. In this event, 4 of the items are shipped based on the action defined in the order level rule. The item that meets the item level rule condition is shipped based on the action defined in the item level rule. ## Next Steps For more information, such as example rule sets, please begin by reading the [Creating a rule set](./create-a-new-rule-set-ui) documentation. ## Related Resources * [Orders Overview](../overview) * [Order Management](../order-management/overview) * [Order History](../activity-log) * [Order Settings](../settings) * [Order API Documentation](../../../api-reference/orders/orders--3-0-0) # Adding Products to an Existing Order This topic covers the process of adding products to an existing order. ## Prerequisites * Ensure that you have the **Orders & Inventory Editor** or **Administrator** privileges to fabric Orders. For more information, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. * Ensure that the order is in **Hold**, **Confirmed**, **Partially allocated**, or **Created** status. If the status of the order changes to **Allocated** in the order lifecycle, the order can no longer be updated with additional products. ## Procedure 1. In the left menu, click **Orders**. The **Orders** tab is displayed on the **Manage Orders** page. 2. To find an order, do one of the following: * In the search bar, enter the search keywords and press **Enter**. * Use filters to refine the search results. The orders table displays the orders that match the search or filter criteria. 3. In the orders table, click the **Order Number**. The order details are displayed on the **Basic details** tab. 4. Using the **More actions** button, select **Add SKUs**. The page for adding products to an order is displayed with the order number. 5. In the **Select SKUs** > **Your network** field, select a [network](https://developer.fabric.inc/v3/guides/inventory/networks). Upon selecting a network, a group of locations sharing inventory, the available products for browsing are filtered accordingly. 6. In the **Your channel** field, select a channel. 7. Click **Browse SKUs**. The **Browse SKUs** window is displayed with a product table. 8. To find the product in the **Browse SKUs** window, do one of the following: * In the search bar, enter the search keywords and press **Enter**. * Use filters to refine the search results. The **Stock status** for a product must be **Available** and **Availability** must be greater than or equal to one. If you add an unavailable product, an error message is displayed after adding the product. 9. Select products using the **Product title** checkbox. 10. Click **Add SKUs**. The products you selected are added to the **Select SKUs** table with the **SKU ID**, **Price per unit**, **Quantity**, and **Availability** details. 11. Update the **Quantity** of each product by clicking the `+` or `-` buttons. The order details for **Added SKUs** are updated along with the total amount in the **Order Summary**. **Added SKUs** displays the total cost breakdown of the newly selected products and the **Order Summary** displays the total cost breakdown for the entire order including past products and the newly added products. 12. To select the shipping address, click the radio button next to the address. A default shipping address is displayed from the previous order. If you want to add a new address, follow the instructions in the [Adding an Address](#adding-an-address) section. 13. Click **Confirm**. The additional products are added to the **Basic details** tab for the order. Scroll down to the **Order status** to view the details of each product and its current status. ## Adding an Address 1. To add a new address, click **Add address**. The **Add address** window is displayed. 2. In the **Fulfillment method** field, select one of the following options: * [Ship to Home](#ship-to-home): Use this option if you want to ship the selected products to a specific address. * [Pickup in store](#pickup-in-store): Use this option if you want to ship the selected products to a designated store pickup location. ### Ship to Home 1. To ship to a specific address, in the **Contact details** section, enter the following details: * **First name** * **Last name** * **Email** * **Phone number** * From the **Phone number type** dropdown, select `Mobile`, `Business`, or `Home`. 2. To ship to a specific address, in the **Shipping address** section, enter the following details: * **Address line 1** * (Optional) Click **Add address line** to add additional address lines. * From the **Country** dropdown, select a Country. * **Zip code** * **Region** * **City** * From the **Shipping method** dropdown, select a shipping method. 3. In the **Payment details** > **Payment method** field, select a payment method. The previous payment method is selected by default. 4. Click **Confirm**. The new shipping address is added to the **Select shipping address** section. ### Pickup in Store 1. In the **Select pickup location** field, select a [pickup location](https://developer.fabric.inc/v3/guides/inventory/networks). 2. In the **Contact type** field, select one of the following: * **Primary**: Select this method to set the primary contact information. The primary contact is sent notifications for pickup and tracking details. * **Secondary**: Select this method if you want to authorize someone other than the primary contact to pick up the order. The default for a primary contact is the customer who ordered the items. 3. To ship to a pickup location, in the **Contact details** section, enter the following details: * **First name** * **Last name** * **Email** * **Phone number** * From the **Phone number type** dropdown, select `Mobile`, `Business`, or `Home`. 4. (Optional) To add additional contacts that are authorized to pick up the order, click **Add alternate pickup name**. 5. In the **Payment details** > **Payment method** field, select a payment method. The previous payment method is selected by default. 6. Click **Confirm**. The new shipping address is added to the **Select shipping address** section. # Creating Appeasement Refunds By creating an appeasement refund, you can issue discretionary refunds. The appeasement option for an order is enabled only after the payment process is initiated for the order. Orders with the **Fraud** status can't be appeased. ## Prerequisites * Ensure that you have the **Orders & Inventory Editor** or **Administrator** privileges to fabric Orders. For more information, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Procedure 1. In the left menu, click **Orders**. The **Orders** tab is displayed on the **Manage Orders** page. 2. To find an order, do one of the following: * In the search bar, enter the search keywords and press **Enter**. * Use filters to refine the search results. The orders table displays the orders that match the search or filter criteria. 3. In the orders table, click the **Order Number**. The order details are displayed on the **Basic details** tab. 4. Click the **More actions** button and select **Create Appeasement**. The page for creating appeasements is displayed with the order number. 5. In the **Reason code** field, select a reason code. To provide additional details, click **Add sub-reason code** and enter the reason in the **Sub-reason code** field. 6. In the **Refund amount** field, enter a refund amount. The fields for **Subtotal**, **Shipping**, **Fees**, and **Total** are updated. These fields display the total available amount you can refund for an order. You can't refund more than the available amount. 7. Click **Create Appeasement**. The appeasement is created and you are redirected to the **Basic details** tab for the order. ### Order Details Field Descriptions The **Order Details** section displays the following information: | Field | Description | | --------------- | ---------------------------------------- | | **Channel** | The sales channel ID used for the order. | | **Date placed** | The date and time the order was placed. | ### SKU Details If you want to view the details of a SKU, click the **SKU**. The **Sku Details** window is displayed containing two tabs, **Pricing** and **Attributes**. For more information on **Attributes**, visit the [Product Attributes](https://developer.fabric.inc/v3/guides/product-catalog/attributes/product-attributes-overview) section in the Product Catalog documentation. For more information on **Pricing**, visit the [Pricing](https://developer.fabric.inc/v3/guides/offers/pricing) section in the Offers documentation. # Canceling Items in an Order You can cancel individual items or the entire order. ## Prerequisites * Ensure that you have the **Orders & Inventory Editor** or **Administrator** privileges to fabric Orders. For more information, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. * Ensure that the order is in **Hold**, **Confirmed**, **Partially allocated**, or **Created** status. If the status of the order changes to **Allocated** in the order lifecycle, the order can no longer be canceled. ## Procedure 1. In the left menu, click **Orders**. The **Orders** tab is displayed on the **Manage Orders** page. 2. To find an order, do one of the following: * In the search bar, enter the search keywords and press **Enter**. * Use filters to refine the search results. The orders table displays the orders that match the search or filter criteria. 3. In the orders table, click the **Order Number**. The order details are displayed on the **Basic details** tab. 4. Click the **More actions** button and select **Cancel SKUs**. The **Cancel order** page is displayed with the order number. 5. In the **Items to cancel** section, do one of the following: * **Cancel entire order**: This option automatically selects all items in the order and sets the cancel quantity to the maximum amount. * Individually select each item in the **SKU ID** field. 6. Update the **Qty** field by clicking **+** or **-**. 7. In the **Reason code** field, select a reason code. The **Order summary** section updates the total refund amount based on the canceled items. 8. Click **Confirm**. You are redirected to the **Basic details** page. The selected products are cancelled and the status is updated to **Cancelled**. For more information on statuses, visit the [Manage Orders](https://developer.fabric.inc/v3/guides/orders/order-management/overview) overview documentation. # Creating an Order This topic covers the process of creating a new order. ## Prerequisites * Ensure that you have the **Orders & Inventory Editor**, or **Administrator** privileges to fabric Orders. For more detailed information on these settings, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Procedure 1. In the left menu, click **Orders**. The **Orders** tab is displayed on the **Manage Orders** page. 2. Click **Create Order**. The **Create order** page is displayed with the order status set to **Draft**. 3. In the **Select SKUs** > **Your network** field, select a [network](https://developer.fabric.inc/v3/guides/inventory/networks). Upon selecting a network, the system automatically filters the products available for browsing. 4. In the **Your channel** field, select a channel. 5. Click **Browse SKUs**. The **Browse SKUs** window is displayed with a product table. 6. To find a product in the **Browse SKUs** window, do one of the following: * In the search bar, enter the search keywords and press **Enter**. * Use filters to refine the search results. The **Stock status** for a product must be **Available** and **Availability** must be greater than or equal to one. If you add an unavailable product, an error message is displayed after adding the product. 7. To select products, select the **Product title** field next to the product. You can select more than one product. 8. Click **Add SKUs**. The products you selected are added to the **Select SKUs** table with the **SKU ID**, **Price per unit**, **Quantity**, and **Availability** details. 9. To update the quantity of each product, in the **Quantity** field, click the `+` or `-` buttons or enter the quantity. The **Order Summary** is updated with pricing information for the order. 10. In the **Add shipping address** > **Fulfillment method** field, select one of the following options: * [Ship to Home](#ship-to-home): Use this option to ship the selected products to a specific address. * [Pickup in store](#pickup-in-store): Use this option to ship the selected products to a designated store pickup location. ### Ship to Home 1. To ship to a specific address, in the **Contact details** section, enter the following details: * **First name** * **Last name** * **Email** * **Phone number** * **Phone number type**: The options are `Mobile`, `Business`, or `Home`. 2. In the **Shipping address** section, enter the following details: * **Address line 1** * You can add additional address lines by clicking **Add address line**. * **Country** * **Zip code** * **Region** * **City** * **Shipping method** 3. In the **Payment details** > **Payment method** field, select a [payment method](https://developer.fabric.inc/v3/guides/quickstart/merchant-experience-quickstart-guide#configure-checkout). 4. Click **Create**. The order is created and added to the **Manage Orders** > **Orders** list. ### Pickup in Store 1. In the **Select pickup location** field, select a [pickup location](https://developer.fabric.inc/v3/guides/inventory/locations). 2. In the **Contact type** field, select one of the following: * **Primary**: The primary contact is sent notifications for pickup and tracking details. The default setting for primary contact is the customer who ordered the items. * **Secondary**: Authorizes someone other than the primary contact to pick up the order. 3. In the **Contact details** section, enter the following details: * **First name** * **Last name** * **Email** * **Phone number** * **Phone number type**: The options are `Mobile`, `Business`, or `Home`. 4. (Optional) To add additional contacts who are authorized to pick up the order, click **Add alternate pickup name**. 5. In the **Payment details** > **Payment method** field, select a [payment method](https://developer.fabric.inc/v3/guides/quickstart/merchant-experience-quickstart-guide#configure-checkout). 6. Click **Confirm**. The order is created and added to the **Manage Orders** > **Orders** list. # Processing Exchanges You can exchange an entire order or the individual products in an order. The system automatically calculates any price differences for the exchanged products. The exchange option for an order is enabled only after the payment process is initiated for the order. Orders with the **Fraud** status can't be exchanged. ## Prerequisites * Ensure that you have the **Orders & Inventory Editor** or **Administrator** privileges to fabric Orders. For more information, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Procedure To exchange an item, the return process is initially followed. 1. In the left menu, click **Orders**. The **Orders** tab is displayed on the **Manage Orders** page. 2. To find the order, use the [search or filter options](https://developer.fabric.inc/v3/guides/orders/order-management/filtering-orders) on the **Manage Orders** page. 3. In the orders table, click the **Order Number**. The order details are displayed on the **Basic details** tab. 4. In the top-right of the page, click **Return Order**. The **Return order** page is displayed. 5. In the **Select SKUs to return** section, do one of the following: * To exchange an entire order, select the **Refund entire order** checkbox. This automatically checks all items in the order and sets the maximum exchange quantity for each SKU. * To exchange specific items, click the checkbox next to the SKU you want to exchange and use the **+** or **-** buttons to set the quantity. The **Refund summary** is updated. 6. Click **Next**. 7. If multiple exchange reasons exist for each SKU, clear the **Same reason code for all SKUs** field. 8. In the **Action** field, select **Exchange**. 9. In the **Reason code** field, select a reason code. You can add additional information for the exchange by selecting **Add sub-reason code** and by providing the information in the **Sub-reason code** field. 10. Click **Next**. The **Items to send customer in exchange** section is displayed. 11. In the **Your network** field, select a network. After selecting a network, which is a group of locations sharing inventory, the available products for browsing are filtered accordingly. 12. In the **Your channel** field, select a channel. 13. Click **Browse SKUs**. The **Browse SKUs** window is displayed with a product table. 14. To find the product in the **Browse SKUs** window, in the search bar, enter the search keywords and press **Enter**. You can use the filters to refine the search results and find a specific product. The Stock status for a product must be **Available** and **Availability** must be greater than or equal to one to process the exchange. If you add an unavailable product, an error message is displayed. 15. Select **Product title** checkbox for the products that you want to exchange. 16. Click **Add SKUs**. You can remove SKUs by clicking **Remove SKUs**. This option is only displayed if a SKU is added to the exchange. 17. In the **When should exchange items ship** field, select one of the following: * **Ship upon receiving return:** This option prevents the new exchanged items from shipping until the previous items are received and processed. * **Ship exchange items immediately:** This option immediately sends the exchange request to the nearest fulfillment location to ship. fabric recommends that you only use this option for specific loyalty tiers. 18. Click **Next**. The **Confirm** section is displayed with an overview of the exchange. 19. Click **Confirm**. The order status is updated to **Exchanged**. ### Refund Summary The **Refund summary** section displays a breakdown of the total amount being refunded. Selecting more than one item to refund or exchange updates the summary accordingly. The following table describes each field in the **Refund summary** section. | Field | Description | | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Subtotal refund** | Displays the refund subtotal which excludes discounts, fees, adjustments, shipping, and taxes. This amount can be edited in the refund process. | | **Discounts refund** | Displays the discount amount applied to the order. If discount codes were applied to a product, the system automatically adjusts the refund summary. | | **Fees refund** | Displays the additional fees that were charged for an order such as an oversized item fee. This can be edited in the refund process. | | **Adjustment refund** | Displays the adjustments applied to the order if applicable. | | **Shipping refund** | Displays the shipping refund amount. This can be edited in the refund process. | | **Tax refund** | Displays the tax refund amount. Tax refund amounts can't be edited and are broken down into sub-taxes. For example, Canadian orders are broken down into two taxes, General Sales Tax (GST) and Provincial Sale Tax (PST). Use the **More Details** field to get a list of taxes. Taxes are calculated for individual products, so returns with multiple products display duplicate taxes representing each product. | | **Total refund** | Displays the total refund amount. | ### Adding Notes to an Order The **Add Notes** option is located in the **Return order** field. 1. To add notes to an order, Click **Add Notes**. The **Add notes** window is displayed. 2. Enter the note. Notes are limited to 110 characters. 3. Click **Save**. You can edit the note by clicking **Edit Notes**. Repeat step 2 and 3 to complete the update. The note is added with the **Return order** label. Notes are only saved if you complete the entire return process. # Exporting Orders The Export feature provides you with the ability to export all your order-related data. This topic covers the process of exporting order data. Previous exports can be viewed in the **Orders > Activity Log** page. You can download previous export files from this page. ## Prerequisites Ensure that you have the **Orders & Inventory Editor** or **Admin** privilege for fabric Orders. For more information, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Export logic Exporting downloads a zip folder containing a JSON source file or multiple CSV files depending on the option you select. ### JSON The JSON zip folder contains a single JSON file. The JSON file contains objects for each `orderId`. Each order object contains the entire history and information of an order including the SKUs for each item in the order. ### CSV The CSV zip folder contains CSV files for orders (exported by item), adjustments, appeasements, discounts, logs, notes, payments, and shipInfo. Each row in the order CSV file represents a product in the order. If an order contains multiple products, duplicate `orderId` rows are displayed for each product. The following table outlines each column in the order CSV file and provides example values. Values in the CSV file are populated only if the data is available. | Column name | Description | Example value | | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | | **orderId** | The 24-character system-generated order ID. | 65c0e0d07044e34a495a05c8 | | **orderNumber** | A merchant-defined order identifier. If omitted, this is generated by fabric's sequence generator using the configuration service. | 6250002317 | | **version** | The current version of the order. The number displayed indicates the number of times the order is updated by any operation. | 11 | | **orderedAt** | The merchant-defined order creation time (UTC). | 2022-05-12T09:30:31.198Z | | **cancelledAt** | The system-generated order cancellation time (UTC). | 2022-05-12T09:30:31.198Z | | **allocatedAt** | The system-generated order allocation time (UTC). | 2022-05-12T09:30:31.198Z | | **channelId** | The merchant-defined sales channel ID. | WHBM | | **cartId** | The unique cart identifier, either from fabric cart service or an external cart service. It's used for linking an order to a specific cart. | 5f2d15e8-a837-41a3-9bf1-4467e8e1893a | | **type** | The order type. | WEB | | **subtype** | The order subtype. This is used if further classification is required. | ANDROID | | **processName** | Order process name (V2) only. | | | **employeeId** | The employee (ID or name) who initiated the request. | 3213123 | | **retail** | Determines if an order was created from a Point-of-Sale system. | true | | **orderSubTotal** | Recalculated `orderSubtotal - summationOfAll(itemSubTotal)`. | 24.55 | | **originalSubtotal** | A system-generated order subtotal, auto filled by the orders service when an order is placed. This is saved for reference in case the value changes later. | 24.55 | | **orderDiscount** | Recalculated order discount. | 49 | | **originalDiscount** | The system-generated total discount, auto filled by the orders service when an order is placed. This is saved for reference in case the value changes later. | 49.99 | | **feeTotal** | Recalculated total fee, calculated as orderedQuantity\* itemFeeTotal | 7.95 | | **originalFeeTotal** | The system-generated total fees, auto filled by the orders service when an order is placed. | 7.95 | | **taxTotal** | Recalculated total tax on an order. summationOfAll(itemTaxTotal)+summationOf(tax\[].value) | 13.45 | | **appeasementTotal** | The final appeasement amount. | -10 | | **originalTaxTotal** | The system-generated total tax, auto filled by the orders service when an order is placed. | 12.93 | | **returnTotal** | The return total of order. Calculated as summationOfAll(itemReturnTotal) | -3 | | **cancelTotal** | The amount to be returned after an order cancellation. Calculated as `cancelledQuantity` / `orderedQuantity` \* `itemTotal` | 85.19 | | **invoiceTotal** | The total payment captured by fabrics invoice service. If you are using a third-party service, then this amount will be null. For partial payment scenarios, this value will be different from orderTotal. | 149.09 | | **orderTotal** | The total amount to be charged for the order. Calculated as `orderSubTotal - orderDiscountTotal + orderFeeTotal + orderTaxTotal` | 149.09 | | **originalOrderTotal** | A system-generated order total, auto filled by the orders service when an order is placed. This is saved for reference in case the `orderTotal` changes. | 234.28 | | **currency** | A three-letter currency code as defined by ISO-4217. | USD | | **statusCode** | The current status of the order. | ORDER\_SHIPPED | | **statusDescription** | A human readable brief description of the `statusCode` value. | Order Shipped | | **orderReleasedAt** | The order released time (UTC). | 2022-05-12T09:30:31.198Z | | **createdAt** | The order creation time (UTC). | 2024-02-05T13:21:20.686Z | | **updatedAt** | The timestamp for the latest update that was made to the order (UTC). | 2024-02-21T20:12:42.127Z | | **adjustmentTotal** | The total price adjustment made to the item. | 0 | | **originalAdjustmentTotal** | A system-generated order adjustment total, auto filled by the orders service when an order is placed. This is saved for reference in case the `adjustmentTotal` value changes. | 0 | The remaining CSV files for `adjustments`, `appeasements`, `discounts`, `logs`, `notes`, `payments`, and `shipInfo` contain one or more of the following columns. For example, the **adjustment-order** CSV file contains columns for `orderId`, `orderNumber`, `itemId`, `sku`, `lineItemId`, and `lineItemNumber`. | Column name | Description | Example value | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | | **orderId** | The 24-character system-generated order ID. | `65dce9816a08674c56ecdef2` | | **orderNumber** | A merchant-defined order identifier. If omitted, this is generated by fabric's sequence generator using the configuration service. | `6250002317` | | **cartId** | The unique cart identifier, either from fabric cart service or an external cart service. It's used for linking an order to a specific cart. | `5f2d15e8-a837-41a3-9bf1-4467e8e1893a` | | **statusCode** | The current status of the order. | `ORDER_ALLOCATED ` | | **itemId** | A system-generated unique identifier of an item from fabric Product Catalog service. | `1145` | | **channelId** | The merchant-defined sales channel ID. | `CHS` | | **sku** | The stock keeping unit (SKU), unique identifier of item. | `P1135` | | **lineItemId** | A merchant-defined unique identifier for each item in an order. When omitted, fabric generates it in UUID format during order creation. | `d538b1f1-0e45-43c6-bfc6-9666fc1188ca` | | **lineItemNumber** | A merchant-defined line item number to identify each item in an order. | 15 | | **lineOrderStatus** | A system generated status for each item in the order. | `SHIPPED` | ## Procedure 1. In the left menu, click **Orders**. The **Orders** tab is displayed on the **Manage Orders** page. 2. To export specific orders, filter the number of orders displayed using the filters on the **Orders** tab. Only the filtered results displayed in the table are exported during the export operation. For example, if you set the filter criteria to **Last 7 Days**, only the orders from the last seven days are exported. 3. Click **Export**. The **Export Order Activity as CSV or JSON File** window is displayed. 4. In the **Export format** field, select one of the following: * **CSV**: Select this if you want to export CSV files. * **JSON**: Select this if you want to export a JSON file. 5. Click **Export**. A zip file containing your export is downloaded. ## Related topics * [Getting Started with the Orders Export API](/v3/api-reference/orders/exports/overview) # Filtering Orders The **Manage Orders** page displays a list that includes every order. This list can be filtered by **Order Status**, **Order Date**, **Order Total**, and **Channel** so that the list only displays orders that match the filter parameters. To view additional filters, click the **More** button. The additional options allow you to filter by most data points associated with an order, such as the customer’s name, contact information, currency, payment statuses, and more. You can apply any combination of standard filters and additional filters from the **More** menu simultaneously. ## Order Filter Options The following tables list the options when setting up standard filters and more filters. ### Standard filters The standard filters table shows the various options for standard filters. | Field | Description | | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Order Status** | The status of the order, whether **Created**, **Allocated**, or **Shipped**, or a combination of these options. | | **Order Date** | The date the order was created or modified, whether **Today**, **Last 7 days**, **Last 30 days**, or a custom date range using the calendar menu. | | **Order Total** | The total order cost within a user-specified range. | | **Channel** | The channel, whether **12** for the United States or **13** for Canada. Other channels that the user creates in fabric Experiences or via API are also available. | ### More filters The more filters table shows the various options available in the **More** menu. | Field | Description | | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Type** | Type of the order:
- **WEB** : Orders that shoppers create on storefronts.
- **Borderfree**: International orders. These are orders that will be shipped outside of the merchant's country.
- **Mobile**: Orders that shoppers create on mobile apps, not web pages.
- **CSR**: Orders that customer service representatives create for customers. | | **Currency** | The currency type with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Order subtotal** | The order subtotal within a user-specified range. | | **Order discounts** | The order discount with options to validate by **Is equal to**, **Is greater than**, or **Is lesser than**. | | **Fee total** | The total fees with options to validate by **Is equal to**, **Is greater than**, or **Is lesser than**. | | **Tax total** | The total taxes with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Customer first name** | The customer’s first name with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Customer middle name** | The customer’s middle name with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Customer last name** | The customer’s last name with validate by **Is exact match**, **Includes**, or **Excludes**. | | **Customer email** | The customer’s email address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Customer phone number** | The customer’s phone number with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Customer phone type** | The customer’s phone type with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Customer employee ID** | The ID of the employee who placed the order for the customer with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Customer account ID** | The customer account ID with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Pickup first name** | The first name of the person picking up the order with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Pickup middle name** | The middle name of the person picking up the order with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Pickup last name** | The last name of the person picking up the order with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Email** | The email address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Primary pickup phone number** | The primary pickup phone number with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Phone type** | The phone type with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Pickup type** | The pickup type with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address first name** | The first name associated with the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address middle name** | The middle name associated with the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address last name** | The last name associated with the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address phone number** | The phone number associated with the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address phone type** | The phone type associated with the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address line 1** | The first line of the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address line 2** | The second line of the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address city** | The city of the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address region** | The region, such as the state or province, of the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Ship to address postal code** | The postal code of the shipping address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address first name** | The first name associated with the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address middle name** | The middle name associated with the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address last name** | The last name associated with the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address email** | The email address associated with the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address phone number** | The phone number associated with the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address phone type** | The phone type associated with the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address line 1** | The first line of the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address line 2** | The second line of the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address city** | The city of the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address region** | The region, such as the state or province, of the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Bill to address postal code** | The postal code of the billing address with options to validate by **Is exact match**, **Includes**, or **Excludes**. | | **Payment status** | The payment status, whether **PAID**, **AUTHORIZED**, **PARTIALLY\_PAID**, or **NOT\_AUTHORIZED**, or a combination of these options. | | **Payment charged amount** | The payment charged amount with options to validate by **Is equal to**, **Is greater than**, or **Is lesser than**. | ## Setting up a Standard Filter 1. In the left menu, click **Orders**.\ The **Manage Orders** page is displayed. 2. Click one of the following filters: * **Order Status** * **Order Date** * **Order Total** * **Channel**.\ The filter options are displayed. 3. Set up the filter parameters as required. Orders that match the filter criteria are displayed. You can remove an individual filter by clicking the **X** icon corresponding to the filter in the list of filters. You can also click **Reset Filters** to remove all filters. ## Setting up More Filters 1. In the left menu, click **Orders**.\ The **Manage Orders** page is displayed. 2. Click **More**.\ The **Filters** window is displayed. 3. Click a filter option. 4. Set up the filter parameters as required and press **Enter**. 5. Click **Apply**. Orders that match the filter criteria are displayed. You can remove an individual filter by clicking the **X** icon corresponding to the filter in the list of filters. You can also click **Reset Filters** to remove all filters. # Overview fabric Orders is a distributed order management (DOM) platform that helps you manage the order fulfillment process and provide inventory details, order fulfillment, and customer service. The **Manage Orders** feature helps you to create real-time orders in the orders database, unify order data, get existing order information, track orders, update orders, add additional products to an order, process cancellations, returns, and exchanges. Additionally, you can use this feature to flag fraudulent orders, which then can be either released from hold or canceled. ### Order Statuses You can find the order status on the **Orders** and **Orders > Basic details** page. These statuses describe the current status of an individual order within the order lifecycle. The following table describes each order status: | Order Status | Description | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Shipped** | Indicates that a shipment is created. | | **Allocated** | Indicates all the items in an order are reserved. | | **Canceled** | Indicates that either fraud is detected and the order was canceled within the hold window or the payment isn't authorized. | | **Returned** | Indicates that all the items in an order have been returned. | | **Created** | Indicates that the order is created. | | **Exchanged** | Indicates that an exchange is created. The exchange is only created if all the items from the order to be exchanged have been received from the customer. | | **Picked Up** | Indicates that all the items in an order have been picked up at a specified location. | | **Partially Allocated** | Indicates that the product inventory for one or more of the items in the order are successfully reserved, but additional items are still pending reservation. | | **Partially Shipped** | Indicates multiple order statuses for a single order. At least one product in the order is shipped and the remaining products have different statuses. | | **Partially Returned** | Indicates multiple order statuses for a single order. At least one product in the order is returned and the remaining products have different statuses. | | **Partially Exchanged** | Indicates multiple order statuses for a single order. At least one product in the order is exchanged and the remaining products have different statuses. The exchanged items must be received from the customer before this status is displayed. | | **Confirmed** | Indicates the release date has passed for an order. | | **Ready For Pickup** | Indicates that all the items in an order are ready for pickup at a specified retail location. | | **Ready for Partial Pickup** | Indicates multiple order statuses for a single order. At least one product in the order is ready for pickup at a specified retail location and the remaining products have a different status. | | **Delivered** | Indicates all the items in an order are delivered. | | **Partially Delivered** | Indicates multiple order statuses for a single order. At least one product in the order is delivered and the remaining products have different statuses. | | **Hold** | Indicates that the item is available, the payment is authorized, and the customer has a brief time window to make changes to the order. | | **Error** | Indicates the order payment status returned an order payment error. | ### Payment Statuses You can find the payment status on the **Orders** page. These statuses describe the current payment status of an order within the order lifecycle. The following table describes each payment status: | Payment Status | Description | | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Authorized** | Indicates that the payment for the order has been authorized. | | **Partially paid** | Indicates multiple order statuses for a single order. At least one product in the order is paid for and the remaining products have different payment statuses. | | **Paid** | Indicates that the payment for the order has been paid. | | **Error** | Indicates that an error occurred during the payment process. Depending on your payment provider rules, a set number of payment attempts will be made before the order is canceled. | ### Allocation Statuses Allocations serve as fulfillment location records and are used by Warehouse Management Services (WMS) or Point of Sales Services (POS). You can find the **Allocation Status** on the **Allocation** and **Orders > Allocations** page. This status describes the current allocation status of each individual SKU. The following table describes each allocation status: | Allocation Status | Description | | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Allocated** | Indicates that all products in the order are allocated. | | **Pending Drop** | Indicates the order is allocated with a location number and is awaiting shipping. | | **Pending Allocation** | Indicates the order is confirmed and waiting for allocation. | | **Pending Pickup** | Indicates the order is waiting for pickup. | | **Shipped** | Indicates the order is shipped and a tracking number is created. | | **Partially Shipped** | Indicates multiple order statuses for a single order. At least one product in the order is shipped and the remaining products have different statuses. | | **Reallocated** | Indicates that the order was reallocated to a different fulfillment location. | | **Cancelled** | Indicates the order is cancelled. | | **Partially Cancelled** | Indicates multiple order statuses for a single order. At least one product in the order is canceled and the remaining products have different statuses. | | **Pending Reallocation** | Indicates the order is pending reallocation to a different fulfillment location. | | **Partial Pending Reallocation** | Indicates that one or more products in the order are pending reallocation to a different fulfillment location. | ### Shipment Statuses You can find the **Shipment status** on the **Shipment**, **Orders > Shipments**, and **Orders > Basic details** page. When shipping multiple items from different locations or carriers, each group of items in an order is assigned a separate shipment status. The following table describes each shipment status: | Shipment Status | Description | | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Shipment created** | Indicates that a shipment is created for the order. A tracking number is provided. | | **Shipment updated** | Indicates that a shipments information or details have been updated. | | **Shipment cancelled** | Indicates that a shipment is canceled. | | **Pickup created** | Indicates that a shipment is being sent to a specified retail or pickup location. | | **Pickup completed** | Indicates that the order has been picked up by the customer. | | **Shipment delivered** | Indicates that the order has been delivered to the customers address provided on the order. | | **Shipment return pending** | Indicates that a return has been requested but the items are still in transit and haven't been processed or received. | | **Shipment return received** | Indicates that a return has been processed and the items received. | | **Shipment partially delivered** | Indicates multiple order statuses for a single order. At least one product in the order is delivered and the remaining products have a different status. | ### Invoice Statuses You can find the **Invoice Status** on the **Invoice** and **Orders > Invoices** page. When shipping multiple items from different locations or carriers, each group of items in an order is assigned a separate invoice status. The following table describes each invoice status: | Invoice Status | Description | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Captured** | Indicates that the authorized amount is successfully captured. | | **Settled** | Indicates that the authorized amount is successfully settled with the customer. The means the authorized amount is fully paid or has been returned to the shopper. | | **Settle Failed** | Indicates that the settlement for the authorized amount failed. | | **Partially Settled** | Indicates that the authorized amount is partially settled. For example, 7.50 USD of the authorized 11.50 USD is paid and settled. | # Processing returns You can return an entire order or the individual products in an order. The system automatically calculates all the return prices, fees, shipping, and taxes. The return option for an order is enabled only after the payment process is initiated for the order. Orders with the **Fraud** status can't be returned. ## Prerequisites * Ensure that you have the **Orders & Inventory Editor** or **Administrator** privileges to fabric Orders. For more information, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Procedure 1. In the left menu, click **Orders**. The **Orders** tab is displayed on the **Manage Orders** page. 2. To find the order, use the [search or filter options](https://developer.fabric.inc/v3/guides/orders/order-management/filtering-orders) on the **Manage Orders** page. 3. In the orders table, click the **Order Number**. The order details are displayed on the **Basic details** tab. 4. In the top-right of the page, click **Return Order**. The **Return order** page is displayed. 5. In the **Select SKUs to return** section, click one of the following: * To refund an entire order, select the **Refund entire order** checkbox. This automatically checks every item in the order and sets the maximum return quantity for each SKU. * To refund specific items, click the checkbox next to the SKU you want to exchange and use the **+** or **-** buttons to set the quantity. The **Refund summary** is updated. 6. Click **Next**. 7. If multiple return reasons exist for each SKU, clear the **Same reason code for all SKUs** field. 8. In the **Action** field, select **Return and refund**. 9. In the **Reason code** field, select a reason code. You can add additional information for the exchange by selecting **Add sub-reason code** and by providing the information in the **Sub-reason code** field. 10. Click **Next**. 11. In the **Refund** section, enter the refund amount in the **Refund \$** field. The system automatically adjusts the order to include any previous discounts, adjustments, and taxes. More information on the refund can be reviewed in the [Refund summary](#refund-summary). 12. In the **Shipping refund** field, enter a shipping refund amount. If the customer qualified for free shipping, this field is set to \$0. 13. In the **Refund Fee** field, enter a fee refund amount. If the customer did not pay any fees, this field is set to \$0. 14. Click **Next**. The **Confirm** section is displayed with an overview of the refund. 15. Click **Confirm**. The order status is updated to **Returned**. ### Refund Summary The **Refund summary** section displays a breakdown of the total amount being refunded. Selecting more than one item to refund updates the summary accordingly. The following table describes each field in the **Refund summary** section. | Field | Description | | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Subtotal refund** | Displays the refund subtotal which excludes discounts, fees, adjustments, shipping, and taxes. This amount can be edited in the refund process. | | **Discounts refund** | Displays the discount amount applied to the order. If discount codes were applied to a product, the system automatically adjusts the refund summary. | | **Fees refund** | Displays the additional fees that were charged for an order such as an oversized item fee. This can be edited in the refund process. | | **Adjustment refund** | Displays the adjustments applied to the order if applicable. | | **Shipping refund** | Displays the shipping refund amount. This can be edited in the refund process. | | **Tax refund** | Displays the tax refund amount. Tax refund amounts can't be edited and are broken down into sub-taxes. For example, Canadian orders are broken down into two taxes, General Sales Tax (GST) and Provincial Sale Tax (PST). Use the **More Details** field to get a list of taxes. Taxes are calculated for individual products, so returns with multiple products display duplicate taxes representing each product. | | **Total refund** | Displays the total refund amount. | ### Adding Notes to an Order The **Add Notes** option is located under the **Return order** label. 1. To add notes to an order, Click **Add Notes**. The **Add notes** window is displayed. 2. Enter the note. Notes are limited to 110 characters. 3. Click **Save**. You can edit the note by clicking **Edit Notes**. Repeat step 2 and 3 to complete the update. The note is added under the **Return order** label. Notes are only saved if you complete the entire return process. # Updating a Shipping Address This topic covers the process of updating an existing orders shipping address. You can update both pickup-from-store and ship-to-home addresses. ## Prerequisites * Ensure that you have the **Orders & Inventory Editor** or **Administrator** privileges to fabric Orders. For more information, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. * Ensure that the order is in **Hold**, **Confirmed**, **Partially allocated**, or **Created** status. If the status of the order changes to **Allocated** in the order lifecycle, the order can no longer be updated with additional products. ## Procedure 1. In the left menu, click **Orders**. The **Orders** tab is displayed on the **Manage Orders** page. 2. To find the order, use the [search or filter]() options on the **Manage Orders** page. 3. In the orders table, click the **Order Number**. The order details are displayed on the **Basic details** tab. 4. Click the **More actions** button and select **Change shipping address**. The **Change address for order** page is displayed. 5. In the **Select SKUs** section, use the checkbox for **SKU ID** to select each item in the order. The shipping addresses are updated for the selected items. 6. In the **Fulfillment method** field, select one of the following options: * [Ship to Home](#ship-to-home): Use this option if you want to ship the selected products to a specific address. * [Pickup in store](#pickup-in-store): Use this option if you want to ship the selected products to a designated store pickup location. ### Ship to Home 1. To ship to a specific address, in the **Contact details** section, enter the following details: * **First name** * **Last name** * **Email** * **Phone number** * From the **Phone number type** field, select `Mobile`, `Business`, or `Home`. 2. In the **Shipping address** section, enter the following details: * **Address line 1** * (Optional) Click **Add address line** to add additional address lines. * From the **Country** field, select a Country. * **Zip code** * **Region** * **City** * From the **Shipping method** field, select a shipping method. 3. Click **Confirm**. A confirmation window is displayed. 4. Click **Yes, change all**. The address is updated and the **Delivery Summary** in the **Basic details** tab is updated with the new address for each product you selected. ### Pickup in Store 1. In the **Select pickup location** field, select a [pickup location](https://developer.fabric.inc/v3/guides/inventory/locations). 2. To ship to a pickup location, in the **Contact type** field, select one of the following: * **Primary**: Select this method to set the primary contact information. The primary contact is sent notifications for pickup and tracking details. * **Secondary**: Select this method to authorize someone other than the primary contact to pick up the order. The default for a primary contact is the customer who ordered the items unless otherwise specified. 3. In the **Contact details** section, enter the following details: * **First name** * **Last name** * **Email** * **Phone number** * From the **Phone number type** field, select `Mobile`, `Business`, or `Home`. 4. (Optional) To add additional contacts that are authorized to pick up the order, click **Add alternate pickup name**. 5. Click **Confirm**. A confirmation window is displayed. 6. Click **Yes, change all**. The address is updated and the **Delivery Summary** in the **Basic details** tab is updated with the new address for each product you selected. # Viewing Allocations The **Allocation** tab in **Manage Orders** provides a summary of your allocations containing information such as **Order Number**, **Allocation Request ID**, **Allocation Status**, **Parent Allocation ID**, **Channel**, **Item Type**, and **Allocation Date**. * To search for a specific allocation, use filter conditions. For more information, see the [Searching, Filtering, and Sorting](https://developer.fabric.inc/v3/guides/orders/order-management/filtering-orders) section. ## Prerequisites * Ensure that you have the **Viewer**, **Orders & Inventory Editor**, or **Administrator** privileges to fabric Orders. For more detailed information on these settings, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Allocation table The **Allocation** tab displays the following information: | Column name | Description | Values | | ------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | | **Order Number** | A unique order identifier. You can view the **Basic details** page by clicking the order number. | String | | **Allocation Request ID** | A unique allocation identifier. Click the request ID to view the **Allocations** detail page. | String | | **Allocation Status** | The current allocation status code for the order. | [Allocation Statuses](https://developer.fabric.inc/v3/guides/orders/order-management/overview#allocation-statuses) | | **Parent Allocation ID** | The **Parent Allocation ID** remains constant and is used to monitor all subsequent child allocations. | String | | **Channel** | The sales channel ID for the allocation. | String | | **Items Type** | An inherited attribute from Orders that classifies an item type. | `WEB_SHIP`, `WEB_PICKUP`, `WEB_SDD INTERNATIONAL`, `POS`, `POS_SHIP`, and `POS_PICKUP`. | | **Allocation Date** | The allocation creation time in the UTC format. | Date and Time | # Viewing Allocation Details The **Allocations** tab displays all the allocations associated with a specific order number. This includes the allocation date, SKU, status, and additional allocation attributes. ## Allocation Details Each allocation has its own **Allocation ID** and you can have multiple allocations for a single order. Allocations are sorted by the most recent allocation request. By default, each allocation displays **Allocation ID**, **Parent allocation ID**, **Allocation request ID**, and **Allocation date**. Clicking **View more attributes** displays the allocation attributes window with additional attributes. The following table describes the different allocation attributes in the **View more attributes** window: | Field | Description | | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Allocation ID** | A unique allocation identifier. | | **Parent allocation ID** | The **Parent Allocation ID** is initially the same as the **Allocation ID**. The **Parent Allocation ID** remains constant (isn't updated) and is used to monitor all subsequent child allocations. For example, if a new allocation is assigned to an order and the **Allocation ID** is updated, the previous ID (**Parent Allocation ID**) can still be referenced. | | **Allocation request ID** | A merchant-specified unique ID. If omitted, this is generated by fabric’s sequence generator using the Configuration service. | | **Allocation date** | The allocation creation time in the UTC format. | | **Last updated date** | A system-generated time indicating when the allocation record was last modified. | | **Location type** | The type of inventory location where the order is picked up, such as DC or Store. | | **Ship-from location name** | The Inventory location fulfilling the allocation. | | **Ship-from location number** | The inventory location number to identify the ship-from location or Buy Online Pickup from Store (BOPIS) location. | | **Ship-from location address** | The full address of the fulfillment location. | | **Shipment method** | The shipment method used to fulfill the allocation. For example, next day shipping. | | **Recipient** | The recipient details such as name, email address, and phone number. If details are unavailable, the value is set to **false**. | | **Sent date** | The date and time the allocation shipment left the facility. | | **Ship to id** | A system-generated UUID associated with `shipInfo`, generated from the Cart and Checkout (CnC) service. Note that an order can have multiple ship-to or delivery locations, however the `shipToId` is the same for items going to the same location. | | **Ship to address** | The shipping address details. | | **Type** | The allocation type.
**Allocated**: The order is allocated for fulfillment.
**Scratched**: The order is cancelled during allocation due to unavailable inventory.
**Returned**: The allocation is created for returned items. | | **Shipment type** | The shipment type, such as, `Pickup`, `Ship_To_Store`, or `Ship_To_Home`, that's selected by the customer during checkout. This attribute is inherited from the `order.shipInfo` during allocation creation. | | **Order sub type** | An order subtype attribute that contains additional information on the order type. Use this setting to include additional order data such as region or device type which isn't included in the order types, such as *IOS*, *ANDROID*, and *INTERNATIONAL* . | | **Currency** | The currency used for the order. | ### Allocation table The following table describes the additional attributes found in each individual allocation: | Field | Description | | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Line number** | A system-generated number assigned to each item in an allocation. | | **SKU** | The stock keeping unit (SKU), unique identifier of item. Clicking the SKU displays the **Sku Details** window containing pricing and attribute information. | | **Allocated** | Indicates if the item is allocated. A **0** indicates the item isn't allocated, a **1** indicates the item is allocated. | | **Shipped** | Indicates if the item is shipped. A **0** indicates the item isn't shipped, a **1** indicates the item is shipped. | | **Cancelled** | Indicates if the item is cancelled. A **0** indicates the item isn't cancelled, a **1** indicates the item is cancelled. | # Viewing Order Basic Details To view an orders **Basic Details**, click the order number in the **Manage Orders** > **Orders** table. The **Basic details** tab displays an overview of the orders attributes, status, delivery details, customer details, and payment details. ## Basic Details Tab As an order continues through the order lifecycle, attributes are continually updated and added to the order. These attributes are displayed in the **Basic details** tab. The **Basic Details** tab contains the following sections: * [Order Summary](#order-summary) * [Customer Details](#customer-details) * [Order Status](#order-status) * [Delivery Summary](#delivery-summary) * [Payment Details](#payment-details) When an order has more than 16 attributes, the **View more attributes** button is displayed. If you click **View more attributes**, all the order attributes are displayed in a new window with searching capabilities. The following table describes the default order attributes: | Field | Description | | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Order ID** | Displays the unique identifier of the order. | | **Order type** | Specifies the workflow used to create the order. For example, Storefront orders have a different workflow than Call Center orders. fabric Orders service offers default configurations for Storefront, Call Center, Point of Sale, iOS, Android, and International. | | **Order subtype** | Indicates an order subtype attribute that contains additional information on the order type. This allows additional order data to be captured such as region or device data which was not captured in the order type such as `IOS`, `ANDROID`, and `INTERNATIONAL`. | | **Date Created** | Displays the order creation time in UTC. | | **Channel** | Displays the sales channel ID. | | **Order Total** | Specifies the total amount to be charged for the order. This is calculated by taking `orderSubTotal` - `orderDiscountTotal` + `orderFeeTotal` + `orderTaxTotal`. This value also includes the currency that was used for the order. | | **fraudStatus** | Displays the current fraud status. | | **fraudCheckSessionId** | Displays the unique identifier of the fraud status. | | **fraudCheckStatus** | Indicates if the fraud status has changed. | | **fraudCheckTransId** | Displays a system-generated fraud transaction ID used to track the transaction fraud status. | | **fraudScore** | Displays a fraud score used to flag an order for fraud, ranging from 0-100. | | **loyaltyStatus** | Indicates the customers current loyalty status at the time of order creation. | | **createdDate** | Displays the fraud status creation time in UTC. | ### Order Summary The **Order summary** section displays an overview of the total costs associated with an order such as discounts, fees, taxes, and adjustments. ### Customer Details The **Customer Details** section displays an overview of the customer details for an order. To edit a customers basic details, click **Edit**. The **Edit customer details** window is displayed. You can update the following details: * **First name** * **Last name** * **Phone number** * **Email** * **Middle name** * **Phone type** ### Order Status The **Order Status** section displays a high-level overview for each SKUs position in the order lifecycle. For more information on each individual order status, visit the [Order Statuses](https://developer.fabric.inc/v3/guides/orders/order-management/overview#order-statuses) section in the Overview. Orders are separated into shipping groups based on their allocation and shipping methods. For instance, if one item is for pickup only and other items in the same order qualify for free standard shipping, the order is split into Group 1 and Group 2. Each group follows its own order status lifecycle. Additionally, each group shows the following details based on whether the order is for **Pickup** or **Delivery**. * **Fulfillment Details**: Displays the customer's shipping information including the customer name, shipping address, city, state code, zip code, and country. * **Shipping Method**: Displays the orders selected shipping method. For more information, visit the [Shipping Methods](https://developer.fabric.inc/v3/guides/orders/settings#shipment-methods) section in Settings. * **Pick up details**: Displays the orders primary pick up name and the pick up location. #### SKU Details If you want to view the details of a SKU, click the **SKU**. The **Sku Details** window is displayed containing two tabs, **Pricing** and **Attributes**. * For more information on **Attributes**, visit the [Product Attributes](https://developer.fabric.inc/v3/guides/product-catalog/attributes/product-attributes-overview) section in the Product Catalog documentation. * For more information on **Pricing**, visit the [Pricing](https://developer.fabric.inc/v3/guides/offers/pricing) section in the Offers documentation. ### Delivery Summary The **Delivery Summary** section displays an overview of the delivery containing shipping location information, the current shipping status, and the total number of packages. To view more detailed shipment information, you can click **Shipment 1 of X**. The **Shipments** detail tab is displayed. ### Payment Details The **Payment Details** section displays an overview of the orders payment attributes. The following table describes the default payment attributes: | Field | Description | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Payment type** | Indicates the payment type, for example, credit card payment providers can be Visa, Mastercard, and American express. | | **Card number** | Displays the card used to complete the transaction. | | **Expiration date** | Displays the card expirations month and year. | | **Payment placed on** | Displays a system-generated time created during shipment. This time can instead be captured at checkout during order creation depending on your merchant-defined settings. | | **Refund amount** | Specifies the merchant-defined refund amount. If no refund is issued, this attribute remains blank. | | **Bill-to** | Displays the customer's billing information, including name, email, and phone details. | | **Bill-to-address** | Displays the customer's billing address information including, address lines, city, region, postal code, and country code if applicable. | | **Fabric payment reference** | Displays a system-generated UUID referenced internally for Invoice and Orders services. | | **Payment provider** | Indicates the payment provider that processed the payment. | | **Payment token** | Displays the payment token provided by the payment provider. | | **Payment status code** | Indicates the current payment status code. For more information visit [Payment Statuses](https://developer.fabric.inc/v3/guides/orders/order-management/overview#payment-statuses) in the manage orders overview documentation. | | **Payment counter** | Displays a sequential or incremental counter associated with a payment for an order. This is used in refund scenarios to identify the specific payment for refund. | | **Transaction id** | Displays the system-generated transaction ID. | | **Partial capture** | Indicates whether the payment capture is partial. A partial capture is the release of funds that don't equal the total authorized payment. For example, 7.50 USD of the authorized 10.99 USD payment. The system returns `true` when the payment is captured partially; otherwise, it returns `false`. | | **Final capture** | Indicates whether the payment capture is final. The point of final capture is when all authorized funds have moved from the customer to the merchant and the payment is successful. The system returns `true` when the payment capture is final; otherwise, it returns `false`. | | **Order source** | Displays a merchant-defined source indicating where an update was initiated. There are no predefined values; for example, values can be Customer Service Representative (CSR), Point-of-Sale (POS), and Web (e-commerce). | | **Invoice number** | Displays the merchant-defined unique invoice number. If omitted, this is generated by fabric’s sequence generator using the Configuration service. | # Viewing Invoice Details The **Invoices** tab displays any invoices associated with a specific order. This includes shipping, returns, appeasement, and other invoice types. ## Invoice Details Each invoice contains a number indicating the total number of invoices associated with an order, the specific invoice number, and the invoice status. Invoices are separated by invoice type. Each invoice contains the following attribute details: | Field | Description | Value | | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | | **Invoice type** | The current invoice type code for the order. | `RETURN`, `SHIPPING`, `APPEASEMENT`, `ORDER_DONATION`, `ORDER_CARRY`, `EXCHANGE` | | **Invoice total** | The total amount to be charged for the invoice. | String | | **Invoice date** | Indicates the time the invoice was created in UTC format. | String | | **Shipment number** | A merchant-specified shipment number for an invoice. | String | | **SKU** | The stock keeping unit (SKU), unique identifier of item. | String | | **Price / unit** | Indicates the default or base price for each unit of a product.

For more information on product pricing, visit the Offers [Pricing documentation](https://developer.fabric.inc/v3/guides/offers/pricing). | String | | **Qty** | Indicates the quantity of a Product or SKU. | Number | | **Invoice Amount** | Indicates the total amount charged for an item in an invoice. | String | When an invoice has more than 4 attributes, the **View more attributes** button is displayed. Clicking **View more attributes** displays all the invoice attributes in a new window with searching capabilities. For more information on the available invoice attributes, visit the [Invoices API reference documentation](https://developer.fabric.inc/v3/api-reference/orders/invoices/get-invoice-by-id). The 200 response displays all possible default invoice attributes and descriptions for each attribute. This list doesn't include custom attributes. # Viewing Shipment Details The **Shipments** tab displays all the shipments associated with a specific order number. This includes the ship date, method, status, fulfillment details, tracking information, and delivery date. Depending on the allocation location, item, fulfillment logic, and shipping method selected at checkout, multiple shipments might be required for a single order. ## Shipment Details By default, each shipment displays **Fulfillment details**, **Ship date**, **Shipping Method**, and **Delivery date**. Clicking **View more attributes** displays the shipment attributes window with additional attributes. The following table describes the different shipment attributes in the **View more attributes** window: | Field | Description | | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Fulfillment details** | The name, address, and email details for the primary recipient. | | **Ship date** | The shipment time in UTC format. | | **Shipping method** | The shipment method used to fulfill the allocation. For example, next day shipping. | | **Delivered Date** | The delivery date. Initially, this value is null. Once delivery is complete, the date and time is displayed in UTC format. | | **Master tracking number** | The tracking number for all cartons in the shipment. | | **Location Number** | A unique value used to identify the **Ship from** location. This must be the `locationNumber` stored in the fabric Location service. | | **Location type** | The location type. For example, a distribution center (DC) or warehouse. | | **Shipment ID** | A system-generated shipment ID (UUID). | | **Shipment number** | A merchant-specified shipment number for an invoice. | | **Shipment type** | The shipment type, such as, `Pickup`, `Ship_To_Store`, or `Ship_To_Home`, that's selected by the customer during checkout. This attribute is inherited from the `order.shipInfo` during allocation creation. | | **Allocation ID** | A system-generated allocation ID (UUID) from the Create allocation endpoint. Allocation occurs prior to shipment creation. An `allocationId` is mandatory to create a shipment. | | **Vendor ID** | The unique Vendor ID. This ID is used in dropshipping scenarios to indicate the vendor responsible for the given item. | | **Ship from** | The allocation location name and number. | | **Ship from address** | The full address of the fulfillment location. | | **Ship to** | The shipping address details. | | **Ship to id** | A system-generated UUID associated with `shipInfo`, generated from cart and checkout (CnC) service. **Note**: An order can have multiple ship-to (delivery) locations and items going to the same location share one `shipToId`. | | **PO Number** | A merchant-defined purchase order number. | | **Status Code** | The current shipment [status code](https://developer.fabric.inc/v3/guides/orders/order-management/overview#shipment-statuses) for the order. | | **Reshipment reason code** | The reason provided for a reshipment. For example, missing order. | | **Updated at** | The time the last update to shipment was made in UTC format. | | **Recipient name** | The primary contact's name. | | **Recipient email** | The primary contact's email. | | **Recipient phone** | The primary contact's phone number. | ## Package Details Each shipment section contains a package table with information on the number of packages, a tracking number, and the package shipment status. Clicking the arrow next to the shipping status expands the package details section. This reveals additional information on the package details such as the SKUs, quantity of items, cost, events, and attributes. By default, the **SKUs** tab is selected. ### SKU Details If you want to view the details of a SKU, click the **SKU**. The **Sku Details** window is displayed containing two tabs, **Pricing** and **Attributes**. * For more information on **Attributes**, visit the [Product Attributes](https://developer.fabric.inc/v3/guides/product-catalog/attributes/product-attributes-overview) section in the Product Catalog documentation. * For more information on **Pricing**, visit the [Pricing](https://developer.fabric.inc/v3/guides/offers/pricing) section in the Offers documentation. ### SKUs | Field | Description | | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **SKU** | The stock keeping unit (SKU) used as a unique identifier for an item. Clicking the SKU displays the **Sku Details** window containing pricing and attribute information. | | **Quantity** | Indicates the quantity of a product or SKU. | | **SKU Cost** | The total cost of the SKUs before discounts and promotions. | | **Total Cost** | The total cost paid by the customer including discounts and promotions. | ### Event Tracker | Field | Description | | ------------------- | --------------------------------------------------------------------- | | **Ship from** | The allocation location name and number. | | **Ship to** | The shipping address details. | | **Tracking number** | The carton tracking number. Each carton has a single tracking number. | | **Activity** | Displays shipment-specific events provided by the carrier. | | **Date** | The time and date the event was recorded in UTC format. | | **Location** | The location the event occurred, if applicable. | ### Attributes | Field | Description | | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Promised Delivered Date** | The promised delivery date in UTC format provided by the seller. | | **Carton Number** | A merchant-defined unique identifier for a carton. | | **Tracking number** | The carton tracking number. Each carton has a single tracking number. | | **Carton Type** | The carton type provided to the carrier. For example, package. | | **Est. ship date** | The estimated ship date in UTC format provided by the seller based on availability of items, processing time, delivery location, and the selected shipping method. | | **Est. delivery date** | The estimated delivery date in UTC format provided by the carrier based several factors including the selected shipping method and delivery location. | | **Shipment method** | The shipment method used to fulfill the allocation. For example, next day shipping. | | **Shipment carrier** | The shipment carrier name. | | **Total weight** | The cartons total weight. | # Viewing an Orders Activity Log The order details **Activity log** tab displays a history of all the inventory and shipping events for an order. ## Activity log filtering You can filter the activity log history by using one or more of the following filters: | Filter name | Description | Values | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | | **Date** | The date filter sets a look-back window for your selected time frame. For example, selecting **Last 7 days** displays the activity logs for the last 7 days and filters out logs that are older than the selected time frame. To set a **Custom date** filter, select the **Custom date** option, then click the calendar icon and select the desired start date followed by the desired end date. | **Today** **Last 7 days** **Last 30 days** **Custom date** | | **Type of activity** | Activities are split into 4 different types, Order, Invoice, Shipment, and Allocation. Selecting one or more activity type filers an orders activity logs to display only that activity type. | **Order** **Invoice** **Shipment** **Allocation** | | **Updated by** | The [`tenantId`](https://developer.fabric.inc/v3/guides/settings/account-details/getting-the-account-id) of the user that made an update or change. Automatic updates don't include an **Updated by** value. | `tenantId` Null `-` | ## Activity log table The **Activity log** displays a table with the following columns and values: | Column name | Description | Values | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Date** | The day of the week, month, day, year, and time the change or update was made. | Date | | **Updated by** | The [`tenantId`](https://developer.fabric.inc/v3/guides/settings/account-details/getting-the-account-id) of the account that made an update or change. Automatic system updates such as order enrichment and order natural hold don't include an **Updated by** value. | `tenantId` Null `-` | | **Type of activity** | Activities are split into 4 different types, Order, Invoice, Shipment, and Allocation. The activity type corresponds to each tab for the current order. For example, if an orders shipment information was updated, the activity type value for that entry in the log will be **Shipment**. The updates are displayed in the **Shipments** tab for the order. | **Order** **Invoice** **Shipment** **Allocation** | | **Document number** | A unique identifier that corresponds to one of the following tabs, **Basic details**, **Allocations**, **Shipments**, and **Invoices**. For example, `65d5103a654a506e00d61ed7` is the **Order ID**. Clicking the link displays the **Basic details** tab for your current order. | String | | **Details** | Details on the updates and existing values, this includes values that haven't changed but are related to the activity type. When the details of a log are too long to display, a **View more updates** link is displayed. Clicking **View more updates** displays all the data associated with a specific log. For more information on each parameter listed in the details, visit the order endpoint corresponding to the type of activity. | [Shipment endpoint](https://developer.fabric.inc/v3/api-reference/orders/shipments/get-shipment-by-id) [Order endpoint](https://developer.fabric.inc/v3/api-reference/orders/orders/get-order-by-order-id) [Invoice endpoint](https://developer.fabric.inc/v3/api-reference/orders/invoices/get-invoice-by-id) [Allocation endpoint](https://developer.fabric.inc/v3/api-reference/orders/allocations/get-allocation-by-id) Clicking the 200 response for an endpoint displays the response body with each parameter and its description. | ## Related resources * [Orders API documentation](https://developer.fabric.inc/v3/api-reference/orders/orders/overview) * [Orders FAQ](https://developer.fabric.inc/v3/api-reference/orders/orders-faq-s) # Viewing Invoices The **Invoice** tab in **Manage Orders** provides a summary of your invoices containing information such as, **Order Number**, **Invoice Number**, **Invoice Total**, **Invoice Status**, **Invoice Type**, and the **Settlement Date**. * To find an invoice, in the search bar, type the search criteria and press **Enter**. You can refine the search results by applying the filter conditions and sorting the results in ascending or descending order. For more information, see the [Searching, Filtering, and Sorting](https://developer.fabric.inc/v3/guides/orders/order-management/filtering-orders) section. ## Prerequisites * Ensure you have at least one order that meets the current search or filter conditions. If your search or filter criteria don't match any orders, you will see the message **No Orders Found** displayed in the table. * Ensure you have the **Viewer**, **Orders & Inventory Editor**, or **Administrator** privilege for fabric Orders. For more information, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) document. ## Invoice Table The **Invoice** tab displays the following information: | Field | Description | Values | | ------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | **Order Number** | Displays the unique order identifier. You can view the **Basic details** page by clicking the order number. | String | | **Invoice Number** | Displays the merchant-defined unique invoice identifier. To view the invoice details page, click the invoice number. | String | | **Invoice Total** | Displays total amount charged for the invoice. | String | | **Invoice Status** | Indicates current status code for the invoice associated with the order. | [Invoice Statuses](https://developer.fabric.inc/v3/guides/orders/order-management/overview#invoice-statuses) | | **Invoice Type** | Indicates the current code for the type of invoice associated with the order. | `RETURN`, `SHIPPING`, `APPEASEMENT`, `ORDER_DONATION`, `ORDER_CARRY`, and `EXCHANGE` | | **Settlement Date** | The invoice settle time in UTC format. | String | # Viewing Orders The **Orders** tab in **Manage Orders** provides a summary of your orders containing information such as **Order Number**, **Customer Name**, **Order Total**, **Order Status**, **Payment**, and **Order Created**. You can search for an order, use filter conditions to tailor your search, and sort the results in ascending or descending order. For more information, see the [Searching, Filtering, and Sorting](https://developer.fabric.inc/v3/guides/orders/order-management/filtering-orders) document. ## Prerequisites * Ensure you have at least one order that meets the current search or filter conditions. If your search or filter criteria don't match any orders, you will see the message *No Orders Found* displayed in the table. * Ensure you have the **Viewer**, **Orders & Inventory Editor**, or **Administrator** privilege for fabric Orders. For more information, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) document. ## Order table The **Orders** tab displays a table with the following columns and values: | Column name | Description | Values | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | **Order Number** | The unique order identifier. Clicking the order number takes you to the Orders **Basic details** tab where you can view additional details such as an orders attributes and history. | String | | **Customer Name** | The name of the customer and customer account ID. | String | | **Order Total** | The total amount to be charged for the order. This is calculated by taking `orderSubTotal` - `orderDiscountTotal` + `orderFeeTotal` + `orderTaxTotal`. This value also includes the currency that was used for the order. | Total cost and currency: \$83.01 USD | | **Order Status** | The current status code for the order. | [Order Status](https://developer.fabric.inc/v3/guides/orders/order-management/overview#order-statuses) | | **Payment** | The payment status code for the order. | [Payment Status](https://developer.fabric.inc/v3/guides/orders/order-management/overview#invoice-statuses) | | **Order Created** | The order creation time in UTC. | Date and Time | ### Order Information This value displays the total number of orders in the order table. When filtering, this value changes based on the filtered results. For example, filtering by the **Last 7 days** results in **Total Orders** equal to 2431. Filtering by **Today** updates the **Total Orders** number to 153. # Viewing Shipments The **Shipment** tab in **Manage Orders** provides a summary of your shipments containing information, such as **Order Number**, **Shipment number**, **Shipment status**, **Ship date**, and **Master Tracking**. * To search for a specific shipment, use filter conditions. For more information, see the [Searching, Filtering, and Sorting](https://developer.fabric.inc/v3/guides/orders/order-management/filtering-orders) section. ## Prerequisites * Ensure that you have the **Viewer**, **Orders & Inventory Editor**, or **Administrator** privileges to fabric Orders. For more detailed information on these settings, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Shipment Table The **Shipment** tab displays the following information: | Field | Description | Values | | ------------------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | **Order Number** | A unique order identifier. You can view the **Basic details** page by clicking the order number. | String | | **Shipment number** | A merchant-defined unique shipment identifier. Click the shipment number to view the **Shipments** details page. | String | | **Shipment status** | The current shipment status code for the order. | [Shipment Statuses](https://developer.fabric.inc/docs/overview-1#shipment-statuses) | | **Ship date** | The order shipment time in the UTC format. | date-time | | **Master Tracking** | The tracking number for all cartons in the shipment. | String | # Overview Build a centralized source of order, inventory, and warehouse information with fabric Orders. fabric Orders enable you to receive, track, and fulfill customer orders across sales channels, allow customers to track their orders, route orders through warehouses based on the customer’s location, and more. Orders is designed to streamline and simplify order management and fulfillment processes during and after an order is created. ## Key Features Orders is divided into five separate sections accessible from the left column in fabric Copilot: * [Manage orders](/v3/guides/orders/order-management/overview) allows you to create orders in the database in real-time, unify order data, get existing order information, track orders, update orders, add additional products to an order, process cancellations, returns, and exchanges. * [Fulfillment](/v3/guides/orders/order-fulfillment-logic/order-fulfillment-logic) allows you to create fulfillment rule sets, which are used to direct orders to different fulfillment locations based on characteristics, such as geo-location, warehouse location, item price, order attribute type, and more. * [Activity Log](/v3/guides/orders/activity-log) displays your order import and export history. * [Alerts](/v3/guides/home/alerts/alerts-overview) notifies you of potential issues using the data within your account. * [Settings](/v3/guides/orders/settings/overview) contains additional features and configurations such as Order Attributes, Shipping Methods, Backorder & Preorder, Policies, and Alerts. ## Role-Based Access Control (RBAC) fabric Copilot provides the ability to restrict the access of different users to information and actions available to them through roles. For more information and instructions on how to set up these controls, see the [RBAC](/v3/guides/settings/rbac/role-based-access-control-orders-roles) documentation. ## Integration Examples **Allocation with fabric Orders:** After creating an order using fabric Orders service, the orders service sends a request to fabric’s Allocation module for order allocation. Allocation calls Order Fulfillment Logic (OFL) and OFL rules to get the location number where the inventory is available based on the currently defined OFL rule system. After completion, OFL provides the necessary information to the Allocation service, and Allocation calls the inventory service to reserve items as needed, adjusting your inventory counters in real-time. The Order fulfillment process is set up by integrating your existing fulfillment systems, such as a Warehouse Management System (WMS), with fabric's Allocation APIs. This integration enables allocation-related events to start fulfillments in external systems, and allows external systems to make callbacks to the fabric Allocation APIs. **Shipments & Tracking with fabric Orders:** fabric's 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. Additionally, you can set up shipment tracking updates for orders by integrating your carrier tracking service with the Shipment Tracking APIs. These APIs enable the external carrier tracking service, such as ParcelLab, to post shipment events. With the order created, shipped, and tracking enabled, you can manage the order. This includes Cancellations, Appeasements, Exchanges, Credits, Returns, and more using the [Orders APIs](/v3/api-reference/orders/orders--3-0-0) or [Manage Orders](/v3/guides/orders/order-managment/overview) UI as needed. **Notifications with fabric Orders:** Optionally, you can configure email updates for order transactions by integrating your preferred email service with the Notification APIs. This integration enables fabric Orders to deliver real-time email notifications for specific order update events. **Fraud with fabric Orders:** To establish fraud prevention, you can integrate your preferred fraud service with the Fraud APIs. These APIs primarily allow for hold and release actions on the order, providing an effective means of preventing fraudulent activities. ## Benefits * **Customer Lifetime Value (CLTV)**: Manage the customer lifetime vale through omnichannel orders. With all your data in one place, improve customer service by reducing call volume, average handle time, and increase support satisfaction. Improve order orchestration by reducing split shipments, OOS cancellations, and increasing on time delivery rate. As a multi-brand and multi-channel retailer, improve order processing time, reduce inventory cancellations, and subsequently increase support satisfaction. * **Sell-through Rate (STR)**: You can increase sell-through rate by unifying and improving the Buy Online and Pickup in Store (BOPIS) experience, ship from store experience, and improved store inventory management. * **Storefront Conversion Rate (CVR)**: Using real-time inventory coupled with backorder and preorder capabilities, you can increase sell-through rate, website conversion, and site merchandiser operational efficiency. Additionally, you can optimize your inventory and fulfillment by reducing split shipments, OOS cancellations, and increasing on time delivery rate. ## Example Use Cases * **Exporting Sales and Reports Data**: Using fabric Orders export API, you can export data to be utilized for business intelligence or store the data externally as needed. The exports service flattens the JSON structure into columns, so that an external columnar database, such as an SQL database, can easily ingest the data. Exports can also be generated in fabric Copilot for ad-hoc analysis. * **Fulfilling Backorders & Preorders**: During the order creation process within fabric Orders service, 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 your 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 your configuration, and updates regarding consent to delay are managed through the consent to delay API endpoint. * **Omnichannel Store Fulfillment**: You can maximize return on existing investments in physical locations, such as brick and mortar stores, by connecting ecommerce sales to store inventories that are eligible for direct-to-consumer shipments. By bringing store inventory into the fulfillment network, you can expand capacity for ecommerce sales and increase the available assortment for online shoppers. * **Optimized Order Fulfillment Logic**: Using fabric's Order Fulfillment Logic (OFL) you can configure how orders are handled for different items, locations, sales, shipping types, and more. For example, multi-location fulfillment allows you to allocate orders to specific fulfillment locations based on factors, such as shipping type, geographic distance, and inventory availability. This flexibility enables efficient order processing and reduces shipping times. For same-day delivery optimization, fabric's geolocation feature can be utilized. It considers the customer's location and searches for inventory networks within a set distance that can fulfill the order the fastest. This feature can be configured with specific boundaries and inventory balancing options to ensure the fastest possible delivery. Split shipment management is another key feature, allowing orders to be fulfilled from multiple locations when necessary. This can be set up at both the order and item level, with options to allow partial fulfillment. This functionality is particularly useful when dealing with complex inventory situations or when aiming to optimize delivery times for multi-item orders. ## Related topics * [Product Catalog](/v3/guides/product-catalog/overview) * [Inventory](/v3/guides/inventory/overview) * [Orders API reference](/v3/api-reference/orders/orders--3-0-0) * [Inventory API reference](/v3/api-reference/inventory/inventory--3-0-0) * [Orders API developer guides](/v3/api-reference/orders/developer-guide/order-and-inventory-import) # Backorder & Preorder Settings Backorders are defined as orders for products that aren't currently available for fulfillment. Preorders are defined as orders for products that aren't yet released. ## Prerequisites * Ensure that you have **Administrator** or **Editor** privileges to fabric Orders. For more detailed information on these settings, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Procedure In the left menu, click **Orders** > **Settings** > **Backorder & Preorder**. The **Backorder & Preorder Settings** page is displayed. ### Allow backorders 1. In the **Allow Backorders** field, select the **On** option. Additional fields are displayed. 2. In the **Consent to delay should start** field, select one of the following options: * From order created date. * From ship by date. 3. In the **Notification Settings** and **Auto-cancellation Settings** fields, do the following: * In the first **Notification Setting** field, set the number of days past the promised order ship-by date before sending the first consent-to-delay notification to the customer. * In the second **Notification Setting** field, set the number of days past the promised order ship-by date before sending the second consent-to-delay notification to the customer. * In the first **Auto-cancellation Setting** field, set the number of days to cancel the order if the customer doesn't respond to either of the first two notifications. * In the second **Auto-cancellation Setting** field, set the number of days to cancel a backordered order when the item has not yet been fulfilled, even if the customer had previously agreed to a consent-to-delay notification. 4. Click **Save**. The backorder settings are updated and saved for all orders. ### Allow preorders 1. In the **Allow Preorders** field, select the **On** option. 2. Click **Save**. ## Related Topics * [Order Attributes](/v3/guides/orders/settings/order-attributes) * [Shipping Methods](/v3/guides/orders/settings/shipping-methods) * [Order Policies](/v3/guides/orders/settings/policies) * [Order Alerts](/v3/guides/orders/settings/order-alerts) # Order Alerts The Order **Alerts setup** page displays an overview of the currently configured order alerts. Order alerts are used to monitor trailing metrics that can affect revenue and efficiency such as returns, cancellations, reorder rates, payment failures, and more. Alerts are classified based on severity thresholds such as low, medium, and high severity levels. You can view the current status of all alerts on the **Home** > **Alerts** page. ## Alert Table Field Descriptions | Field | Description | | ---------------- | ----------------------------------------------------------------------------------------------------------------------------- | | **Alert name** | The alert name assigned when creating the alert. | | **Document** | The module within **Orders** that the alert is for. The options are **Order**, **Invoice**, **Allocation**, or **Inventory**. | | **Status** | The current status, such as active or inactive, of the alert. | | **Created by** | The tenant id of the user who created the alert. | | **Last updated** | A system-generated time indicating when the allocation record was last modified. | ## Creating Order Alerts 1. In the left menu, click **Orders** > **Settings** > **Alerts**. The **Alerts Setup** page is displayed. 2. Click **Create Alert**. The **Create Alert** page is displayed. 3. In the **Basic Information** section, do the following: * Enter an alert name. For example, *Low Orders Allocated*. * Optionally provide an alert **Description**. 4. In the **Alert scope** section, do the following: * In the **Document** field, select a document type. * In the **Template** field, select a template. Depending on the document type you select, the available templates for the document type are displayed. If you want to create a custom alert, follow the instructions in the [Creating fabric Alerts](https://developer.fabric.inc/v3/guides/home/alerts/creating-alerts) documentation. * In the **Low Severity** field, enter a number representing the low severity threshold to trigger a low alert. * In the **Medium Severity** field, enter a number representing the medium severity threshold to trigger a medium alert. * In the **High Severity** field, enter a number representing the high severity threshold to trigger a high alert. 5. In the **Alert notification** section, select the **Notify by email** as required. If you don't select the **Notify by email** field, email notifications aren't sent to users who are subscribed to alerts. However, the alert is still displayed on the **Home** > **Alerts** page. If you select the **Notify by email** field, fabric automatically sends email alert notifications to users who have subscribed to alerts. For more information on how to subscribe to an alert, see the [Managing fabric Alerts](https://developer.fabric.inc/v3/guides/home/alerts/managing-alerts) documentation. ## Editing an Alert 1. In the left menu, click **Orders** > **Settings** > **Alerts**. The **Alerts Setup** page is displayed. 2. In the **Alert name** column, click an alert. The **View Alert** page is displayed. You can edit the details in the **Basic Information**, **Alert Scope**, and **Alert notification** sections. For more information on each of the fields, see the [Creating Order Alerts](#creating-order-alerts) section. 3. To save the alert, click **Edit**. The edits are saved and the **Last updated** field in the **Alerts Setup** page is updated. ## Deactivating Alerts **Note:** Currently, alerts can't be deleted. You can only deactivate an alert if you don't wish to receive a notification. 1. In the left menu, click **Orders** > **Settings** > **Alerts**. The **Alerts Setup** page is displayed. 2. In the **Alert name** column, click an alert. The **View Alert** page is displayed. 3. Click the **Active** toggle. The deactivate alert window is displayed. 4. Click **Yes, Deactivate**. The **Active** toggle now displays **Inactive**. The system auto saves these changes. 5. To return to the **Alerts Setup** page, click **Cancel** The status of the alert is set to **Inactive** in the **Status** column in the alert setup table . ## Related Topics * [Order Attributes](/v3/guides/orders/settings/order-attributes) * [Shipping Methods](/v3/guides/orders/settings/shipping-methods) * [Backorders and Preorders](/v3/guides/orders/settings/backorder-preorder) * [Order Policies](/v3/guides/orders/settings/policies) # Order Attributes Order attributes let you create a range of custom attributes you can apply to Orders, Invoices, Locations, Networks, and more. For example, you could create a custom attribute that would allow customers to select gift wrapping at checkout. To navigate to the **Attributes** page, click **Settings** in the left menu and then select **Attributes**. You can search for an attribute, use filter conditions to tailor your search, and sort the results in ascending or descending order. ## Attributes Table Field Descriptions The Attributes table displays a list of all previously created **Attributes**. | Field | Description | | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Name** | The attribute name assigned when creating the attribute. | | **Section** | The section within **Orders** that the attribute field will be used in. The options are **Location**, **Order**, **Shipment**, **Invoice**, **Allocation**, or **Inventory**. | | **Data type** | The data type associated with the attribute. For example, String, Boolean, Double, or Enum. | | **Mandatory** | Determines if the attribute is mandatory. Mandatory attributes must be provided when making API calls to the **Section** its assigned to. The value can be **Yes** or **No**. | ## Creating Order Attributes 1. In the left menu, click **Orders** > **Settings** > **Attributes**. The Attributes page is displayed. 2. Click **Create Attribute**. The **Create Attribute** page is displayed. 3. In the **Attribute name** field, enter an attribute name. 4. To make the attribute mandatory, select the **Mandatory attribute** field. 5. (Optional) In the **Description** field, enter a description. 6. In the **Data type** field, select a data type. For example, *Integer* or *Boolean*. 7. In the **Document** field, select a document type. This field is used to map the attribute to the fabric API endpoint. For example, if you select *inventory* and the attribute is a mandatory attribute, you are required to provide this attribute and its value when making an API call to inventory. 8. In the **Object** field, select an object. The object field is used to further classify where an attribute lives. For example, if you select the **Order** document type and **shipInfo** object. The attribute lives under the **order.shipInfo** object as the **order.shipInfo.shopToType** attribute. 9. Click **Save**. The attribute is added to the attribute table on the **Attributes** page. ## Editing an Attribute 1. In the left menu, click **Orders** > **Settings** > **Attributes**. The **Attributes** page is displayed. 2. In the **Name** column of the attribute table, click an attribute. The **Edit Attribute** page is displayed. Note that you can only edit the **Description** and **Object** values. 3. To save edits to the attribute, click **Save**. The edits are saved. ## Deleting Attributes 1. In the left menu, click **Orders** > **Settings** > **Attributes**. The **Attributes** page is displayed. 2. In the attribute table, hover over the attribute you wish to remove and click the delete icon. The **Are you sure you want to delete this attribute?** page is displayed. 3. Click, **Yes, Delete**. The attribute is deleted and removed from the attribute table on the **Attributes** page. ## Related Topics * [Shipping Methods](/v3/guides/orders/settings/shipping-methods) * [Backorders and Preorders](/v3/guides/orders/settings/backorder-preorder) * [Order Policies](/v3/guides/orders/settings/policies) * [Order Alerts](/v3/guides/orders/settings/order-alerts) # Overview Use the Order Settings menu to manage order attributes, shipping methods, policies, alerts, backorders, and preorders. ## Order attributes Order attributes are used to create a range of custom attributes you can apply to Orders, Invoices, Locations, Networks, and more. For example, you could create a custom attribute that would allow customers to select gift wrapping at checkout. * [Creating Order Attributes](/v3/guides/orders/settings/order-attributes#creating-order-attributes) * [Editing Order Attributes](/v3/guides/orders/settings/order-attributes#editing-an-attribute) ## Shipping methods Shipping methods determine how products are delivered to your customers. Examples of shipping methods include domestic, international, free shipping, and express delivery. * [Creating Shipping Methods](/v3/guides/orders/settings/shipping-methods#creating-shipping-methods) * [Editing Shipping Methods](/v3/guides/orders/settings/shipping-methods#editing-shipping-methods) ## Backorder & Preorders Backorders are defined as orders for products that aren't currently available for fulfillment. Preorders are defined as orders for products that aren't yet released. * [Enable Backorders](/v3/guides/orders/settings/backorder-preorder#allow-backorders) * [Enable Preorders](/v3/guides/orders/settings/backorder-preorder#allow-preorders) ## Policies Policies enable you to define how your business handles returns, cancellations, and exchanges. * [Creating Policies](/v3/guides/orders/settings/policies#creating-a-policy) * [Editing Policies](/v3/guides/orders/settings/policies#managing-policies) ## Alerts The Order Alerts setup page displays an overview of the currently configured order alerts. Order alerts are used to monitor trailing metrics that can affect revenue and efficiency such as returns, cancellations, reorder rates, payment failures, and more. * [Creating Order Alerts](/v3/guides/orders/settings/order-alerts#creating-order-alerts) * [Editing Order Alerts](/v3/guides/orders/settings/order-alerts#editing-an-alert) # Order Policies Policies allow you to define how your business processes returns, cancellations, and exchanges. Any number of policies are supported, however, you can only have a one default policy each for returns, cancellations, and exchanges. Default policies apply when no other policy condition is met. For example, the default return policy might have a 5\$ return fee. However, for items with the `Overweight` attribute, the return fee should be higher. By creating a policy that looks for the product attribute `Overweight`, returns and exchanges with this attribute can be handled differently. ## Prerequisites * Ensure that you have **Administrator** or **Editor** privileges to fabric Orders. For more detailed information on these settings, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Policies Table Field Descriptions | Field | Description | | ---------------- | ---------------------------------------------------------------------------------- | | **Name** | The policy name assigned when creating the policy. | | **Policy type** | The type of policy. Policies can be **Cancellation**, **Exchange**, or **Return**. | | **Channels** | The channels the policy is applied to. | | **Currencies** | The currencies used for any fees associated with the policy. | | **Last updated** | A system-generated time indicating when the policy was last modified. | | **Status** | The status indicating whether a policy is set as the default. | ### Standard filters and searching You can use the search field to find a policy by its name. If you don't know the policy name, you can use the following standard filters to refine the policies in the **Policies** table: | Filter | Description | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Channel** | The channel name, depending on the available channels. The default available options are United States or Canada. You can use any other channels created in fabric Experiences or using the APIs. | | **Currency** | The three-digit currency code used to process policy fees. | | **Policy type** | The type of policy. You can filter the policies based on the type of the policy, such as **Cancellation**, **Exchange**, and **Return**. | ## Creating a Policy 1. In the left menu, click **Orders** > **Settings** > **Policies**. The Policies page is displayed. 2. Click **Create Policy**. The **Create Policy** page is displayed. 3. In the **Policy name** field, enter a self-explanatory name. For example, *US Return Policy*. 4. In the **Policy type** field, select one of the following: * Return * Cancellation * Exchange 5. (Optional) Click the **Set as default returns policy** field. Each of the policy types can have one default policy associated with them. This means you can have a default return, cancellation, and exchange policy. 6. (Optional) In the **Description** field, enter a description of the policy. 7. (Optional) Click the **Apply to all channels** field. Selecting this option automatically applies the policy to all your channels. Don't select this option if this policy doesn't apply to different regions/countries. 8. In the **Channels** field, select the channels you want the policy to apply to. This field is disabled if you selected the **Apply to all channels** field. Depending on the **Policy type** that's selected, the **Returns**, **Exchange**, or **Cancellation** section is displayed. 1. For the selected section, enter the following details to specify the duration of each operation: * Days * Hours * Minutes * Seconds The values entered in these fields determine the time frames for returns, cancellations, or exchanges for this policy. 2. To create a refund fee, in the **Refund Fee** field, do the following: * In the **Currency** field, select a currency. * In the **Fee type** field, enter a description for the fee. * In the **Return fee** field, enter a dollar amount. * Click **Add**. The **Refund Fee** is added to the refund fee table. Cancellations don't support **Refund Fees**. 3. To create **Reason Codes**, click **Add reason code**. 4. In the **Add reason code** window, do the following: * In the **Code** field, enter the reason code. * In the **Description** field, enter a description for the reason code. * Click **Save**. The reason code is added to the **Reason Codes** table. 5. To include product attributes in the policy, click **Add product attribute**. Three new fields appear in the **Product Attribute Selection** section. This section is used to apply policies to specific items. 6. In the **Product attribute** field, select a product attribute. This field is populated based on your product catalog attributes. 7. In the **Operator** field, select an operator. 8. In the **Values** field, select a value. 9. Click **Save** at the top-right of the page. The policy is created and added to the policy table on the **Policies** page. If you set the policy as default, the status is set to **Default** and the policy appears sorted at the top of the table. ## Managing Policies 1. In the left menu, click **Orders** > **Settings** > **Policies**. The Policies page is displayed. 2. Using the **Policies** table and [filter options](#standard-filters-and-searching), find the policy you want to edit. 3. Click the policy **Name** or hover over the policy and click **Edit**. The **Edit** page is displayed. **Note**: If the policy is a default policy, you can't edit the **Basic Information** section. 4. Edit the policy following the steps outlined in the [Creating a Policy](#creating-a-policy) section. 5. Click **Save**. The **Last updated** field in the **Policies** table is updated and the policy saved. ## Related Topics * [Order Attributes](/v3/guides/orders/settings/order-attributes) * [Shipping Methods](/v3/guides/orders/settings/shipping-methods) * [Backorders and Preorders](/v3/guides/orders/settings/backorder-preorder) * [Order Alerts](/v3/guides/orders/settings/order-alerts) # Shipping Methods Shipping methods determine how products are delivered to your customers. Examples of shipping methods include domestic, international, free shipping, and express delivery. Shipping method costs are in addition to the cost of products in the cart and any applicable taxes. To navigate to the **Shipping methods** page, click on **Settings** in the left menu and then select **Shipping Methods**. ## Shipping Methods Table The Shipping methods table displays a list of all previously created shipping methods. You can search for a specific shipping method by entering the shipping method name in the search bar and clicking enter. | Field | Description | | ------------------------ | -------------------------------------------------------------------------- | | **Shipping method name** | The carrier name assigned when creating the shipping method. | | **Cost** | The shipment cost and currency assigned when creating the shipping method. | ## Creating Shipping Methods 1. In the left menu, click **Orders** > **Settings** > **Shipping Methods**. The **Shipping Methods** page is displayed. 2. Click **Create Shipping method**. The **Create Shipping method** page is displayed. 3. In the **Carrier name** field, enter a name. 4. (Optional) In the **Description** field, enter a description. 5. In the **Shipping method code** field, enter a shipping method code. For example, Same Day Delivery (SDD) or Ship To Home (STH). 6. In the **Shipment cost** field, enter the shipping cost. 7. In the **Shipment tax code** field, enter the tax code associated with the shipping method. Note that this fields value depends on the applicable tax laws and regulations in each jurisdiction you ship from and should be provided by your tax processing service. 8. (Optional) In the **Region** field, enter a State or region of delivery. 9. In the **Address Type** field, select an address type. Certain carriers or methods are sometimes required depending on the address type entered at checkout. For example, when fulfilling orders to an address type with Army Post Office (APO) or Military Post Office (MPO) a unique method or specific carrier might be required. 10. In the **Channel** field, select a channel. For example, if the method was for international order fulfillment, you would select the international channel. fabric has two default channels, Canada and USA. 11. In the **Currency** field, select a three-letter currency code. 12. In the **Carrier SLA** section, do the following: * In the **Minimum days to deliver** field, enter the minimum duration required to deliver an order starting from the time the order is placed. * In the **Maximum days to deliver** field, enter the maximum duration required to deliver an order starting from the time the order is placed. * In the **Cut-off time** field, enter the time at which the current order day is over. This is used as the daily deadline for a warehouse to process the last order. **Note**: If an order is delivered after the cutoff time, it's considered as delivered the next working day. For example, if the cutoff time is set to 5:00 PM, any orders delivered after this time will be considered to have been delivered the following business day. 13. In the **Freight Options & Restrictions** section, enter the following minimum and maximum dimensions for the shipping method: * Enter a minimum & maximum weight. * Enter a minimum & maximum length. * Enter a minimum & maximum width. * Enter a minimum & maximum height. 14. In the **Product Selection** section, choose whether the shipping and carrier rules apply to specific products or to a purchase’s entire cart value. * **To specific products**: Use the **Add Products** button to select eligible products. * **Cart Value**: Enter a minimum and maximum cart value. 15. Click **Save**. The shipping method is created and added to the **Shipping method** table. ## Editing Shipping Methods 1. In the left menu, click **Orders** > **Settings** > **Shipping Methods**. The **Shipping Method** page is displayed. 2. In the **Shipping method name** column of the shipping methods table, click a method. The **Edit Shipping method** page is displayed. 3. Make your edits. For more information on the shipping method fields, follow the instructions in the [Creating Shipping methods](/v3/guides/orders/settings/creating-shipping-methods) document. 4. Click **Save**. The edits are saved. ## Delete a Shipping Method 1. In the left menu, click **Orders** > **Settings** > **Shipping Methods**. The **Shipping Method** page is displayed. 2. Mouse over the shipping method you want to delete. Two icons appear, edit and delete. 3. Click the delete icon. A confirmation window is displayed. 4. Click **Yes, Delete**. The shipping method is deleted and is no longer visible in the shipping method table. ## Related Topics * [Order Attributes](/v3/guides/orders/settings/order-attributes) * [Backorders and Preorders](/v3/guides/orders/settings/backorder-preorder) * [Order Policies](/v3/guides/orders/settings/policies) * [Order Alerts](/v3/guides/orders/settings/order-alerts) # Adding a Boolean Attribute ### Overview Boolean attributes allow you to add yes or no, or true or false information to an item. ### Prerequisites Ensure you have administrator privileges to fabric **Product Catalog**. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product Catalog > Attributes > Product**. The **Product Attributes** page is displayed. 2. Click **New Attribute**. The **Create product attribute** page is displayed. 3. Select **Boolean**. 4. In the **Attribute title** filed, enter a name for the attribute. 5. (Optional) In the **Description** field, enter a description for the attribute. 6. In the **Is this attribute mandatory?** field, select one of the following: * **Yes**: Specifies that the attribute is mandatory when creating an item. * **No**: Specifies that the attribute isn't mandatory when creating an item. This is the default selection. 7. Click **Save**. The boolean attribute with the specified settings is created. ### Related Topics * [Product Attributes Overview](/v3/guides/product-catalog/attributes/product-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute) * [Adding a List of Values Attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute) * [Adding a Serial Attribute](/v3/guides/product-catalog/attributes/adding-a-serial-attribute) * [Importing Product Attributes](/v3/guides/product-catalog/attributes/importing-product-attributes) * [Managing Product Attributes](/v3/guides/product-catalog/attributes/managing-product-attributes) # Adding a Boolean Attribute ### Overview Boolean attributes allow you to add yes or no, or true or false information to a category. ### Prerequisites Ensure you have administrator privileges to fabric Product Catalog. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product Catalog > Attributes > Category**.\ The **Category Attributes** page is displayed. 2. Click **New Attribute**.\ The **Create category attribute** page is displayed. 3. Select **Boolean**. 4. In the Attribute title field, enter a name for the attribute. 5. Click **Save**. The boolean attribute is created. ### Related Topics * [Category Attributes Overview](/v3/guides/product-catalog/attributes/category-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute2) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute-category) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute2) * [Managing Category Attribute](/v3/guides/product-catalog/attributes/managing-category-attributes) # Adding a Date Attribute ### Overview Date attributes allow you to add date-related information about an item. ### Prerequisites Ensure you have administrator privileges to fabric **Product Catalog**. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product > Attributes > Product**. The **Product Attributes** page is displayed. 2. Click **New Attribute**. The **Create product attribute** page is displayed. The **Text** attribute type is selected by default. 3. Select **Date**. 4. In the **Attribute title** filed, enter a name for the attribute. 5. In the **Select date format** field, select a date format. Note that bulk import of the date attribute type uses the date format you select here. The selected date format can't be changed. If the format needs to be changed, you must delete the attribute and create it again using the required format. 6. (Optional) In the **Description** field, enter a description for the attribute. 7. In the **Use JavaScript formula to calculate value** field, select one of the following: * **Yes**: Specifies that the value for the attribute is calculated using the JavaScript formula that you provide in the **Calculation formula** field. An example of a JavaScript formula is `(async () => await attribute('id') *10)()`. When you select **Yes**, the **Calculation formula** and **Allow manual overwrite** fields are displayed. Do the following to complete the settings: 1. In the **Calculation formula** field, enter a JavaScript formula. 2. In the **Allow manual overwrite** field, choose one of the following: * **Yes**: Specifies that you can manually overwrite the attribute value. When the **Use JavaScript formula to calculate value** setting is enabled, the system determines the value based on your provided formula. However, if you enable the manual overwrite option, you can replace the system-calculated value with a custom value during product attribute setup. For more information, see the [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) section. * **No**: Specifies that you can't manually overwrite the attribute value. This is the default setting. * **No**: Specifies that the attribute value isn't calculated using a JavaScript formula. 8. In the **Validations** field, select one of the following: * **None**: Specifies that no custom validation is required for the attribute. This is the default setting. * **Custom JavaScript**: Specifies that the JavaScript you enter in the **Validation formula** field is used to validate the attribute. The **Validation formula** field is displayed. * In the **Validation formula** field, enter a JavaScript validation formula. 9. In the **Is this attribute mandatory?** field, select one of the following: * **Yes**: Specifies that the attribute is mandatory when creating an item. * **No**: Specifies that the attribute isn't mandatory when creating an item. This is the default selection. 10. Click **Save**. The date attribute with the specified settings is created. ### Related Topics * [Product Attributes Overview](/v3/guides/product-catalog/attributes/product-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute) * [Adding a List of Values Attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute) * [Adding a Serial Attribute](/v3/guides/product-catalog/attributes/adding-a-serial-attribute) * [Importing Product Attributes](/v3/guides/product-catalog/attributes/importing-product-attributes) * [Managing Product Attributes](/v3/guides/product-catalog/attributes/managing-product-attributes) # Adding a Date Attribute ### Overview Date attributes allow you to add date-related information about a category. ### Prerequisites Ensure you have administrator privileges to fabric **Product Catalog**. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product > Attributes > Category**. The **Category Attributes** page is displayed. 2. Click **New Attribute**. The **Create category attribute** page is displayed. The **Text** attribute type is selected by default. 3. Select **Date**. 4. In the **Attribute title** field, enter a name for the attribute. 5. In the **Select date format** field, select a date format. Note that bulk import of the date attribute type uses the date format selected here. The selected date format can't be changed. If the format needs to be changed, you must delete the attribute and create it again using the required format. 6. Click **Save**. The date attribute with the specified settings is created. ### Related Topics * [Category Attributes Overview](/v3/guides/product-catalog/attributes/category-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute2) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute-category) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute2) * [Managing Category Attribute](/v3/guides/product-catalog/attributes/managing-category-attributes) # Adding a List of Values Attribute ### Overview List of values attributes allow you to create dropdown menus with defined values across the product list. There are two types of list of values attributes: * **Single select**: Specifies that the end user can select one option in the list of values. * **Multiple select**: Specifies that the end user can make multiple selections from the list of values. ### Prerequisites Ensure you have administrator privileges to fabric **Product Catalog**. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product Catalog > Attributes > Product**. The Product Attributes page is displayed. 2. Click **New Attribute**. The Create product attribute page is displayed. 3. Select **List of values**. 4. (Optional) To enable localization for the attribute, set the **Localize this attribute** toggle to one of the following: * **On**: The attribute title is localized. The **Title and description** and **Business validations** sections display additional fields corresponding to the languages depending on the internationalization settings. * **Off**: The attribute title isn't localized. 5. In the **Attribute title (primary)** field, enter a name for the attribute. If localization is enabled in step 4, enter the localized attribute titles in the Attribute title field for each corresponding internationalization setting. 6. (Optional) In the **Description** field, enter a description for the attribute. 7. In the **Type of list** field, select one of the following: * **Single select**: Specifies that the end user can select one option in the list of values. * **Multiple select**: Specifies that the end user can make multiple selections from the list of values. 8. In the **Enter values** field, enter each value in the list, separated by a comma. If localization is enabled in step 4, enter the localized values for each corresponding internationalization setting. 9. In the **Use JavaScript formula to calculate value** field, select one of the following: * **Yes**: Specifies that the value for the attribute is calculated using the JavaScript formula that you provide in the **Calculation formula** field. An example of a JavaScript formula is (async () => await attribute('id') \* 10)(). When you select **Yes**, the **Calculation formula** and **Allow manual overwrite fields** are displayed. Do the following to complete the settings: * In the **Calculation formula** field, enter a JavaScript formula. * In the **Allow manual overwrite** field, choose one of the following: * **Yes**: Specifies that you can manually overwrite the attribute value. When the **Use JavaScript formula to calculate value** setting is enabled, the system determines the value based on your provided formula. However, if you enable the manual overwrite option, you can replace the system-calculated value with a custom value during product attribute setup. For more information, see the [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) section. * **No**: Specifies that you can't manually overwrite the attribute value. This is the default setting. * **No**: Specifies that the attribute value isn't calculated using a JavaScript formula. 10. In the Validations field, select one of the following: * **None**: Specifies that no custom validation is required for the attribute. This is the default setting. * **Custom JavaScript**: Specifies that the JavaScript you enter in the **Validation formula** field is used to validate the attribute. The **Validation formula** field is displayed. * In the **Validation formula** field, enter a JavaScript validation formula. 11. In the **Is this attribute mandatory?** field, select one of the following: * **Yes**: Specifies that the attribute is mandatory when creating an item. * **No**: Specifies that the attribute isn't mandatory when creating an item. This is the default selection. 12. Click **Save**. The list of values attribute with the specified settings is created. ### Related Topics * [Product Attributes Overview](/v3/guides/product-catalog/attributes/product-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute) * [Adding a Serial Attribute](/v3/guides/product-catalog/attributes/adding-a-serial-attribute) * [Importing Product Attributes](/v3/guides/product-catalog/attributes/importing-product-attributes) * [Managing Product Attributes](/v3/guides/product-catalog/attributes/managing-product-attributes) # Adding a Number Only Attribute ### Overview Number attributes allow you to add number-based information about an item. Use this attribute type when the value is always a number. ### Prerequisites Ensure you have administrator privileges to fabric **Product Catalog**. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product Catalog > Attributes > Product**.\ The **Product Attributes** page is displayed. 2. Click **New Attribute**.\ The **Create product attribute** page is displayed. 3. Select **Number**. 4. In the **Attribute title** field, enter a name for the attribute. 5. (Optional) In the **Description** field, enter a description for the attribute. 6. In the **Use JavaScript formula to calculate value** field, select one of the following: * **Yes**: Specifies that the value for the attribute is calculated using the JavaScript formula that you provide in the **Calculation formula** field. An example of a JavaScript formula is `(async () => await attribute('id') *10)()`. When you select **Yes**, the **Calculation formula** and **Allow manual overwrite** fields are displayed. Do the following to complete the settings: 1. In the **Calculation formula** field, enter a JavaScript formula. 2. In the **Allow manual overwrite** field, choose one of the following: * **Yes**: Specifies that you can manually overwrite the attribute value. When the **Use JavaScript formula to calculate value** setting is enabled, the system determines the value based on your provided formula. However, if you enable the manual overwrite option, you can replace the system-calculated value with a custom value during product attribute setup. For more information, see the [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) section. * **No**: Specifies that you cannot manually overwrite the attribute value. This is the default setting. * **No**: Specifies that the attribute value is not calculated using a JavaScript formula. 7. In the **Do you want this attribute to accept decimal values?** field, select one of the following: * **Yes**: Specifies that the field does accept decimal values. * **No**: Specifies that the field does not accept decimal values. 8. In the **Is this attribute mandatory?** field, select one of the following: * **Yes**: Specifies that the attribute is mandatory when creating an item. * **No**: Specifies that the attribute is not mandatory when creating an item. This is the default selection. 9. Click **Save**. The number only attribute with the specified settings is created. ### Related Topics * [Product Attributes Overview](/v3/guides/product-catalog/attributes/product-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute) * [Adding a List of Values Attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute) * [Adding a Serial Attribute](/v3/guides/product-catalog/attributes/adding-a-serial-attribute) * [Importing Product Attributes](/v3/guides/product-catalog/attributes/importing-product-attributes) * [Managing Product Attributes](/v3/guides/product-catalog/attributes/managing-product-attributes) # Adding a Number Only Attribute ### Overview Number attributes allow you to add number-based information about a category. Use this attribute type when the value is always a number. ### Prerequisites Ensure you have administrator privileges to fabric **Product Catalog**. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product > Attributes > Category**.\ The **Category Attributes** page is displayed. 2. Click **New Attribute**.\ The **Create category attribute** page is displayed. 3. Select **Number Only**. 4. In the **Attribute title** field, enter a name for the attribute. 5. Click **Save**. The number-only attribute is created. ### Related Topics * [Category Attributes Overview](/v3/guides/product-catalog/attributes/category-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute2) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute2) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute2) * [Managing Category Attribute](/v3/guides/product-catalog/attributes/managing-category-attributes) # Adding a Serial Attribute ### Overview Serial attributes allow you to create an auto increment number-type attribute. You can specify the starting number and the increment interval. ### Prerequisites Ensure you have administrator privileges to fabric **Product Catalog**. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product Catalog > Attributes > Product**.\ The **Product Attributes** page is displayed. 2. Click **New Attribute**.\ The **Create product attribute** page is displayed. 3. Select **Serial**. 4. In the **Attribute title** filed, enter a name for the attribute. 5. (Optional) In the **Description** field, enter a description for the attribute. 6. In the **Start serial with** field, enter the beginning serial number. 7. In the **Increment serial number by** field, enter the interval by which each subsequent number increases. 8. In the **Is this attribute mandatory?** field, select one of the following: * **Yes**: Specifies that the attribute is mandatory when creating an item. * **No**: Specifies that the attribute isn't mandatory when creating an item. This is the default selection. 9. Click **Save**. The serial attribute with the specified settings is created. ### Related Topics * [Product Attributes Overview](/v3/guides/product-catalog/attributes/product-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute) * [Adding a List of Values Attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute) * [Importing Product Attributes](/v3/guides/product-catalog/attributes/importing-product-attributes) * [Managing Product Attributes](/v3/guides/product-catalog/attributes/managing-product-attributes) # Adding a Text Attribute ### Overview Text attributes allow you to add text-based information about an item, such as a description or a code snippet. You can use any combination of text, numbers, or special characters for this attribute type. ### Prerequisites Ensure you have administrator privileges to fabric **Product Catalog**. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product > Attributes > Product**.\ The **Product Attributes** page is displayed. 2. Click **New Attribute**.\ The **Create product attribute** page is displayed. The **Text** attribute type is selected by default. 3. In the **Attribute title (primary)** field, enter a name for the attribute.\ If localization is enabled in step 3, enter the localized attribute titles in the **Attribute title** field for each corresponding internationalization setting. 4. (Optional) In the **Description** field, enter a description for the attribute. 5. In the **Type of text** field, select one of the following: * Small text: For single-line text attributes. * Text Area: For multi-line text attributes. * HTML: For text area attributes that support HTML. 6. In the **Use JavaScript formula to calculate value** field, select one of the following: * **Yes**: Specifies that the value for the attribute is calculated using the JavaScript formula that you provide in the **Calculation formula** field. An example of a JavaScript formula is `(async () => await attribute('id') *10)()`. When you select **Yes**, the **Calculation formula** and **Allow manual overwrite** fields are displayed. Do the following to complete the settings: 1. In the **Calculation formula** field, enter a JavaScript formula. 2. In the **Allow manual overwrite** field, choose one of the following: * **Yes**: Specifies that you can manually overwrite the attribute value. When the **Use JavaScript formula to calculate value** setting is enabled, the system determines the value based on your provided formula. However, if you enable the manual overwrite option, you can replace the system-calculated value with a custom value during product attribute setup. For more information, see the [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) section. * **No**: Specifies that you can't manually overwrite the attribute value. This is the default setting. * **No**: Specifies that the attribute value isn't calculated using a JavaScript formula. 7. In the **Is this attribute mandatory?** field, select one of the following: * **Yes**: Specifies that the attribute is mandatory when creating an item. * **No**: Specifies that the attribute isn't mandatory when creating an item. This is the default selection. 8. Click **Save**. The text attribute with the specified settings is created. ### Related Topics * [Product Attributes Overview](/v3/guides/product-catalog/attributes/product-attributes-overview) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute) * [Adding a List of Values Attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute) * [Adding a Serial Attribute](/v3/guides/product-catalog/attributes/adding-a-serial-attribute) * [Importing Product Attributes](/v3/guides/product-catalog/attributes/importing-product-attributes) * [Managing Product Attributes](/v3/guides/product-catalog/attributes/managing-product-attributes) # Adding a Text Attribute ### Overview Text attributes allow you to add text-based information about a category, such as a description or a code snippet. You can use any combination of text, numbers, or special characters for this attribute type. ### Prerequisites Ensure you have administrator privileges to fabric **Product Catalog**. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product Catalog > Attributes > Category**. The **Category Attributes** page is displayed. 2. Click **New Attribute**. The **Create category attribute page** is displayed. The **Text** attribute type is selected by default. 3. In the **Attribute title** field, enter a name for the attribute. 4. In the **Type of text** field, select one of the following: * **Small text**: For single-line text attributes. * **Text Area**: For multi-line text attributes. * **HTML**: For text area attributes that support HTML. 5. Click **Save**. The text attribute with the specified settings is created. ### Related Topics * [Category Attributes Overview](/v3/guides/product-catalog/attributes/category-attributes-overview) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute-category) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute2) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute2) * [Managing Category Attribute](/v3/guides/product-catalog/attributes/managing-category-attributes) # Category Attributes Overview ### Overview Category attributes define specific characteristics of a category or collection, such as images and SEO tags. Category attributes added to higher-level categories are inherited by subcategories. Category attributes added to Collections are unique for each collection node and aren't inherited by sub-collection nodes. ### Attribute Types fabric supports the following attribute types for storing category information: * **Text:** A sequence of characters. You may store any combination of text, numbers, or special characters. Text attribute has three subtypes: * Small text: For single-line text attributes. * Text Area: For multi-line text attributes. * HTML: For text area attributes that support HTML. * **Number Only:** An attribute type for values that are always a number. * **Date:** All date-related formats. Bulk import of the date attribute uses the date format selected when the attribute was created. Once selected, the date format can't be changed. If the format needs to be changed, you must delete the attribute and create it again using the required format. * **Boolean:** A Boolean value (true/false) for a category attribute. While importing attributes from an external system, make sure the true or false values are specified for all Boolean attribute types. For each attribute type, certain fields are optional, while others are required. Failure to provide required fields will result in an "Unable to create attribute" error message. The following table shows the attribute types and their properties. This will help you determine the mandatory and optional properties of an attribute type. To ensure data quality, set up one or more validations based on the selected attribute type. | Attribute Type | Localize this attribute | Attribute title | Description | Use JavaScript to calculate value | Validations | Is this attribute mandatory? | Type of text | Date Format | Decimal | | -------------- | ----------------------- | --------------- | ----------- | --------------------------------- | ----------- | ---------------------------- | ------------ | ----------- | -------- | | Text | Optional | Required | Optional | Optional | Optional | Required | Required | N/A | N/A | | Number Only | Optional | Required | Optional | Optional | Optional | Required | N/A | N/A | Optional | | Date | Optional | Required | Optional | Optional | Optional | Required | N/A | Required | N/A | | Boolean | Optional | Required | Optional | Optional | Optional | Required | N/A | N/A | N/A | ### Related Topics * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute2) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute-category) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute2) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute2) * [Managing Category Attribute](/v3/guides/product-catalog/attributes/managing-category-attributes) # Importing Product Attributes ### Overview Product attributes are specific product descriptors that define characteristics such as size, color, or material. This document covers the process of importing multiple product attributes using a CSV file. You also have the option to add product attributes manually. ### CSV File Guidelines Product attributes can be imported using CSV files exclusively, as fabric doesn't support other data or file formats. Here are some essential points to keep in mind: * The headers in the first row of the CSV file should match the attribute titles. * While attribute titles aren't case-sensitive, maintaining case consistency with the original attribute titles is recommended. * Empty rows and columns are ignored. * We recommend downloading the template file to serve as a guide when creating your own CSV file for import, minimizing errors during the process. ### Attribute Data Formatting When preparing your CSV file for import, ensure that the product attribute data format aligns with the column requirements. Different columns have specific data input requirements: | **Attribute** | **Description** | | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Attribute Title** | The name of the attribute. | | **Type of Attribute** | Specifies the attribute type, such as text, number, date, Boolean, serial, or list of values. | | **Description** *(Optional)* | Provides additional details about the attribute. | | **Decimal** | Indicates if the attribute allows decimal values. Valid values are **true** (allows decimals) or **false** (only whole numbers). Applicable only to number-type attributes. The default value is **true**. | | **Min** *(Optional)* | Defines the minimum value for validation. Applicable only to number-type attributes. | | **Max** *(Optional)* | Defines the maximum value for validation. Applicable only to number-type attributes. | | **Date Format** | Specifies the required date format, such as MM/DD/YYYY, MM-DD-YYYY, DD/MM/YYYY, DD-MM-YYYY, YYYY/MM/DD, or YYYY-MM-DD. This is mandatory for date-type attributes; otherwise, the attribute can't be imported. | | **Calculation Formula** *(Optional)* | JavaScript formula used to calculate the attribute value. | | **Validations Formula** *(Optional)* | JavaScript formula used to define business validation rules for the attribute. | | **Mandatory** | Specifies whether the attribute is required. Valid values are **true** (mandatory) or **false** (optional). | | **Start With** | Defines the starting value for a serial-type attribute. Applicable only to serial-type attributes. | | **Increment by** | Specifies the increment value for a serial-type attribute. | | **Options Select Type (List of Value)** | Determines if the attribute is a list of values. Valid values are **true** (list of values) or **false** (not a list). To specify options, use additional columns (Value 1, Value 2, Value 3). | ### Prerequisites Ensure that you have access to fabric **Product Catalog** in Copilot. ### Procedure 1. In the left menu, click **Product Catalog** > **Attributes** > **Product**. The Product Attributes page is displayed. 2. Click **Import**. The Import CSV file window is displayed, providing a link to download an example template for the CSV file. 3. To import a CSV file, choose one of the following options: * Drag and drop the CSV file into the window. * Click **Select a File** from your computer. 4. Click **Import file**. The CSV file is imported, and the product attributes are added. ### Related Topics * [Product Attributes Overview](/v3/guides/product-catalog/attributes/product-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-attribute) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute) * [Adding a List of Values Attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute) * [Adding a Serial Attribute](/v3/guides/product-catalog/attributes/adding-a-serial-attribute) * [Managing Product Attributes](/v3/guides/product-catalog/attributes/managing-product-attributes) # Managing Category Attributes ### Overview This document covers the process of editing and deleting category attributes. #### Editing Product Attributes 1. In the left menu, click **Product Catalog > Attributes > Category**.\ The **Category Attributes** page is displayed. 2. Click the category attribute that you want to edit.\ The edit attribute type page is displayed. 3. Edit the attributes as required. 4. Click **Save**. The category attribute is saved. #### Deleting a Category Attribute 1. In the left menu, click **Product Catalog > Attributes > Category**.\ The **Category Attributes** page is displayed. 2. Click a Category attribute that you want to delete.\ The edit attribute type page is displayed. 3. Click **Delete**.\ The **Delete attribute** popup is displayed. 4. Click **Yes, Delete**. The category attribute is deleted. ### Related Topics * [Category Attributes Overview](/v3/guides/product-catalog/attributes/category-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute2) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute-category) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute2) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute2) # Managing Product Attributes ### Overview This document covers the process of editing and deleting product attributes. ### Prerequisites Ensure you have created or imported at least one product attribute. #### Editing Product Attributes 1. In the left menu, click **Product Catalog > Attributes > Product**. The **Product Attributes** page is displayed. 2. Click the product attribute that you want to edit. The edit attribute type page is displayed. 3. Edit the attributes as required. 4. Click **Save**. The product attribute is saved. #### Deleting a Product Attribute 1. In the left menu, click **Product Catalog > Attributes > Product**. The Product Attributes page is displayed. 2. Click a product attribute that you want to delete. The edit attribute type page is displayed. 3. Click **Delete**. The **Delete attribute** popup is displayed. 4. Click **Yes, Delete**. The product attribute is deleted. ### Related Topics * [Product Attributes Overview](/v3/guides/product-catalog/attributes/product-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-attribute) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute) * [Adding a List of Values Attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute) * [Adding a Serial Attribute](/v3/guides/product-catalog/attributes/adding-a-serial-attribute) * [Importing Product Attributes](/v3/guides/product-catalog/attributes/importing-product-attributes) # Product Attributes Overview ### Overview Item attributes are used to define product characteristics. For example, a product name, an identity number, and a product description are all common attributes of a product. Attributes are key-value pairs, such as *Color: red*, that hold information for each property of the product. ‌ ### Attribute Types fabric supports the following types of attributes for storing product information: * **Text:** A sequence of characters. You may store any combination of text, numbers, or special characters. Text attribute has three subtypes: * Small text: For single-line text attributes. * Text Area: For multi-line text attributes. * HTML: For text area attributes that support HTML. * **Number Only:** An attribute type for values that are always a number. * **Date:** All date-related formats. Bulk import of the date attribute uses the date format selected when the attribute was created. Once selected, the date format can't be changed. If the format needs to be changed, you must delete the attribute and create it again using the required format. * **Boolean:** A Boolean value (true/false) for a product attribute. While importing attributes from an external system, make sure the true or false values are specified for all Boolean attribute types. * **List of Values:** A dropdown menu for product attributes that have defined values across the product list. Supports single selection or multiple selection from the dropdown. * **Serial:** An auto increment number-type attribute. You can specify the starting number and what the increment is. The following table shows the attribute types and their properties. This will help you determine the mandatory and optional properties of an attribute type. To ensure data quality, set up one or more validations based on the selected attribute type. | **Attributes** | **Text** | **Number Only** | **Date** | **Boolean** | **List of Values** | **Serial** | | --------------------------------- | -------- | --------------- | -------- | ----------- | ------------------ | ---------- | | Localize this attribute | Optional | Optional | Optional | Optional | Optional | Optional | | Attribute title | Required | Required | Required | Required | Required | Required | | Description | Optional | Optional | Optional | Optional | Optional | Optional | | Use JavaScript to calculate value | Optional | Optional | Optional | Optional | Optional | N/A | | Validations | Optional | Optional | Optional | Optional | Optional | N/A | | Is this attribute mandatory? | Required | Required | Required | Required | Required | Required | | Type of text | Required | N/A | N/A | N/A | N/A | N/A | | Date Format | N/A | N/A | Required | N/A | N/A | N/A | | Decimal | N/A | Optional | N/A | N/A | N/A | N/A | | Type of list | N/A | N/A | N/A | N/A | Required | N/A | ### Calculation Formulas Businesses often require dynamically calculated attributes based on existing values. For example: 1. You can configure a product's display name to be *Product Name* + *by* + *Brand Name*, Instead of naming each product or variant individually. This formula automatically creates names for the products. 2. The area of a rug can be calculated by multiplying width with length and the price per square foot can be calculated by dividing the price attribute value by the area attribute value. 3. You can calculate weight per count by dividing the weight of the product by the total count of items inside the box. With low-code JavaScript formulas, these attribute values can be calculated automatically. Here are some frequently used formulas: | Operation | Calculation Formula | | ----------- | -------------------------------------------------------------------------------------------------------- | | Divide | `(async ()=> await attribute('attribute 1 ID') / await attribute('volume'))() ` | | Multiply | `(async ()=> await attribute('attribute ID') \* 10)()` | | Sum | `(async ()=> await attribute('attribute 1 ID') + await attribute('attribute 2 ID'))() ` | | Subtract | `(async ()=> await attribute('attribute 1 ID') - await attribute('attribute 2 ID'))()` | | Concatenate | `(async ()=> await attribute('attribute 1 ID') + " followed by " + await attribute('attribute 2 ID'))()` | Note that the values in double quotes (`" "`) represent the title of the reference attribute and refer to the absolute value of the attribute being used for calculation. ### Validation Formulas you can specify business validations on attributes using a low-code JavaScript formula and ensure data integrity and quality. This operation doesn't manipulate data, only validates fields for the attributes. | Validation Type | Validation Formula | | -------------------------------------------- | ----------------------------------------------------------------------------------------------- | | Number Validation | `(async ()=> await attribute() >=0 && await attribute()<=20 && await attribute()%0.25 === 0)()` | | String Validation | `(async ()=> (await attribute()).length < 200)()` | | Date (Greater than Equal to current Date) | `(async ()=> await attribute() >= new Date())()` | | Date (Greater than Equal to particular Date) | `(async ()=> await attribute() >= new Date('02/14/2021'))()` | Formulas are based on JavaScript syntax, so you can use all inbuilt JavaScript functions. For example, values given as a string can be stored as integers by using formulas such as `(async () => parseFloat(await attribute('Height (in)')) - parseFloat(await attribute('Weight (in)')) )()`. ### Related Topics * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-attribute) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute) * [Adding a List of Values Attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute) * [Adding a Serial Attribute](/v3/guides/product-catalog/attributes/adding-a-serial-attribute) * [Importing Product Attributes](/v3/guides/product-catalog/attributes/importing-product-attributes) * [Managing Product Attributes](/v3/guides/product-catalog/attributes/managing-product-attributes) # Searching and Sorting Category Attributes ### Overview The search, filter, and sort options on the **Category Attributes** page allow you to refine the list of category attributes or find a specific category attribute. You can use the filter option only if you have multiple category attributes. #### To search for a specific category attribute, do the following: 1. In the left menu, click **Product Catalog > Attribute > Category**. The **Category Attributes** page is displayed. 2. In the search field, enter a search term and press **Enter**. The results are displayed. #### To sort the list of category attributes, do the following: 1. In the left menu, click **Product Catalog > Attributes > Category**. The Category Attributes page is displayed. 2. Click one of the column headers to sort the list of category attributes. Sortable headers are **Attribute Title**, **Attribute Type**, **Last Modified**, and **Mandatory/Optional**. ### Related Topics * [Category Attributes Overview](/v3/guides/product-catalog/attributes/category-attributes-overview) * [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute2) * [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute-category) * [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute2) * [Adding a Boolean Attribute](/v3/guides/product-catalog/attributes/adding-a-boolean-attribute2) * [Managing Category Attribute](/v3/guides/product-catalog/attributes/managing-category-attributes) # Searching and Sorting Product Attributes ### Overview The search, filter, and sort options on the **Product Attributes** page allow you to refine the list of product attributes or find a specific product attribute. You can use the filter option only if you have multiple product attributes. ### Prerequisites Ensure you have created or imported multiple product attribute. #### To search for a specific product attribute, do the following: 1. In the left menu, click **Product Catalog > Attribute > Product**. The **Product Attributes** page is displayed. 2. In the search field, enter a search term and press **Enter**. 3. The results are displayed. #### To sort the list of product attributes, do the following: 1. In the left menu, click **Product Catalog > Attributes > Product**. The Product Attributes page is displayed. 2. Click one of the column headers to sort the list of product attributes. Sortable headers are **Attribute Title**, **Attribute Type**, **Last Modified**, and **Mandatory/Optional**. ### Related Topics * [Product Attributes Overview](/v3/guides/product-catalog/attributes/product-attributes-overview) * [Managing Product Attributes](/v3/guides/product-catalog/attributes/managing-product-attributes) # Background Jobs With **Background Jobs**, you can view the history of all the files you have imported and exported in **Product Catalog**, as well as see real-time progress updates for these jobs. The summary of the job includes its status, type, and the date it was started and completed. The overview page also includes a link to download the original file. This feature enhances operational efficiency for users, such as Merchandising Managers and SI Developers, who manage product information. All import jobs are kept on file in your account for access later. The details of export jobs are only held for seven days. ### Related Topics * [Viewing Background Jobs History](/v3/guides/product-catalog/background-jobs/viewing-background-jobs-history) * [Searching, Filtering, and Sorting Background Jobs](/v3/guides/product-catalog/background-jobs/searching--filtering--and-sorting-background-jobs) # Managing Background Jobs The search, filter, and sort options on the **Background Jobs** page allow you to refine the list of items, find a specific job, or cancel a job. The **Background Jobs** page displays the following information: | Column Header | Description | | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Job ID** | The unique identifier of the job. | | **File name** | The name of the file that was imported. This column is only available on the **Import** tab. | | **Import type** | The **Import type** column is only available on the **Import** tab. It displays the type of information that was exported, whether item, bundle, item variant, attribute, category, or collection. | | **Export type** | The **Export type** column is only available on the **Export** tab. It displays the type of information that was exported, whether item, bundle, item variant, attribute, category, or collection. | | **Job type** | The Job type column is only available on the **Other** tab. It displays the following information:

- **Product Update**: Collection Evaluation: When a product is updated, all collections are evaluated to identify which collection the product will be a part of.

- **Category Update**: Product Attribute: A job that's triggered every 20 minutes (unless the account is configured for a different time period) when product attributes assigned to a category are assigned or removed.

- **Collection Update**: Product Evaluation: When a collection is updated or created, this job evaluates all the rules against products and indexes all the products.

- **Product Update**: Category Assignment: Users can assign products to a different category in bulk. This job tracks those bulk category reassignments on products.

- **Product Denormalization**: fabric’s downstream domains, such as Orders, Offers, and Cart and Checkout, use denormalized data.

This job handles all the Product Catalog events and identifies a list of products that are updated due to these events and writes the denormalized data to OpenSearch for use downstream. | | **Message** | The system-generated message that gives one of the following outcomes of the background job:

- **Completed successfully**: The job is complete with no errors.

- **Partially completed with errors**: The job is partially complete and contains errors.

- **File contains errors**: The job is complete and contains errors.

- **Failed with Errors**: The job couldn't be completed because of major errors.

This message can only appear for jobs on the Other tab. | | **Status** | The status of the job. Statuses are color-coded and defined as follows:

- **Scheduled (grey)**: Job is scheduled to begin.

- **In progress (green)**: Job is currently running.

- **Completed (green)**: Job is complete with no errors.

- **Completed (orange)**: Job is complete but some errors were identified.

- **Failed (red)**: Job couldn't be completed and no rows were processed due to major errors. | | **Time started** | The date and time the job began. | | **Time completed** | The date and time the job completed. | ### Searching Jobs 1. In the left menu, click **Product Catalog > Background Jobs**. The **Import** tab on the **Background Jobs** page is displayed. 2. Select the type of jobs to search by doing one of the following: * To search imports, stay on the **Imports** tab. * To search exports, click the **Exports** tab. * The **Exports** tab is displayed. * To search other jobs, click the **Other** tab. * The **Other** tab is displayed. 3. Type a search term into the search bar and press **Enter**. The search field accepts the following queries: * Imports: Partial file name, full file name, or full job ID. * Exports: Partial file name, full file name, or full job ID. * Other jobs: Full job ID. The results are displayed. ### Filtering Jobs 1. In the left menu, click **Product Catalog > Background Jobs**.\ The **Import** tab on the **Background Jobs** page is displayed. 2. Select the type of jobs to filter by doing one of the following: * To filter imports, stay on the **Imports** tab. * To filter exports, click the **Exports** tab. * The **Exports** tab is displayed. * To filter other jobs, click the **Other** tab. * The **Other** tab is displayed. 3. Choose at least one of the following filters: * Click the **Date** field and select a range for the date the jobs were started or completed. * Click the **Status** field and select a status. * Depending on the type of jobs to filter that you selected in step 2, click the **Import type**, **Export type**, or **Job type** field and select a job type. Jobs that match the filters you chose are displayed. Click **Reset filters** to remove all filters. ### Sorting Jobs 1. In the left menu, click **Product Catalog > Background Jobs**.\ The **Import** tab on the **Jobs** page is displayed. 2. Select the type of jobs to sort by doing one of the following: * To sort imports, stay on the **Imports** tab. * To sort exports, click the **Exports** tab. * The **Exports** tab is displayed. * To sort other jobs, click the **Other** tab. * The **Other** tab is displayed. 3. Click one of the column headers to sort the list of jobs.\ All jobs can be sorted by **Job ID**, **Status**, **Time started**, and **Time completed**. In addition, import jobs can be sorted by **Import type**, export jobs can be sorted by **Export type**, and other jobs can be sorted by **Job type**. The jobs are sorted. ### Canceling Jobs The only type of background job that can be canceled is an item or item variant import. When a job is canceled, it stops processing after completing the row in progress. 1. In the left menu, click **Product Catalog > Background Jobs**. The **Import** tab on the **Background Jobs** page is displayed. 2. Mouse over the job you want to cancel and click the **X** icon. Note: The job must have a status of **In Progress** or **Scheduled** to be canceled. 3. The **Are you sure you want to cancel?** window is displayed. 4. Click **Yes, Cancel**. The job is canceled. ## Related Topics * [Background Jobs Overview](/v3/guides/product-catalog/background-jobs/background-jobs) * [Viewing Background Jobs History](/v3/guides/product-catalog/background-jobs/viewing-background-jobs-history) # Viewing Background Jobs History ### Overview In Copilot, you can view the import history, export history, and real-time progress updates for **Product Catalog**. All import jobs are kept on file in your account for access later. The details of export jobs are only held for seven days. You can view job histories only if you have performed at least one import or export operation. ### Viewing Import History 1. In the left menu, click **Product Catalog > Background Jobs**.\ The **Import** tab on the **Background Jobs** page is displayed. 2. Click a **Job ID**.\ The summary page with the following details is displayed: * **Job type**: For import history details, this is always **import**. Also includes information on the type of import, whether item, bundle, item variant, attribute, category, or collection. * **Time started**: The date and time the import began. * **Time completed**: The date and time the import completed. * Three fields with dynamic names depending on the type of import. Items is used in the following example, but depending on the type of import, the fields could be labelled item, bundle, item variant, attribute, category, or collection. * **Item created**: The number of items created as a result of the import. * **Item updated**: The number of items updated as a result of the import. * **Items upsert with error**: The number of items upserted with errors as a result of the import. 3. (Optional) To download a copy of the original file, click **Download Original File**.\ A CSV file containing the import details is downloaded. 4. (Optional) If the import job had errors, to view the error report, click **Download Error Report**.\ A zip file is downloaded containing the original file that was uploaded as well as a the error report in CSV format. ### Viewing Export History 1. In the left menu, click **Product Catalog > Background Jobs**.\ The **Background Jobs** page is displayed. 2. Click **Export history**.\ The **Export history** tab is displayed. 3. Click a **Job ID**.\ The summary page with the following details is displayed: * **Job type**: For export history details, this is always **export**. Also includes information on the type of export, whether item, bundle, item variant, attribute, category, or collection. * **Time started**: The date and time the export began. * **Time completed**: The date and time the export completed. 4. (Optional) To download a copy of the original file, click **Download Original File**.\ A CSV file containing the export details is downloaded. 5. (Optional) If the export job had errors, to view the error report, click **Download Error Report**.\ A zip file is downloaded containing the original file that was uploaded as well as a the error report in CSV format. ### Viewing Other Jobs History 1. In the left menu, click **Product Catalog > Background Jobs**.\ The **Background Jobs** page is displayed. 2. Click **Other**.\ The **Other** tab is displayed. 3. Click a **Job ID**.\ The summary page with the following details is displayed: * **Product Update: Collection Evaluation:** When a product is updated, all collections are evaluated to identify which collection the product will be a part of. * **Category Update: Product Attribute:** A job that's triggered every 20 minutes (unless the account is configured for a different time period) when product attributes assigned to a category are assigned or removed. * **Collection Update: Product Evaluation:** When a collection is updated or created, this job evaluates all the rules against products and indexes all the products. * **Product Update: Category Assignment:** Users can assign products to a different category in bulk. This job tracks those bulk category reassignments on products. * **Product Denormalization:** fabric's downstream domains, such as Orders, Offers, and Cart and Checkout, use denormalized data. This job handles all the Product Catalog events and identifies a list of products that are updated due to these events and writes the denormalized data to OpenSearch for use downstream. ### Related Topics * [Background Jobs Overview](/v3/guides/product-catalog/background-jobs/background-jobs) * [Searching, Filtering, and Sorting Background Jobs](/v3/guides/product-catalog/background-jobs/searching--filtering--and-sorting-background-jobs) # Adding a Category ### Overview Categories are hierarchical tree structures that allow you to organize items, variants, and bundles into groups based on similar attributes. This document covers how to create a single category using the Copilot interface. You can also add multiple categories at the same time by [importing them](/v3/guides/product-catalog/categories/importing-categories) using a CSV file. ### Prerequisites Ensure that you have access to the **Product Catalog** in Copilot. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product Catalog > Categories**.\ The Categories page is displayed. 2. Click the **+** icon. 3. Enter a title for the new category and press **Enter** or click the **?** icon.\ The new category is created. 4. (Optional) Click the new category name, and then click the **+** icon on the right to create a new subcategory.\ The new subcategory is created. When you click a root category, all subcategories within the root category are displayed at the right. A **leaf** label is used to indicate any category or subcategory that doesn't contain a subcategory. ### Related Topics * [Categories Overview](/v3/guides/product-catalog/categories/categories_overview-overview) * [Importing Categories](/v3/guides/product-catalog/categories/importing-categories) * [Viewing Category Import History](/v3/guides/product-catalog/categories/viewing-category-import-history) * [Managing Categories](/v3/guides/product-catalog/categories/managing-categories) # Categories ### Overview Categories define the structure of item lists in **Product Catalog**. They can be organized into a hierarchical tree structure based on common attributes, allowing logical grouping of items. Every item must belong to one category or subcategory, and there is no limit to the number of categories or subcategories. Categories and subcategories can be best explained with the tree analogy. For instance, considering "furniture" as the main category or root, the branches are subcategories like "tables" and "chairs," and the leaves represent individual products. In this example, a leaf could be an oak dining table that seats 4. Visually, it looks like this: > ## 📘 Example of the Tree Analogy > > * Root: Furniture > * Branch: Tables > * Leaf: Dining Tables > * Product: Oak dining table seating 4 > * Product: Oak dining table seating 6 > * Leaf: Coffee Tables > * Product: Oak coffee table > * Product: Oak coffee table, glass top > * Branch: Chairs > * Leaf: Dining Chairs > * Product: Oak dining chair > * Product: Oak dining chair, with arms > * Leaf: Office Chairs > * Product: Computer chair > * Product: Computer chair, reclining Any attribute applied to a category is inherited by its subcategories, known as attribute inheritance. However, inherited attributes can be overwritten by assigning the attribute to the subcategory itself. For example, the broad "office chairs" category could have a "material" attribute set to leather, but a specific subcategory could be set to nylon. ### Related Topics * [Adding a Category](/v3/guides/product-catalog/categories/adding-a-category) * [Importing Categories](/v3/guides/product-catalog/categories/importing-categories) * [Viewing Category Import History](/v3/guides/product-catalog/categories/viewing-category-import-history) * [Managing Categories](/v3/guides/product-catalog/categories/managing-categories) # Categories Overview ### Overview Categories define the structure of item lists in **Product Catalog**. Categories can be organized into a hierarchical tree structure based on common attributes, allowing logical grouping of items. Every item on your product list must belong to one category or subcategory. There is no limit to the number of categories or subcategories. Categories and subcategories can be best explained with the tree analogy. For instance, if a furniture company has "furniture" as the main category or "root," the branches would be subcategories like "tables" and "chairs," and the leaves would represent individual products, like an oak dining table that seats 4. Visually, that would look something like this: > ## 📘 Example of the Tree Analogy > > * Root: Furniture > * Branch: Tables > * Leaf: Dining Tables > * Product: Oak dining table seating 4 > * Product: Oak dining table seating 6 > * Leaf: Coffee Tables > * Product: Oak coffee table > * Product: Oak coffee table, glass top > * Branch: Chairs > * Leaf: Dining Chairs > * Product: Oak dining chair > * Product: Oak dining chair, with arms > * Leaf: Office Chairs > * Product: Computer chair > * Product: Computer chair, reclining Any attribute applied to a category is inherited by its subcategories. This is known as attribute inheritance. However, inherited attributes can be overwritten by assigning the attribute to the subcategory itself. For example, the broad "office chairs" category could have a "material" attribute set to leather, but a specific subcategory could be set to nylon. ### Related Topics * [Adding a Category](/v3/guides/product-catalog/categories/adding-a-category) * [Importing Categories](/v3/guides/product-catalog/categories/importing-categories) * [Viewing Category Import History](/v3/guides/product-catalog/categories/viewing-category-import-history) * [Managing Categories](/v3/guides/product-catalog/categories/managing-categories) # Importing Categories ### Overview Categories are hierarchical tree structures that allow you to organize items, variants, and bundles into groups based on similar attributes. This document covers the process of importing multiple categories using a CSV file. You can also [add categories individually](/v3/guides/product-catalog/categories/adding-a-category). #### CSV File Guidelines You can import categories using CSV files only, fabric doesn't support any other data or file formats. Here are the key points to consider: * The headers, represented in the first row of the CSV file, should match the attributes of the category. * While category titles aren't case-sensitive, maintaining case consistency with the original category titles is recommended. * Empty rows and columns are ignored. * We recommend that you download the template file to use as a guide when creating your own CSV file for import to minimize errors during the import process. #### Category Data Formatting When preparing your CSV file for import, ensure that the category data format aligns with the column requirements. Different columns have specific data input requirements: * **Action**: Accepts one of the following commands: * **Create** adds a new category. * **Update** replaces the details of an existing category. * **Upsert** creates a new category or replaces the details of an existing category. Note that if no action is specified for a row, upsert is considered the default. * **Delete** removes an existing category. * **Node ID**: Represents the Category ID. * When creating a category, this field must be left blank; otherwise, you will receive an error. * When updating, upserting, or deleting a category, enter the Node ID or Node Name. * **Parent Category**: Unless you are creating a primary or root category, specify the parent for the new category you want to create or update. * **Node Name**: Name of the root, branch, or leaf categories that you are creating or updating. * **Order**: The order in which a given category must appear among sibling categories. If multiple categories are assigned the same order, the newly added categories appear in alphabetical order. * **Product Attributes**: Attributes of products associated with a category. * **Category Attributes**: Attributes of a category. #### Prerequisites Ensure that you have access to the **Product Catalog** in Copilot. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). #### Procedure 1. In the left menu, click **Product Catalog > Categories**.\ The **Categories** page is displayed. 2. Click **Import**.\ The **Import CSV file** window is displayed. This window provides a link to download an example template for the CSV file. 3. To import a CSV file, do one of the following options: * Drag and drop the CSV file into the window. * Click **Select a File from your computer**. * Click **Import file**. The CSV file is imported and the changes you indicated to your categories are made. ### Related Topics * [Categories Overview](/v3/guides/product-catalog/categories/categories_overview-overview) * [Adding a Category](/v3/guides/product-catalog/categories/adding-a-category) * [Viewing Category Import History](/v3/guides/product-catalog/categories/viewing-category-import-history) * [Managing Categories](/v3/guides/product-catalog/categories/managing-categories) # Managing Categories ### Overview Categories are hierarchical tree structures that allow you to organize items, variants, and bundles into groups based on similar attributes. This document covers the process of adding attributes to categories, renaming categories, and deleting categories. ### Adding Product Attributes #### Overview Item attributes are the attributes that an item, also called a product, must have configured in order to be added to a category. Individual item attributes are set up in the Attributes section. Those product attributes can then be added to a category using the procedure below. As an example, a home décor company might have a category for rugs and want to require any items added to that category to have length and width information. The attributes for dimensions would be set up in **Product Catalog > Attributes > Product** and then added to a category in **Product Catalog > Categories**. It's required to set up a category’s product attributes prior to adding any items to it. If a category is missing item attributes, no item can be created for that category. #### Procedure 1. In the left menu, click **Product Catalog > Categories**.\ The **Categories** page is displayed. 2. Mouse over the desired category and click on the vertical ellipses (**⋮**) at the right. 3. Click **Product attributes**.\ The **Product attributes** menu is displayed. 4. Click the **Add Product Attributes** dropdown.\ The dropdown displays a list of category attributes as created in **Product Catalog > Attributes > Product**. 5. To add an attribute, click its corresponding checkbox. You can add as many attributes as needed.\ Note that system-mandatory attributes are separated for easier management. These attributes are shown by default, but need to be saved so that you can add to the category. 6. (Optional) To the right of a product attribute, click the vertical ellipses (**⋮**) and do the following: * To make the attribute mandatory, click **Make attribute mandatory**. * To remove the attribute, click **Remove attribute**. 7. Click **Save**. The category attributes you selected are applied to the category and all of its subcategories. ### Adding Category Attributes #### Overview Category attributes allow you to apply a group of attributes to your category hierarchy. These attribute groups are set up in **Product Catalog > Attributes > Category**. You can apply category attributes at the root level of your category hierarchy or at the subcategory level. Subcategories inherit the category attributes applied to the parent category unless you select a different group of category attributes at the subcategory level. #### Procedure 1. In the left menu, click **Product Catalog > Categories**.\ The Categories page is displayed. 2. On the desired category click on the vertical ellipses (**⋮**) at the right.\ To apply category attributes to the entire category hierarchy, click on the vertical ellipses to the right of the Root menu. 3. Click **Category attributes**.\ The **Category Attributes** menu is displayed. 4. Click the **Add Category Attributes** dropdown.\ The dropdown menu displays a list of category attributes that are created in the **Product Catalog > Attributes > Category** page. 5. Click the attributes you would like to add. 6. Click **Save**. The category attributes that you selected are applied to the category and its subcategories. ### Viewing Items in a Category 1. In the left menu, click **Product Catalog > Categories**.\ The **Categories** page is displayed. 2. On the desired category click on the vertical ellipses (**⋮**) at the right. 3. Click **View Items**. The list of all items belonging to the selected category and its subcategories is displayed. ### Renaming a Category 1. In the left menu, click **Product Catalog > Categories**.\ The **Categories** page is displayed. 2. On the desired category click on the vertical ellipses (**⋮**) at the right. 3. Click **Rename**. 4. Enter a new name. 5. Press **Enter**. The category name is updated. ### Deleting a Category 1. In the left menu, click **Product Catalog > Categories**.\ The **Categories** page is displayed. 2. On the desired category click on the vertical ellipses (**⋮**) at the right. 3. Click **Delete**. 4. Click **Yes, Delete**. The category is deleted. ### Related Topics * [Categories Overview](/v3/guides/product-catalog/categories/categories_overview-overview) * [Adding a Category](/v3/guides/product-catalog/categories/adding-a-category) * [Importing Categories](/v3/guides/product-catalog/categories/importing-categories) * [Viewing Category Import History](/v3/guides/product-catalog/categories/viewing-category-import-history) # Adding Category Attributes to a Collection Category attributes define specific characteristics of a category, describing items within it. Using categories, you can organize products into a tree structure of subcategories, with each item belonging to a category or subcategory. ## Procedure 1. In the left menu, click **Product Catalog > Collections**.\ The **Collections** page is displayed. 2. Click a collection.\ The **Collection Preview** page is displayed. 3. Mouse over the collection and click the pencil icon. The **Manage** menu is displayed. 4. Click the **Add category attribute** field and select a category attribute. 5. Enter a corresponding value for the category attribute. 6. Click **Save**. The category attributes are added to the collection. ## Related Topics * [Collections Overview](/v3/guides/product-catalog/collections/collections) * [Creating a Collection](/v3/guides/product-catalog/collections/creating-a-collection) * [Importing a Collections](/v3/guides/product-catalog/collections/importing-collections) * [Managing Collections](/v3/guides/product-catalog/collections/managing-collections) # Collections Collections in Product Catalog are a flexible tool to group products to meet dynamic merchandising purposes on a storefront. Unlike categories, which provide a fixed, hierarchical structure, collections reflect flexible grouping of products for display on a storefront based on specific themes, promotions, or attributes. Collections enable you to aggregate products from multiple categories. You can further refine the curated list based on attributes. ## Key Features of Collections * **Dynamic Grouping**: After the rules for a collection are defined, you don't need to refresh or re-run the collection to have an accurate list of products when the catalog is refreshed. When new products are added to the catalog or existing products are updated to match collection rules, they will appear in the collection automatically. * **Attribute-based Rules**: You can set up collections by defining rules based on product attributes , for example price range, brand, or availability. This allows for precise targeting and segmentation, helping you create custom displays that align with merchandising strategies. ## Collections vs Categories While both collections and categories help organize products, they serve different purposes: * [Categories](v3/guides/product-catalog/categories/categories_overview) provide a foundational, static structure for products, making it easier for users to navigate a catalog in a structured, hierarchical way. For example, *Furniture > Living Room > Sofas*. * Collections offer flexibility, allowing you to aggregate products from multiple categories into a single, curated list, perfect for promotional or thematic displays on a storefront. For example, a page on the storefront could showcase items from all categories made by a specific manufacturer, or a sale on sectional sofas. ## Rules and Conditions Collections are set up by selecting the categories that contain the products that you want to include in the collection. You can further refine the products from those categories based on their attributes using customizable rules and conditions. Conditions consist of a product attribute, a validation option, and a value. For example, if you want to create a collection of only red items, you must set the condition for the product attribute to *color*, the validation option to *is exact match*, and the value to *red*. The [product attribute](/v3/guides/product-catalog/attributes/product-attributes-overview) and value in conditions are user-specified. The following table lists the fabric-generated validation options: | **Validation Option** | **Description** | | ----------------------- | -------------------------------------------------------------------------- | | **Is equal to** | The product attribute must match the specified value exactly. | | **Is greater than** | The product attribute must be greater than the specified value. | | **Is less than** | The product attribute must be less than the specified value. | | **Includes** | The product attribute must include the specified value. | | **Excludes** | The product attribute must exclude the specified value. | | **Contains** | The product attribute must contain a partial match to the specified value. | | **Contains exact word** | The product attribute must contain the exact word specified. | | **Does not contain** | The product attribute must not include the specified value. | | **Is exact match** | The product attribute must match the specified value exactly. | | **Yes** | The product attribute must be marked as *true*. | | **No** | The product attribute must be marked as *false*. | The relationships between conditions within a rule are governed by *AND* and *OR* operators so that you can create precise inclusion or exclusion rules. For example, a rule with conditions based on *AND* logic might require that a product be large and green and made in the USA. A rule with conditions that include *OR* logic might require that a product be large and green or blue. A collection can contain up to five rules, with each rule containing up to five conditions. Rules can only be joined together with an *AND* operator. ## Use Cases A furniture store with a diverse range of products needs to drive sales by promoting specific types of sofas from its extensive Product Catalog. While the store’s catalog is organized by broad categories, such as *Sofas*, these general categories don’t effectively highlight certain products for promotional events. The store wants to feature only a select type of sofa within its broad Sofas category to align with current market trends and customer interests. The following use cases demonstrate two scenarios: one in which conditions are joined with the *AND* operator, and another in which conditions are joined with the *OR* operator. ### Scenario 1: Creating a targeted sofa collection with AND operators In this scenario, the store wants to create a collection of sofas that meet all specified conditions, narrowing down the selection to a precise product type for a focused promotion. The goal is to quickly create a collection of sofas that are: * *Sectional* in style * *Not powered* * Not made of *leather* * Manufactured by *Top Brand* * Belonging to the *Windham* product line Using a collection, the store can set up this sale within the *Sofas* category by applying a single rule with multiple conditions that precisely define the products to be included. Here’s how each condition helps narrow down the products in the category to create a tailored collection: * Condition 1 * Product Attribute: *Style* * Validation Option: *Is exact match* * Value: *Sectional* * Condition 2 * Product Attribute: *Powered* * Validation Option: *Is equal to* * Value: *False* * Condition 3 * Product Attribute: *Material* * Validation Option: *Does not contain* * Value: *Leather* * Condition 4 * Product Attribute: *Brand* * Validation Option: *Includes* * Value: *Top Brand* * Condition 5 * Product Attribute: *Line* * Validation Option: *Includes* * Value: *Windham* In this collection, *AND* logic is used across all conditions, ensuring that the included products are sectional sofas that are non-powered, non-leather, and exclusively from the Windham line by Top Brand. ### Scenario 2: Expanding a sofa collection with OR operators In this scenario, the store wants to broaden the selection for a promotion by including sofas that meet at least one of several material options, allowing for greater flexibility. The goal is to create a collection of sofas that are: * *Sectional* in style * Made of *leather* * Made of *microfiber* Here’s how each condition would be structured to create this broader collection: * Condition 1 * Product Attribute: *Style* * Validation Option: *Is exact match* * Value: *Sectional* * Condition 2 * Product Attribute: *Material* * Validation Option: *Is equal to* * Value: *Leather* * Condition 3 * Product Attribute: *Material* * Validation Option: *Is equal to* * Value: *Microfiber* In this collection, *AND* logic is used between Conditions 1 and 2, with *OR* logic joining Conditions 2 and 3, ensuring that the included products are sectional sofas that are either leather or microfiber. ## Related Topics * [Creating a Collection](/v3/guides/product-catalog/collections/creating-a-collection) * [Importing Collections](/v3/guides/product-catalog/collections/importing-collections) * [Managing Collections](/v3/guides/product-catalog/collections/managing-collections) * [Adding Category Attributes to a Collection](/v3/guides/product-catalog/collections/adding-category-attributes) # Creating a Collection This topic covers the process of creating a collection. Collections are most effective when you’ve fully configured your Product Catalog elements. Before creating a collection, it’s helpful to have the following in place: * [Product Attributes](/v3/guides/product-catalog/attributes/product-attributes-overview): Setting up product attributes enables you to refine collections based on these specific product characteristics, such as style, material, or brand. * [Products](http://localhost:3000/v3/guides/product-catalog/list/items/items): Adding products and [assigning product attributes to them](/v3/guides/product-catalog/list/items/adding-an-item) ensures that collections capture the right products. * [Categories](/v3/guides/product-catalog/categories/categories): Organizing your products into categories provides a foundation for building collections and makes it easier to select relevant products. With these elements set up, you’ll be able to define collection rules and conditions more precisely, making it easier to organize products according to specific criteria. ## Prerequisites * Ensure that you have **Admin** or **Editor** privileges for Product Catalog. For more detailed information on these settings, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control-offers-roles). ## Procedure 1. In the left menu, click **Product Catalog > Collections**. * The **Collections** page is displayed. 2. Click **Create Collection**. * The **Basic details** section on the **Create Collection** page is displayed. 3. In the **Collection name** field, enter a name. 4. To add one or more categories, in the **Your Catalog categories** section: * Select categories in the pre-populated list. * Search for the name of the category and selecting one or more of the matching categories in the results. 5. Click **Next**. * The **Choose products for your collection** section is displayed with a list of products in the categories you selected. You can select categories you want to add or remove by using the **Category** filter. 1. To define the rules and conditions that determine which products are included in the collection, select **Attributes & Values**. 2. To set up the first rule, in the **Attributes & Values** > **Rule 1**, and do the following: 1. In the **If attribute** field, select an attribute. 2. In the **Validation** field, select a validation option. 3. In the **Value** field, enter a value. 4. If you want to join this rule with a condition, click **Add Condition** and click **AND** or **OR**. You can include up to five conditions within a single rule. Repeat these steps as needed to create up to five rules per collection. You can't have an empty rule. If a rule is empty, the **Apply** button is disabled. 5. (Optional) To create a new rule, click **Add Rule** and fill out the condition fields as required. 6. Click **Apply**. 3. Click **Next**. * The **Review and add products to your collection** section is displayed. 4. Click **Save**. * The **Automatically create sub-collections?** window is displayed. Do one of the following: * To enable automatic organization of your collection into sub-collections based on the categories it contains, click **Yes, Create**. * To organize your collection into sub-collections manually, click **No, Create My Own**. The Collection Preview page is displayed. If you want to make changes to the sub-collections, follow the steps to [create a Sub-Collection](/v3/guides/product-catalog/collections/managing-collections#creating-a-sub-collection). 5. To activate click the **Inactive** button. The collection is activated. 6. Click **Run Collection**. The collection is created. If you are adding category attributes to the collection, see [Adding Category Attributes to a Collection](/v3/guides/product-catalog/collections/adding-category-attributes). ## Related Topics * [Collections Overview](/v3/guides/product-catalog/collections/collections) * [Importing Collections](/v3/guides/product-catalog/collections/importing-collections) * [Managing Collections](/v3/guides/product-catalog/collections/managing-collections) * [Adding Category Attributes to a Collection](/v3/guides/product-catalog/collections/adding-category-attributes) # Importing Collections Collections serve as an alternative to categories for organizing products, especially useful for short-term merchandising campaigns. This topic covers the process of importing multiple collections with a CSV file. You can also add collections individually. We highly recommend that you download the template file to use as a guide when creating your CSV file for import to minimize errors during the import process. ### CSV File Guidelines You can import collections using CSV files only; Product Catalog doesn't support any other data or file formats. Here are the key points to consider: * The headers, represented in the first row of the CSV file, should match the attributes of the collection. * While collection titles aren't case-sensitive, maintaining case consistency with the original collection titles is recommended. * Empty rows and columns are ignored. ### Collection Data Formatting When preparing your CSV file for import, ensure that the collection data format aligns with the column requirements. Different columns have specific data input requirements: * **Action:** Accepts one of the following commands: * Create adds a new collection. * Update replaces the details of an existing collection. * Upsert creates a new collection or replaces the details of an existing collection. Note that if no action is specified for a row, upsert is considered the default. * **Node ID:** Represents the Collection ID. * **Parent Collection:** Unless you are creating a primary or root collection, specify the parent category for the new collection you want to create or update. * **Node Name:** Name of the root, branch, or leaf collection that you are creating or updating. * **Order:** The order in which a given collection must appear among sibling collections. If multiple collections are assigned the same order, the newly added collections appear in alphabetical order. * **Category Attributes:** Attributes that are assigned to the Collection. * **Categories Included:** Categories to include when creating the collection. * **Categories Excluded:** Categories to exclude when creating the collection. * **Product Attribute Filters:** Attribute conditions that filter the eligible products for the Collection node. Filter operations are dependent on the attribute type. | Attribute Type | Available Operations | | -------------- | ------------------------------------------ | | Text | Contains, Doesn't contain, Is exact match | | Number | Is equal to, Is less than, Is greater than | | List of Value | Includes, Excludes | | Boolean | Yes, No | | Date | Is equal to, Is less than, Is greater than | | Serial | Is equal to, Is less than, Is greater than | ### Example file | Action | Node Id | Parent Collection | Node Name | Order | Category Attributes | Categories Included | Categories Excluded | Product Attribute Filters | | --------------------------- | -------------- | ----------------- | --------------------- | ----- | ------------------------ | ------------------------------------ | ------------------- | ---------------------------------------------- | | Create | 12345645648689 | | Import-collection | 1 | Collection SEO=SEO Value | category date YYYY-MM-DD=2024-03-22; | | | | Import-collection | Parent-1 | 1 | Furniture,Accessories | | | | | | | Import-collection->Parent-1 | Child 1 | 1 | | | | Furniture>Desks | | name=Description; op=CONTAINS; value=furniture | | Import-collection->Parent-1 | Child 2 | 2 | | | | Furniture>Chairs | | name=Color; op=ISEXACTMATCH; value=Brown | ## Prerequisites Before initiating the item import, ensure that: * You have created at least one category with items and attributes assigned to it. For more information about creating categories, see the Categories section. * The CSV file adheres to the guidelines. ## Procedure 1. In the left menu, click **Product Catalog > Collections**. The **Collections** page is displayed. 2. Click **Import Collection**. The **Import CSV file** window is displayed. 3. (Optional) To download the template, click **template here**. The template is downloaded. 4. To import a CSV file, do one of the following: * Drag and drop the file into the window. * Click **Select a File** from your computer. 5. Click **Import file**. The CSV file is imported and the collection is created. To track the import status, go to **Product Catalog > Background Jobs > Imports** page. ## Related Topics * [Collections Overview](/v3/guides/product-catalog/collections/collections) * [Creating a Collection](/v3/guides/product-catalog/collections/creating-a-collection) * [Managing Collections](/v3/guides/product-catalog/collections/managing-collections) * [Adding Category Attributes to a Collection](/v3/guides/product-catalog/collections/adding-category-attributes) # Managing Collections This topic covers the process of editing collections, creating sub-collections, and deleting collections and sub-collections. ## Prerequisites Ensure you have created at least one collection. ### Sorting collections You can sort collections and sub-collections alphabetically in either ascending or descending order. 1. In the left menu, click **Product Catalog > Attributes > Collections**. The **Collections** page is displayed. 2. Click a collection. The **Collection Preview** page is displayed. 3. Click the arrow next to the name of the collection or sub-collection to sort. The collections are sorted. ### Editing a collection 1. In the left menu, click **Product Catalog > Attributes > Collections**. The **Collections** page is displayed. 2. Click a collection. The **Collection Preview** page is displayed. 3. Click **Manage Products** for the desired collection. The add products window is displayed. 4. Edit the **Category**, **Attributes & Values**, and **Status** filters as required. 5. Click **Add Products**. 6. Click **Run Collection**. The collection is updated. ### Creating a sub-collection 1. In the left menu, click **Product Catalog > Attributes > Collections**. The **Collections** page is displayed. 2. Click a collection. The **Collection Preview** page is displayed. 3. Click the collection to create a sub-collection for. A new column for the next level of the collection is displayed to the right with the outline of a new sub-collection. 4. Click the plus sign (**+**) icon inside the outline of the new sub-collection. 5. In the **Enter name** field, give the sub-collection a name and press **Enter**. 6. To add categories and products, click **Manage Products**. The add products window is displayed. 7. Edit the **Category**, **Attributes & Values**, and **Status** filters as required. 8. Click **Add Products**. 9. Click **Run Collection**. The sub-collection is created. ### Deleting a collection or sub-collection 1. In the left menu, click **Product Catalog > Attributes > Collections**. * The **Collections** page is displayed. 2. Click a collection. * The **Collection Preview** page is displayed. 3. Mouse over a sub-collection and click the trash can icon. * The **Delete Collection** window is displayed. Note: Deleting a sub-collection also deletes any sub-collections it contains. 4. Click **Yes, Delete**. The collection is deleted. ## Related Topics * [Collections Overview](/v3/guides/product-catalog/collections/collections) * [Creating a Collection](/v3/guides/product-catalog/collections/creating-a-collection) * [Importing a Collections](/v3/guides/product-catalog/collections/importing-collections) * [Adding Category Attributes to a Collection](/v3/guides/product-catalog/collections/adding-category-attributes) # Data Ingestion Best Practices ## Overview Optimized data management is at the core of every successful e-commerce operation. For fabric users managing extensive product catalogs, finely tuned data ingestion is paramount. Adhering to fabric’s best practices will ensure the fastest processing speed, optimum resource management, and enhanced accuracy when importing your data. This topic covers subjects such as file size restrictions, types of import actions, reconciling errors, and most importantly, the best method of data ingestion: **delta updates**. ## File Size and Upload Guidelines Before you upload your first file, it's important to understand file size restrictions and how fabric handles files that exceed those restrictions. * **No files larger than 300MB** Limit the size of your uploads to 300MB. * **Split files larger than 300MB into smaller ones** Splitting large files into smaller ones before uploading them is the quickest way to import large amounts of data. For fastest processing, the ideal file size is between 80-100MB. * **Parallel processing** fabric can process multiple files in parallel. The number of parallel files depends on your package. When the limit has been reached, subsequent files will be in a “scheduled” status until moved into the queue. Reach out to your account representative to learn more. * **Automatic file chunking is available** fabric can automatically chunk files larger than 300MB into smaller files to improve performance. This feature is only available in select packages. Reach out to your account representative to learn more. ## Delta Updates A delta update involves transmitting only the changed data fields when making an update. This is in contrast to the more traditional “full feed” updates that send the entire dataset. By sending only the changed data fields, fabric can process updates without reprocessing unchanged data. **Delta updates are the preferred method for all uploads.** ### Delta updates vs. full feed updates | | Full Feed Data Updates | Delta Data Updates | | -------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------- | | **Resource Usage** | Requires more resources | Requires fewer resources | | **Processing Time** | Longer processing time | Shorter processing time | | **Data Transmission** | Transmits entire dataset | Transmits only modified data fields | | **Network Bandwidth** | Consumes more network bandwidth | Requires less network bandwidth | | **Storage** | Requires more storage space | Requires less storage space | | **Error Handling** | Prone to errors during full data transmission | Less prone to errors due to focused updates | | **Scalability** | Less scalable for large datasets | More scalable, especially for large datasets | | **Data Accuracy** | Potential for data redundancy and inconsistency | Enhances data accuracy by focusing on changes | | **Operational Efficiency** | Lower operational efficiency due to higher resource consumption | Higher operational efficiency due to optimized resource usage | | **Incremental Updates** | Updates entire dataset each time | Updates only modified data fields incrementally | ## Ways to Import Data You can import data into fabric using the following methods: * CSV import via API * Import via RESTful APIs * CSV import via the Copilot interface The import method you choose is up to you, but in each case, uploading smaller files and using the delta update method will result in quicker processing, better resource management, and a higher degree of accuracy. ## Data Formatting It's crucial to make sure your dataset is accurate and compatible with fabric’s formatting before initiating the upload process. Validate your data to avoid errors by reviewing the file to identify any changes since the last upload and confirm that the data structure and format are correct. See the following pages for formatting guidelines: * [Importing Items](https://developer.fabric.inc/v3/guides/product-catalog/list/items/importing-items#csv-file-guidelines) * [Importing Bundles](https://developer.fabric.inc/v3/guides/product-catalog/list/bundles/importing-bundles#csv-file-guidelines) * [Importing Product Attributes](https://developer.fabric.inc/v3/guides/product-catalog/attributes/importing-product-attributes#attribute-data-formatting) * [Importing Categories](https://developer.fabric.inc/v3/guides/product-catalog/categories/importing-categories#csv-file-guidelines) ## Import Actions The actions you use when importing items, bundles, categories, and collections tell fabric how you are modifying your data. The following actions are available: * **UPSERT:** Creates a new product if the product doesn't exist, or it updates an existing product. * **CREATE:** Creates a new product. * **UPDATE:** Updates existing product. * **PUBLISH:** Publishes an existing product that was in draft state. The product is published to the storefront. * **UNPUBLISH\_KEEP\_DRAFT:** Unpublishes an existing product. If the product already has a draft version, the live version is unpublished and discarded. If product doesn't already have a draft version, the live version is unpublished and saved as a draft. * **UNPUBLISH\_KEEP\_LIVE:** Unpublishes an existing product. If the product already has a draft version, the draft version is discarded. * **DELETE:** Deletes the existing product. * **ATTACH\_VARIANT:** Adds variants to an existing parent product. The variant column holds the variant to be attached to the SKU. * **DETACH\_VARIANT:** Detaches existing variants. The variant column holds the variant to be detached from the SKU. * **CHANGE\_CATEGORY:** Updates the category of existing product. * **ATTACH\_CHANNELS:** Appends listed channels to the product, allowing it to be available across various sales channels. You can specify the channels to be attached in the Channels column. After attaching channels, users should verify the attachment post-action to confirm the successful addition of channels to the product. * **DETACH\_CHANNELS:** Removes listed channels from a product. Users specify the channels to be detached in the Channels column. This action is useful when a product needs to be removed from specific sales channels while remaining available on others. Fabric users should verify the detachment of channels post-action to ensure the desired channels are removed from the product. ## Reconciling Errors If there are errors during processing, download the error file and review each error to identify the problem. Correct the errors by updating the CSV file with the necessary changes and validate the corrected CSV file before re-importing. * [Troubleshooting Item Imports](https://developer.fabric.inc/v3/guides/product-catalog/list/items/importing-items#troubleshooting) * [Troubleshooting Bundle Imports](https://developer.fabric.inc/v3/guides/product-catalog/list/bundles/importing-bundles#troubleshooting) # Adding a Bundle Bundles are two or more products sold together. Creating a bundle allows you to group products that are exclusively sold together or group products that can be purchased together and separately. This document covers the process of adding a single bundle. To add multiple bundles at the same time, see Import Bundles. ## Prerequisites Ensure that you have: * Set up at least one product attribute group. For more information about creating categories, see the [Categories section](/v3/guides/product-catalog/categories/adding-a-category). * Created at least one leaf category to add the bundle to. For more information about creating categories, see the [Categories section](/v3/guides/product-catalog/categories/adding-a-category). * Created at least two items. For more information about creating items, see [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) or [Importing Items](/v3/guides/product-catalog/list/items/importing-items). ## Procedure 1. In the left menu, click **Product Catalog > List > Bundles**.\ The **Bundles** page is displayed. 2. Click **New Bundle**.\ The **Select a leaf category** window is displayed. This window shows the root categories and leaf categories that are configured in the Categories page. 3. Select a leaf category. Leaf categories are labeled **leaf**. You must click a root category to view the leaf categories within that category. If a root category has more root categories within it, you might have to continue selecting root categories until you can select a leaf category. 4. Click **Next**.\ The attribute groups you have created and mapped are displayed based on the configuration in the Attributes page. 5. To edit an attribute group, click the **Edit** button next to the attribute group name. * In the **Edit Attributes** window, enter the required details. * Click **Save**.\ If you want to use more than one attribute group, repeat the above steps for all of those attribute groups. 6. Click **Bundle items**.\ The **Bundle items** tab is displayed. 7. Click **Add items**.\ The **Add items** page is displayed, showing the items in your product list. 8. Select the items to add to the bundle. 9. (Optional) Click **Select individual variants**.\ The **Select individual variants** tab is displayed. 10. (Optional) Select the item variants to add to the bundle. 11. Click **Save**. 12. Click the Bundle name in the breadcrumb at the top of the page.\ The **Edit Bundle** page is displayed. 13. (Optional) If internationalization is enabled, from the language dropdown menu, select the desired language variant for the item. 14. (Optional) Click **Publish**. The bundle is published and moved from draft to active state. ## Related Topics * [Bundles Overview](/v3/guides/product-catalog/list/bundles/bundles) * [Importing Bundles](/v3/guides/product-catalog/list/bundles/importing-bundles) * [Viewing Bundle Import History](/v3/guides/product-catalog/list/bundles/viewing-bundle-import-history) * [Editing a Bundle](/v3/guides/product-catalog/list/bundles/editing-a-bundle) * [Searching, Filtering, and Sorting Bundles](/v3/guides/product-catalog/list/bundles/searching-filtering-sorting-bundles) # Bundles Overview Bundles are combinations of two or more products sold exclusively together or individually, depending on the configuration. Pure bundles consist of items exclusively sold together, and individual items can't be purchased separately. Shoppers have the flexibility to buy items in mixed bundles together or separately. For example, in a living room furniture set consisting of a coffee table and an end table, shoppers can choose to purchase each table individually or buy both tables together as part of the *living room set* bundle. ## Related Topics * [Adding a Bundle](/v3/guides/product-catalog/list/bundles/adding-a-bundle) * [Importing Bundles](/v3/guides/product-catalog/list/bundles/importing-bundles) * [Viewing Bundle Import History](/v3/guides/product-catalog/list/bundles/viewing-bundle-import-history) * [Editing a Bundle](/v3/guides/product-catalog/list/bundles/editing-a-bundle) * [Searching, Filtering, and Sorting Bundles](/v3/guides/product-catalog/list/bundles/searching-filtering-sorting-bundles) # Editing a Bundle Product bundles can be edited in the List section of **Product Catalog**. ## Prerequisites Ensure that you have created at least one bundle. ## Procedure 1. In the left menu, click **Product Catalog > List > Bundles**.\ The **Bundles** page is displayed. 2. Click on a bundle.\ The **Bundle Details** page is displayed.\ The attribute groups you have created and mapped are displayed. 3. Click the **Edit** button next to an attribute group.\ The **Edit Attributes** window is displayed. 4. Edit the attributes as required and click **Save**.\ The attributes are saved. 5. (Optional) Repeat steps 3 and 4 for additional attribute group menus. 6. (Optional) If [internationalization](/v3/guides/settings/internationalization/internationalization) is enabled, from the language dropdown menu, select the desired language variant for the item. 7. (Optional) Click **Publish**.\ The item is moved from draft to active state. ## Related Topics * [Bundles Overview](/v3/guides/product-catalog/list/bundles/bundles) * [Adding a Bundle](/v3/guides/product-catalog/list/bundles/adding-a-bundle) * [Importing Bundles](/v3/guides/product-catalog/list/bundles/importing-bundles) * [Viewing Bundle Import History](/v3/guides/product-catalog/list/bundles/viewing-bundle-import-history) * [Searching, Filtering, and Sorting Bundles](/v3/guides/product-catalog/list/bundles/searching-filtering-sorting-bundles) # Importing Bundles Bundles are two or more items sold together. Creating a bundle allows you to group items that are exclusively sold together or group items that can be purchased together and separately. This document covers the process of adding multiple bundles through CSV import. You can also [add a single bundle](/v3/guides/product-catalog/list/bundles/adding-a-bundle). ## CSV File Guidelines You can import bundles using CSV files only; no other data or file formats are supported. Here are the key points to consider: * Formulas in formula-driven attributes are executed automatically after bundles have been imported. * If the CSV file doesn't have an attribute that's added to the category, you can add a new column in the CSV with the attribute name in the header. The upload process will populate the value for this attribute. Note that empty rows and columns are ignored. * Each bundle should include a category node. If the category node is missing, the bundle won't be created. * Use the **- >** delimiter for category nodes. Incorrect mapping or absence of category nodes may result in bundle creation issues. * The headers, represented in the first row of the CSV file, should match the attributes of the bundle. While attribute titles aren't case-sensitive, maintaining case consistency with the original attribute titles is recommended. * Empty rows and columns are ignored. * When updating or upserting bundles, entering *NULL* in a spreadsheet cell will override existing values with blank values. * The ActionTarget field determines what action is being taken for that row of data. We recommend that you download the template file to use as a guide when creating your own CSV file for import to minimize errors during the import process. ### Supported actions | **Action** | **Description** | | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **UPSERT** | Creates a new bundle if the bundle doesn't exist, or updates an existing bundle. | | **CREATE** | Creates a new bundle. | | **UPDATE** | Updates an existing bundle. | | **PUBLISH** | Publishes an existing bundle that's in draft state, making it available on the storefront. | | **UNPUBLISH\_KEEP\_DRAFT** | Unpublishes an existing bundle. If a draft version exists, the live version is unpublished and the draft is retained. If no draft exists, the live version is unpublished is saved as a draft. | | **UNPUBLISH\_KEEP\_LIVE** | Unpublishes an existing bundle and moves it to the draft state. If a draft of that item already existed, it's deleted. | | **DELETE** | Deletes the existing bundle. | | **ATTACH\_BUNDLE\_PRODUCTS** | Adds products to an existing bundle. You can specify the product SKU and quantity of the bundle products in the items column. | | **DETACH\_BUNDLE\_PRODUCTS** | Detaches products from an existing bundle and converts them to items. The items column holds the SKU and quantity of the bundle products to be detached from the bundled SKU. | | **CHANGE\_CATEGORY** | Updates the category of an existing bundle. Depending on how your storefront is configured, this may change where or how your bundle is viewed by the customer. | | **ATTACH\_CHANNELS** | Adds specified channels to the bundle. The channels column holds the channels to be attached. | | **DETACH\_CHANNELS** | Removes specified channels from the bundle. The channels column holds the channels to be detached. | ### Attribute data format When preparing your CSV file for import, ensure that the attribute data format aligns with attribute type requirements. Different attribute types have specific formatting criteria: | **Data Type** | **Format Rule** | | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Text** | Ensure the data is in text string format. | | **Number** | Use numerical data only. All non-numeric data is ignored. | | **Boolean** | Use *TRUE* or *FALSE* only. All other values are ignored. | | **Date** | Format dates exactly as during attribute creation. | | **List of values** | The value you enter must match one of the predefined values you set up when [adding a list of values attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute). | | **Serial** | Leave this field blank; fabric automatically generates the serial number during import. | | **SKU** | Provide the SKU for the bundle to be created. | The status attribute is imported as live only when all mandatory attributes are provided for the bundle. Otherwise, the status is automatically updated to draft, regardless of the value you provide in the file. ## Prerequisites Before initiating the bundle import, ensure that: * You have created at least one leaf category with attributes assigned to it to add the bundle to. For more information about creating categories, see the [Categories section](/v3/guides/product-catalog/categories/adding-a-category). * The CSV file adheres to the guidelines. ## Procedure 1. In the left menu, click **Product Catalog > List > Bundles**.\ The **Bundles** page is displayed. 2. Click **Import**.\ The **Select a leaf category** window is displayed. 3. Select a **Leaf**.\ The root categories and leaf categories appear as they're set up in Categories. Depending on your configuration, you may have to select one or more root categories before selecting a leaf category. 4. Click **Next**.\ The **Import CSV file** window is displayed. This window provides a link to download an example template for the CSV file. 5. To import a CSV file, do one of the following options: * Drag and drop the CSV file into the window. * Click **Select a File from your computer**. 6. Click **Import file**. The CSV file is imported, and the bundles are added to your product list. fabric stores the CSV files you upload to your account. You can view the status of the import and re-download the original files by visiting the [Import History](/v3/guides/product-catalog/list/bundles/viewing-bundle-import-history) page. ## Troubleshooting Refer to the following table for a list of common errors when importing and how to correct them. | Error Message | What it Means | What Happens to the Bundle | How to Resolve | Comment | | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | | **Category Node not found** | The category node name is incorrect or missing. | A bundle can’t be created without a proper category node. | Verify the name of the node and the delimiter. | | | **Internal Server Error** | Server issues. | The bundle isn't created or updated. | Try again. | This is an intermittent issue. | | **Attribute Name not found** | The attribute mentioned in the CSV header isn't added to the category. The attribute name must be an exact match. | The bundle is created, but this specific attribute will be ignored. | Check the attribute name and ensure it's added to the category for importing bundles. | | | **Attribute Name value is invalid** | The provided value has flaws or validation issues. | The attribute value won't be saved to the bundle. | Provide the correct attribute value. | Example: Adding text for a number-type attribute triggers this error. | | **Status Mandatory attributes (required)** | To set a bundle's status to live, all mandatory attributes are required. | The bundle is created, and the attributes are updated. However, it can't be set to live, defaulting its status to draft. | Ensure all mandatory attributes have a value in the CSV file. | For delta imports, all mandatory attributes and values are required to set the bundle's status to live. | | **Some mandatory attribute values missing** | Some mandatory attributes lack values in the CSV file. These are either globally mandatory attributes (set at the attribute level) or category-specific mandatory attributes. The bundle is created with errors; only values in the CSV are added. | Include values for all mandatory attributes. | Bundles with missing mandatory attributes can't be set to live. | | ## Related Topics * [Bundles Overview](/v3/guides/product-catalog/list/bundles/bundles) * [Adding a Bundle](/v3/guides/product-catalog/list/bundles/adding-a-bundle) * [Viewing Bundle Import History](/v3/guides/product-catalog/list/bundles/viewing-bundle-import-history) * [Editing a Bundle](/v3/guides/product-catalog/list/bundles/editing-a-bundle) * [Searching, Filtering, and Sorting Bundles](/v3/guides/product-catalog/list/bundles/searching-filtering-sorting-bundles) # Searching, Filtering, and Sorting Bundles The search, filter, and sort options on the **Bundles** page allows you to refine the3 list of bundles or find a specific bundle. You can use the filter option only if you have multiple bundles in your list and the bundles belong to multiple categories and collections with different attributes and values. ### To search for one or more bundles, do the following: 1. In the left menu, click **Product Catalog > List > Bundles**.
The Bundles page is displayed. 2. Type a search term into the search bar.
When searching, keep in mind the following: * You can search for multiple bundles by typing multiple search terms into the search bar, each separated by a comma. * When searching for multiple bundles, the search terms must be exact. Partial entries yield no results. * In addition to typing your searches into the search bar, you can also paste them. 3. Press **Enter**.
The results are displayed. ### To filter the list of bundles, do the following: 1. In the left menu, click **Product Catalog > List > Bundles**. The **Bundles** page is displayed. 2. Choose at least one of the following filters: * Click the **Category** dropdown and select a category. * Click the **Collection** dropdown and select a collection. * Click the **Date** dropdown and select a date range for the date the bundle was created and/or the date the bundles were modified. * Click the **Attributes & Values** dropdown. * Select a value to filter by in the **If** field. * Select a **Validation** option. * Enter a value in the **Value** field. * (Optional) Click **Add new condition** to filter by another attribute or value. Bundles that match the filters you chose are displayed. Click **Reset filters** to remove all filters. ### To sort the list of bundles, do the following: 1. In the left menu, click **Product Catalog > List > Bundles**.\ The **Bundles** page is displayed. 2. Click one of the column headers to sort the list of bundles.\ Sortable headers are SKU, Product name, Category, Created, and Status. The bundles are sorted. ### Related Topics * [Bundles Overview](/v3/guides/product-catalog/list/bundles/bundles) * [Adding a Bundle](/v3/guides/product-catalog/list/bundles/adding-a-bundle) * [Importing Bundles](/v3/guides/product-catalog/list/bundles/importing-bundles) * [Viewing Bundle Import History](/v3/guides/product-catalog/list/bundles/viewing-bundle-import-history) * [Editing a Bundle](/v3/guides/product-catalog/list/bundles/editing-a-bundle) # Adding an Item Items, which are also referred to as products, are services or stand-alone items sold individually. This document covers the process of adding an individual item to your list of products. You can also add multiple items at the same time by [importing](/v3/guides/product-catalog/list/items/importing-items) them using a CSV file. ## Prerequisites * Ensure that you have set up at least one product attribute group. For more information about creating attribute groups, see [Creating Attribute Groups](/v3/guides/product-catalog/settings/creating-attribute-groups). * Ensure that you have created at least one leaf category to add the item to. For more information about creating categories, see the [Categories section](/v3/guides/product-catalog/categories/adding-a-category). ## Procedure 1. In the left menu, click **Product Catalog > List > Items**.\ The **Items** page is displayed. 2. Click **New Item**.\ The **Select a leaf category** window is displayed. This window displays the root categories and leaf categories that are configured in the Categories page. 3. Select a leaf category. Leaf categories are labelled with **leaf**. You must click a root category to view the leaf categories within that category. If a root category has more root categories within it, you might have to continue selecting root categories until you can select a leaf category. 4. Click **Next**.\ The attribute groups you have created and mapped are displayed based on the configuration in the Attributes page. 5. To edit an attribute group, click the **Edit** button next to the attribute group name. * In the **Edit Attributes** window, enter the required details. * (Optional) For instructions on manually overwriting an attribute's settings, see [Adding a Text Attribute](/v3/guides/product-catalog/attributes/adding-a-text-attribute), [Adding a Number Only Attribute](/v3/guides/product-catalog/attributes/adding-a-number-only-attribute), or [Adding a Date Attribute](/v3/guides/product-catalog/attributes/adding-a-date-attribute). * Click **Save**.\ If you want to use more than one attribute group, repeat the above steps for all of those attribute groups. 6. (Optional) If [internationalization](/v3/guides/settings/internationalization/internationalization#internationalization) is enabled, from the language dropdown menu, select the desired language variant for the item. 7. (Optional) Click **Publish**. The item is now published and moved from draft to active state. ## Related Topics * [Items Overview](/v3/guides/product-catalog/list/items/items) * [Importing Items](/v3/guides/product-catalog/list/items/importing-items) * [Viewing Item Import History](/v3/guides/product-catalog/list/items/viewing-item-import-history) * [Bulk Operations for Items](/v3/guides/product-catalog/list/items/bulk-operations-items) * [Editing an Item](/v3/guides/product-catalog/list/items/editing-an-item) * [Adding Item Variants](/v3/guides/product-catalog/list/items/adding-item-variants) * [Searching, Filtering, and Sorting Items](/v3/guides/product-catalog/list/items/searching-filtering-sorting-items) # Adding Item Variants Item variants are different versions of a base product that shoppers can choose from. With variants, you can offer an extensive catalog on your storefront, giving shoppers various options for the same item, such as size, color, or material. You can create and manage any number of combinations of options for variations of an item in fabric. For example, a store sells a dining table in three different materials: oak, pine, or mahogany. Each material comes in options that accommodate 4, 6, or 8 people. Using the variants, you can create 9 different variations for the parent item, the dining table, as shown in the following table: | | Oak | Pine | Mahogany | | ----------- | ------------ | ------------- | ----------------- | | **Seats 4** | Oak, seats 4 | Pine, seats 4 | Mahogany, seats 4 | | **Seats 6** | Oak, seats 6 | Pine, seats 6 | Mahogany, seats 6 | | **Seats 8** | Oak, seats 8 | Pine, seats 8 | Mahogany, seats 8 | With the above settings, the storefront displays the parent item with 9 options. Each of these options is a variant of the parent item and is referred to as the child item. There are two ways to create a variant for an item: * **Select existing items:** Use this method to add variants to an item by selecting from the items that are already present in your items list. You can use this method only if the desired item specifications or attributes already exist within your catalog. * **Create variants:** Use this method when you want to introduce an item with new attributes or specifications as a variant of a pre-existing item. In this method, you can simultaneously create a new item and set it as a variant of an existing item. ## Prerequisites Ensure that you have at least one item in your list to use the **Create variants** method of creating variants. Ensure that you have at least two items in the same category in your list (one to use as the parent and one to set as the child) to use the **Select existing items** method. ## Procedure ### Select existing items 1. In the left menu, click **Product Catalog > List > Items**.\ The **Items** page is displayed. 2. Click an item.\ The **Item Details** page is displayed. 3. Click **Variants**.\ The **Variants** tab is displayed. 4. Click **Add Variants**.\ The **Create Relationship** page is displayed. It shows the items that are in the same category as the item you selected in step 2. Items in the category that already have variants aren't displayed. 5. Select the checkbox next to the item to set as a variant.\ You can select as many items as required. 6. Click **Save**. The variant is added to the item. ### Create variants 1. In the left menu, click **Product Catalog > List > Items**.\ The **Items** page is displayed. 2. Click an item.\ The **Item Details** page is displayed. 3. Click **Variants**.\ The **Variants** tab is displayed. 4. Click **Add Variants**.\ The **Create Relationship** page is displayed. 5. Click **Create variants**.\ The **Create variants** tab is displayed. 6. (Optional) Enter the number of variants to create. 7. Click **Add**.\ The variants are added. 8. Click **Edit**.\ The **Edit Attributes** window is displayed. 9. Enter the attribute fields as required and click **Save**. 10. (Optional) Repeat steps 7 and 8 for additional variants. The variants are created. ## Related Topics * [Items Overview](/v3/guides/product-catalog/list/items/items) * [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) * [Importing Items](/v3/guides/product-catalog/list/items/importing-items) * [Viewing Item Import History](/v3/guides/product-catalog/list/items/viewing-item-import-history) * [Bulk Operations for Items](/v3/guides/product-catalog/list/items/bulk-operations-items) * [Editing an Item](/v3/guides/product-catalog/list/items/editing-an-item) * [Searching, Filtering, and Sorting Items](/v3/guides/product-catalog/list/items/searching-filtering-sorting-items) # Bulk Operations for Items This topic covers the process of performing bulk actions on items in your Product Catalog. You can also perform these operations via [CSV import](/v3/guides/product-catalog/list/items/importing-items). ## Delete 1. In the left menu, click **Product Catalog > List > Items**. The **Items** page is displayed. 2. In the left column, select the items to delete. The bulk operations controls are displayed. 3. Click the **Delete** button. The selected items are deleted. ## Export 1. In the left menu, click **Product Catalog > List > Items**. The **Items** page is displayed. 2. In the left column, select the items to export. The bulk operations controls are displayed. 3. Click the **Export** button. The selected items are exported as a CSV file. The download begins automatically as soon as the file is ready. Track the export status by going to **Product Catalog > Background Jobs > Export**. ## Update Attributes Values 1. In the left menu, click **Product Catalog > List > Items**. The **Items** page is displayed. 2. In the left column, select the items with attributes to update. The bulk operations controls are displayed. 3. Click the vertical ellipsis (**⋮**) and select **Update Attributes Values**. The **Update attribute values** window is displayed. 4. In the **Choose attributes to update** field, select the attributes you want to change. * After you make your selections, click the **Update attribute values** window outside of the field dropdown. 5. Enter the new values for the fields you selected and click **Update**. A new window is displayed. 6. Do one of the following: * To save the updated items and publish them, click **Save & Publish**. * To save the updated items as drafts, click **Save As Draft**. Note: Items in a draft state will remain drafts. The changes you made the selected attributes are saved, and the items are placed in the state you selected. ## Change Category Changing the category for multiple items at once removes the attributes of the current category and adds the attributes to the destination category. 1. In the left menu, click **Product Catalog > List > Items**. The **Items** page is displayed. 2. In the left column, select the items to change categories. The bulk operations controls are displayed. 3. Click the vertical ellipsis (**⋮**) and select **Change category**. The **Select a leaf node** window is displayed with a list of your categories. 4. Select a leaf category. When you click a root category, its subcategories are displayed to the right. Leaf categories are labeled **Leaf**. 5. CLick **Next**. 6. The **Are you sure?** window is displayed. 7. Click **Update**. The selected items are moved to the new category. ## Publishing 1. In the left menu, click Product **Catalog > List > Items**. The **Items** page is displayed. 2. In the left column, select the items to publish. The bulk operations controls are displayed. 3. Click the vertical ellipsis (**⋮**) and select **Publish Products**. The **Publish Products?** window is displayed. 4. Click **Publish**. The selected items are published. ## Unpublishing 1. In the left menu, click **Product Catalog > List > Items**. The **Items** page is displayed. 2. In the left column, select the items to publish. The bulk operations controls are displayed. 3. Click the vertical ellipsis (**⋮**) and select **Publish Products**. The **Unpublish Products?** window is displayed. 4. Click **Unpublish**. The selected items are unpublished. ## Related Topics * [Items Overview](/v3/guides/product-catalog/list/items/items) * [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) * [Importing Items](/v3/guides/product-catalog/list/items/importing-items) * [Viewing Item Import History](/v3/guides/product-catalog/list/items/viewing-item-import-history) * [Editing an Item](/v3/guides/product-catalog/list/items/editing-an-item) * [Adding Item Variants](/v3/guides/product-catalog/list/items/adding-item-variants) * [Searching, Filtering, and Sorting Items](/v3/guides/product-catalog/list/items/searching-filtering-sorting-items) # Editing an Item Items on your product list can be edited in the List section of **Product Catalog**. ## Prerequisites * Ensure that you have [added](/v3/guides/product-catalog/list/items/adding-an-item) or [imported](/v3/guides/product-catalog/list/items/importing-items) at least one item. ## Procedure 1. In the left menu, click **Product Catalog > List > Items**.\ The **Items** page is displayed. 2. Click an item.\ The **Item Details** page is displayed.\ The attribute groups you have created and mapped are displayed. 3. Click the **Edit** button next to an attribute group.\ The **Edit Attributes** window is displayed. 4. Edit the attributes as required and click **Apply**.\ The attributes are saved. 5. (Optional) Repeat steps 3 and 4 for additional attribute group menus. 6. (Optional) If [internationalization](/v3/guides/settings/internationalization/internationalization) is enabled, from the language dropdown menu, select the desired language variant for the item. 7. (Optional) Click **Save & Publish**.\ The item is moved from draft to active state. ## Related Topics * [Items Overview](/v3/guides/product-catalog/list/items/items) * [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) * [Importing Items](/v3/guides/product-catalog/list/items/importing-items) * [Viewing Item Import History](/v3/guides/product-catalog/list/items/viewing-item-import-history) * [Bulk Operations for Items](/v3/guides/product-catalog/list/items/bulk-operations-items) * [Adding Item Variants](/v3/guides/product-catalog/list/items/adding-item-variants) * [Searching, Filtering, and Sorting Items](/v3/guides/product-catalog/list/items/searching-filtering-sorting-items) # Importing Items Items, a type of product, are objects sold individually as simple SKUs or as the parent to a variant. This document covers the process of importing multiple items using a CSV file. You can also [add items individually](/v3/guides/product-catalog/list/items/adding-an-item). ## CSV File Guidelines You can import products using CSV files only; no other data or file formats are supported. Here are the key points to consider: * Formulas in formula-driven attributes are executed automatically after items have been imported. * If the CSV file doesn't have an attribute that's added to the category, you can add a new column in the CSV with the attribute name in the header. The upload process will populate the value for this attribute. * Empty rows and columns are ignored. * Each item should include a category node. If the category node is missing, the item won't be created. * Use the **->** delimiter for category nodes. Incorrect mapping or absence of category nodes may result in item creation issues. * The headers, represented in the first row of the CSV file, should match the attributes of the item. While attribute titles aren't case-sensitive, maintaining case consistency with the original attribute titles is recommended. * The Action field determines what action is being taken for that row of data. * When updating or upserting items, entering *NULL* in a spreadsheet cell will override existing values with blank values. We recommend that you download the template file to use as a guide when creating your own CSV file for import to minimize errors during the import process. ### Supported actions | **Action** | **Description** | | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **UPSERT** | Creates a new product if it doesn't exist, or updates an existing product. | | **CREATE** | Creates a new product. | | **UPDATE** | Updates an existing product. | | **PUBLISH** | Publishes an existing product that's in draft state to the storefront. | | **UNPUBLISH\_KEEP\_DRAFT** | Unpublishes an existing product. If a draft exists, the live version is deleted and the draft is retained. If no draft exists, the live version is saved as draft. | | **UNPUBLISH\_KEEP\_LIVE** | Unpublishes an existing product and moves it to draft state. If a draft of that item already existed, it's deleted. | | **DELETE** | Deletes the existing product. | | **ATTACH\_VARIANT** | Adds variants to an existing parent product. Specify the variant SKU in the variant column. | | **DETACH\_VARIANT** | Detaches existing variants and converts them to items. The variant column specifies the variant to be detached from the SKU. | | **CHANGE\_CATEGORY** | Updates the category of an existing product. Depending on how your storefront is configured, this may change where or how your product is viewed by the customer. | ### Attribute data format When preparing your CSV file for import, ensure that the attribute data format aligns with attribute type requirements. Different attribute types have specific formatting criteria: | **Data Type** | **Format Rule** | | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Text** | Provide data in text string format. | | **Number** | Use numerical data only. All non-numeric data is ignored. | | **Boolean** | Use *TRUE* or *FALSE* only. All other values are ignored. | | **Date** | Match the date format specified during [attribute creation](/v3/guides/product-catalog/attributes/adding-a-date-attribute). | | **List of values** | The value you enter must match one of the predefined values you set up when [adding a list of values attribute](/v3/guides/product-catalog/attributes/adding-a-list-of-values-attribute). | | **Serial** | Leave this field blank; fabric automatically generates the serial number during import. | | **SKU** | Provide the SKU for the item. | The status attribute is imported as live only when all mandatory attributes are provided for the item. Otherwise, the status is automatically updated to draft, regardless of the value you provide in the file. ## Prerequisites Before initiating the item import, ensure that: * Ensure that you have created at least one leaf category with attributes assigned to it to add items to. For more information about creating categories, see the [Categories section](/v3/guides/product-catalog/categories/adding-a-category). * The CSV file adheres to the guidelines. ## Procedure 1. In the left menu, click **Product Catalog > List > Items**.\ The **Items** page is displayed. 2. Click **Import**.\ The **Select a leaf category** window is displayed. 3. Select a **Leaf** to which you want to import items.\ The **Select a leaf category** window is displayed. This window displays the root categories and leaf categories that are configured in [Categories](/v3/guides/product-catalog/categories/categories). 4. Click **Next**.\ The **Import CSV file** window is displayed. This window provides a link to download an example template for the CSV file. 5. To import a CSV file, do one of the following options: * Drag and drop the CSV file into the window. * Click **Select a File**. 6. Click **Import file**. The CSV file is imported and the items are added to your product list. fabric stores the CSV files you upload to your account. You can view the status of the import and re-download the original files by visiting the [Import History](/v3/guides/product-catalog/list/items/viewing-item-import-history) page. ### Troubleshooting Refer to the following table for a list of common errors when importing and how to correct them. | **Error Message** | **What it means?** | **What happens to the item?** | **How to resolve?** | **Comment** | | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | Category Node not found | The category node name is incorrect or missing. | An item can’t be created without a proper category node given. | Verify the name of the node and the delimiter. | | | Internal Server Error | Server issues | The item isn't created or updated | Try again | This is an intermittent issue. | | Attribute Name not found | The attribute mentioned in the CSV header isn't added to the category. The attribute name must be an exact match. | The item is created, but this specific attribute will be ignored. | Check the name of the attribute and ensure that the attribute is added to the category you are trying to import items to. | | | Attribute Name value is invalid | The value provided has some flaws or validation issues. | The attribute value won't be saved to the item. | Provide the correct attribute value. | Example: If you add text for a number type attribute, you will receive this error. | | Status Mandatory attributes required | To set the status of an item to live, all mandatory attributes are required. | The item will be created and the attributes will be updated. However, the item can't be set to live; its status will default to draft. | Ensure that all mandatory attributes have a value in the CSV you are trying to import. | When doing a delta import, it is required to have all mandatory attributes and values added to set the item's status to live. | | Some mandatory attribute values are missing. | There are some mandatory attributes that don't have values in the CSV file that was uploaded. These are either global mandatory, which are set at the attribute level, or category mandatory, which are set at the individual category level. | The item is created with errors. Only the values in the CSV will be added. | Include values for all mandatory attributes. | Items can be created with errors, but they can’t be set to live unless all mandatory attributes have a value. | ## Related Topics * [Items Overview](/v3/guides/product-catalog/list/items/items) * [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) * [Viewing Item Import History](/v3/guides/product-catalog/list/items/viewing-item-import-history) * [Bulk Operations for Items](/v3/guides/product-catalog/list/items/bulk-operations-items) * [Editing an Item](/v3/guides/product-catalog/list/items/editing-an-item) * [Adding Item Variants](/v3/guides/product-catalog/list/items/adding-item-variants) * [Searching, Filtering, and Sorting Items](/v3/guides/product-catalog/list/items/searching-filtering-sorting-items) # Items Overview An item is a standalone service or product sold individually. You can create items manually or import items using a CSV file. Each item can have different variations, known as variants, distinguished by specific differences from the standard version. For example, in a furniture store, a dining table might have variations in sizes, such as round or rectangular and finishes, such as oak, mahogany, or walnut, resulting in unique versions. ## Related Topics * [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) * [Importing Items](/v3/guides/product-catalog/list/items/importing-items) * [Viewing Item Import History](/v3/guides/product-catalog/list/items/viewing-item-import-history) * [Bulk Operations for Items](/v3/guides/product-catalog/list/items/bulk-operations-items) * [Editing an Item](/v3/guides/product-catalog/list/items/editing-an-item) * [Adding Item Variants](/v3/guides/product-catalog/list/items/adding-item-variants) * [Searching, Filtering, and Sorting Items](/v3/guides/product-catalog/list/items/searching-filtering-sorting-items) # Searching, Filtering, and Sorting Items The search, filter, and sort options on the **Items** page allows you to refine the list of items or find a specific item. You can use the filter option only if you have multiple items in your list and the items belong to multiple categories and collections with different attributes and values. ### To search for one or more items, do the following: 1. In the left menu, click **Product Catalog > List > Items**.
The Items page is displayed. 2. Type a search term into the search bar.
When searching, keep in mind the following: * You can search for multiple items by typing multiple search terms into the search bar, each separated by a comma. * When searching for multiple items, the search terms must be exact. Partial entries yield no results. * In addition to typing your searches into the search bar, you can also paste them. 3. Press **Enter**.
The results are displayed. ### To filter the list of items, do the following: 1. In the left menu, click **Product Catalog > List > Items**.\ The **Items** page is displayed. 2. Choose at least one of the following filters: * Click the **Category** dropdown and select a category. * Click the **Collection** dropdown and select a collection. * Click the **Date** dropdown and select a date range for the date the item was created and/or the date the items were modified. * Click the **Attributes & Values** dropdown. * Select a value to filter by in the **If** field. * Select a **Validation** option. * Enter a value in the **Value** field. * (Optional) Click **Add new condition** to filter by another attribute or value. Items that match the filters you chose are displayed. 3. Click **Reset filters** to remove all filters. ### To sort the list of items, do the following: 1. In the left menu, click **Product Catalog > List > Items**.\ The **Items** page is displayed. 2. Click one of the column headers to sort the list of items.\ Sortable header is **Status**. The items are sorted. ## Related Topics * [Items Overview](/v3/guides/product-catalog/list/items/items) * [Adding an Item](/v3/guides/product-catalog/list/items/adding-an-item) * [Importing Items](/v3/guides/product-catalog/list/items/importing-items) * [Viewing Item Import History](/v3/guides/product-catalog/list/items/viewing-item-import-history) * [Bulk Operations for Items](/v3/guides/product-catalog/list/items/bulk-operations-items) * [Editing an Item](/v3/guides/product-catalog/list/items/editing-an-item) * [Adding Item Variants](/v3/guides/product-catalog/list/items/adding-item-variants) # Overview fabric Product Catalog is a data organization tool that enables merchants to build a centralized source of product information. This information can include technical specifications such as size and weight, design specifications such as color and material, and generic details such as name, description, and ID. Product categories allow merchants to organize items into logical parent-child groups to make finding products on the storefront easier for the shoppers. While configuring products, merchants can use validations to ensure data consistency and quality for each item and category. Product Catalog has out-of-the-box integrations with fabric services such as Orders and Offers that enable merchants to add base prices and promotions to any products available in Product Catalog, including categories and collections. Key Product Catalog capabilities include: * **Catalog Management:** Create and manage products and services such as items, variants, and bundles. For example, an item could be a coffee table in oak. A variant could be that same coffee table, but in pine. A bundle could be the coffee table sold together with two matching end tables. * **Taxonomy Management:** Define categories of products to create a structured hierarchy. * **Distribution management:** Control product data availability for multiple channels and locales and use collections to curate subsets of products for sales and marketing goals, such as holiday sales or seasonal discounts. * **Bulk Management**: Import product, category, and collection information in a CSV file and export catalog data into a CSV file. * **Variant management:** Create and manage an unlimited number of variants to indicate that a product is available in different options, such as colors or sizes. ### Use Case As an example, consider a furniture distributor with an extensive catalog that includes living, dining, and bedroom pieces who wants to display their products for sale on their storefront. The merchant can upload each item they sell, either individually or in bulk with a CSV file. Attributes of each piece, ranging from physical characteristics such as dimensions and weight to construction characteristics such as materials and finishes can all be included. Variants of items are also supported, so that a coffee table available in mahogany, oak, and pine can all be considered different versions of the same item. In addition, items frequently sold together can be grouped into bundles so that the coffee table can be sold along with a pair of matching end tables. The merchant can then create a hierarchy of relationships among the items in the catalog that make the most sense to their business. That means the coffee table could be in a category with all living room furniture, or a category of all tables, or both. The merchant can group items from different categories into themed collections to boost the sales or marketing campaigns. For example, for a Black Friday promotion, merchant can assemble a living room set collection that includes a coffee table, end tables, sofa, loveseat, and lamps. ### Workflow Basic Product Catalog setup begins with creating attributes, then mapping fabric-mandatory attributes with merchant-defined attributes. The following workflow provides details of the steps involved in product setup: 1. [Create Attributes](/v3/guides/product-catalog/attributes/product-attributes-overview): Create the required attributes for the products. You can also use attribute groups to group relevant attributes and assign to products or categories. 2. [Map Attributes](/v3/guides/product-catalog/attributes/product-attributes-overview): Map the mandatory attributes of fabric, such SKU, title, image, and active status to the corresponding names provided by the merchant. 3. [Add Categories](/v3/guides/product-catalog/categories/adding-a-category): Arrange items, bundles, and variants into a hierarchical tree structure based on common attributes to logically group products. 4. Create Items, Variants, and Bundles: Add your products, which can consist of [items](/v3/guides/product-catalog/list/items/adding-an-item), [bundles](/v3/guides/product-catalog/list/bundles/adding-a-bundle), and [variants](/v3/guides/product-catalog/list/items/adding-item-variants). Prior to adding any products, fabric recommends the following: * Maintain a list of attributes for products and categories. * Organize products within a hierarchical tree structure of categories. * Compile a products list, along with their variants and bundles, to display on the storefront. 5. [Create Collections](/v3/guides/product-catalog/collections/creating-a-collection): Organize products according to marketing needs for display on your storefront. Collections are optional. Once these steps are complete, basic setup is finished. You may proceed to use the features and capabilities available to you. ### Navigation Product Catalog is accessible through fabric’s cloud-based application called Copilot, and divided into the following menus and sub-menus: * **List** * [Items](/v3/guides/product-catalog/list/items/items): Add, import, and manage product and variant information. * [Bundles](/v3/guides/product-catalog/list/bundles/bundles): Add, import, and manage bundle information. * **Attributes** * [Product Attributes](/v3/guides/product-catalog/attributes/product-attributes-overview): Define item, variant, and bundle characteristics. * [Category Attributes](/v3/guides/product-catalog/attributes/category-attributes-overview): Define category characteristics. * **[Categories](/v3/guides/product-catalog/categories/categories_overview):** Create a hierarchy of product groups and relationships. * **[Collections](/v3/guides/product-catalog/collections/collections):** An alternative method to categories for organizing products. * **Settings** * [Attribute Groups](/v3/guides/product-catalog/settings/attribute-groups-overview): Organize similar attributes together. * [Attribute Mapping](/v3/guides/product-catalog/settings/attribute-mapping-overview): Ensure data in Product Catalog is readable and usable to other systems. # Attribute Groups Overview ### Overview Attribute groups enable merchants to organize various attributes together based on meaning or purpose for an easier, more logical flow during the set up process. For example, a furniture store might need to have height, width, length, or depth attributes present on the item or bundle listing page on their storefront. The merchant can create an attribute group called *dimensions* so that all dimension-related details can be added in one place when adding a new piece of furniture. This allows merchants to streamline the setup process and reducing the time required to manage extensive attribute data in large catalogs. Before creating attribute groups, you must first set up the attributes that you want to group together in the Attributes > Products page. While attribute groups enhance storefront convenience, setting them up is optional and not mandatory for product setup. ### Related Topics * [Creating Attribute Groups](/v3/guides/product-catalog/settings/creating-attribute-groups) # Attribute Mapping Overview ### Overview Before creating items in the Product Catalog, proper attribute mapping is essential to ensure other systems can read and use data from the Product Catalog. fabric has a predefined set of mandatory attributes for items and bundles that Product Catalog uses to deliver a consistent and reliable experience across channels. However, merchants may have their own naming conventions for these attributes. For instance, Product Catalog uses the term SKU to refer to a unique product identifier while some merchants use the terms UPC or Part Number. To address this inconsistency, merchant-defined attributes are mapped to fabric attributes as productId -> fabric SKU. Only the SKU is mandatory to create items, but each basic attribute should be mapped to exactly one attribute from the list of attributes. Attribute mapping is done once, before uploading any items or bundles. After you have mapped the attributes and begun uploading, the features in attribute mapping are disabled. ### Basic attributes detail Refer to the following table for more information about each attribute. | Mapping Name | Attribute Specifications | Why does this need to be mapped? | | --------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | SKU | Must be a mandatory Attribute | Each SKU value must be unique. This attribute serves as the primary identifier for items to be created in Product Catalog. | | Product Title | A text or number type attribute is recommended | This attribute helps Product Catalog identify the display name of the item or bundle. | | Primary Product Image | A text type attribute is recommended here | This attribute helps Product Catalog identify the main image of the product for thumbnail purposes. | | Active | Must be a mandatory attribute | Must be a Boolean type attribute. Name the attribute to be Active which can be set to true/false. Required to maintain the status of item to active/disabled. Only items where status is set to Active=TRUE will be available for the commerce API to consume. | ## Related Topics * [How to Map Attributes](/v3/guides/product-catalog/settings/how-to-map-attributes) # Creating Attribute Groups ### Overview Attribute groups enable merchants to organize various attributes together based on meaning or purpose for an easier, more logical flow during the item and bundle set up process. ### Prerequisites Ensure you have created multiple product attributes. ### Procedure 1. In the left menu, click **Product Catalog > Settings > Attribute Groups**.\ The **Product Settings** page is displayed. 2. Click **Create Attribute Group**.\ The **Create Attribute Group** page is displayed. 3. In the **Attribute group title** field, enter a title for the attribute group. 4. (Optional) In the **Description** field, enter a description for the attribute group. 5. In the **Priority order** field, enter a number.\ The attribute group's position on the **Add Item** or **Add Bundle** pages is determined by its Priority order value—lower numbers indicate higher priority. 6. To add attributes to the group, do one of the following: * In the **Editable attributes** menu, click **Add attributes**.\ The **Select attributes** window is displayed. * To add an attribute, click its corresponding checkbox.\ You can add as many attributes as needed, but an attribute can only be added to one attribute group. * When finished selecting attributes, click **Add**.\ The attributes are added to the group. * In the **Read-only attributes** menu, click **Add attributes**.\ The **Select attributes** window is displayed. * To add an attribute, click its corresponding checkbox.\ You can add as many attributes as needed, but an attribute can only be added to one attribute group. * When finished selecting attributes, click **Add**.\ The attributes are added to the group. 7. Click **Save**. The attribute group is created. ### Related Topics * [Attribute Groups Overview](/v3/guides/product-catalog/settings/attribute-groups-overview) # Mapping Attributes ### Overview Before creating items in Product Catalog, proper attribute mapping is essential to ensure other systems can read and use data from Product Catalog. ### Prerequisites Ensure you have administrator privileges to fabric Product Catalog. For more information, see [Role-Based Access Control](/v3/guides/settings/rbac/role-based-access-control). ### Procedure 1. In the left menu, click **Product Catalog > Settings > Attribute mapping**.\ The **Product Settings** page is displayed. 2. In the **SKU** dropdown, select the attribute you will use for SKU values. 3. In the **Product title** dropdown, select the attribute you will use for product titles. 4. In the **Primary Product Image** dropdown, select the attribute you will use for the primary product image. 5. In the **Active** dropdown, select the attribute you will use to set the item’s status. 6. In the **Variant** dropdown, select an attribute you will use to identify variants. 7. Click **Save**. The product attributes are mapped. ### Related Topics * [Attribute Mapping Overview](/v3/guides/product-catalog/settings/attribute-mapping-overview) # Settings ### Overview Use the Product Catalog **Settings** menu to create attribute groups and map product attributes. Use the following links to learn more about attribute groups and attribute mapping. ### Attribute Groups * [Attribute Groups Overview](/v3/guides/product-catalog/settings/attribute-groups-overview) * [Creating Attribute Groups](/v3/guides/product-catalog/settings/creating-attribute-groups) ### Attribute Mapping * [Attribute Mapping Overview](/v3/guides/product-catalog/settings/attribute-mapping-overview) * [How to Map Attributes](/v3/guides/product-catalog/settings/how-to-map-attributes) # Bundles Overview Bundles are combinations of two or more products sold exclusively together or individually, depending on the configuration. Pure bundles consist of items exclusively sold together, and individual items can't be purchased separately. Shoppers have the flexibility to buy items in mixed bundles together or separately. For example, in a living room furniture set consisting of a coffee table and an end table, shoppers can choose to purchase each table individually or buy both tables together as part of the living room set bundle. You can create bundles by importing them using a CSV or JSON file. ## Related Topics * [Importing Bundles](v3/guides/catalog-connector/importing-bundles) * [Viewing Bundle Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-bundle-attributes-variants-channels) * [Searching and Filtering Bundles](v3/guides/catalog-connector/searching-filtering-sorting-bundles) * [Viewing Import History](v3/guides/catalog-connector/viewing-bundle-import-history) # Importing Bundles ## Overview Bundles are two or more items sold together. Creating a bundle allows you to group items that are exclusively sold together or group items that can be purchased together and separately. This document covers the process of importing bundles, which is done using a CSV or JSON file. ## File Guidelines You can import products using a CSV or JSON file only; no other data or file formats are supported. * SKU is a required field to create or update a bundle. * When adding a SKU to a bundle, enter the quantity to add in the same cell as the SKU itself. For example, if a bundle requires two of item 12345, enter *2, 12345* in the SKU cell. * When updating or upserting bundles, entering *null* in a spreadsheet cell will override existing values with blank values. Although not required, we recommend that you download the template file to use as a guide when creating your own file for import to minimize errors during the import process. ### Attribute Data Format When preparing your file for import, ensure that the attribute data format aligns with following attribute type requirements: * String: Ensure the data is in text string format. If a string attribute contains multiple values, the values need to be sent as a stringified array, for example: `["a","b"]`. * Number: Numerical data only. * Boolean: Use *true* or *false* only; other values will be ignored. ## Procedure 1. In the left menu, click **Catalog Connector > List > Bundles**.\ The **Bundles** page is displayed. 2. Click **Import bundles**.\ The **Import CSV file** window is displayed. This window provides a link to download example templates for JSON and CSV files. 3. To import a file, do one of the following options: * Drag and drop the file into the window. * Click **Select a File** from your computer. 4. Click **Import file**. The file is imported and the bundles are added to your product list. fabric stores the files that you upload to your account. You can view the status of the import operation and re-download the original files by visiting the **Import History** page. ## Troubleshooting For a list of common errors when importing and how to correct them, refer to the following table: | **Error Message** | **Description** | **Impact** | **Solution** | **Comment** | | --------------------- | --------------- | ------------------------------------ | ------------ | ------------------------------ | | Internal Server Error | Server issues | The bundle isn't created or updated. | Try again | This is an intermittent issue. | ## Related Topics * [Bundles Overview](v3/guides/catalog-connector/bundles-overview) * [Viewing Bundle Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-bundle-attributes-variants-channels) * [Searching and Filtering Bundles](v3/guides/catalog-connector/searching-filtering-sorting-bundles) * [Viewing Import History](v3/guides/catalog-connector/viewing-bundle-import-history) # Importing Items Items, which are also referred to as products, are services or stand-alone objects sold individually. This document covers the process of importing items, which is done using a CSV or JSON file. ## File Guidelines You can import products using a .csv or .json file only. No other data or file formats are supported. * SKU is a required field to create or update an item. * You can detach child or variant items from the parent item when importing by entering detach in the Parent SKU field. When the parent/child relationship is removed, the child or variant item becomes a standalone SKU. * When updating or upserting items, entering null in a spreadsheet cell will override existing values with blank values. Although not required, fabric recommends that you download the template file to use as a guide when creating your own file for import to minimize errors during the import process. ### Attribute data format When preparing your file for import, ensure that the attribute data format aligns with following attribute type requirements: * String: Ensure the data is in text string format. If a string attribute contains multiple values, the values need to be sent as a stringified array, for example: `"a", "b"`. * Number: Numerical data only. * Boolean: Use true or false only; other values will be ignored. ## Procedure 1. In the left menu, click **Catalog Connector > List > Items**. The **Items** page is displayed. 2. Click **Import items**. The **Import CSV file** window is displayed. This window provides a link to download example templates for .csv and .json files. 3. To import a file, do one of the following options: * Drag the file into the window. * Click **Select a File** from your computer. 4. Click **Import file**. The file is imported and the items are added to your product list. fabric stores the files that you upload to your account. You can view the status of the import operation and re-download the original files by visiting the **Import History** page. ## Troubleshooting For a list of common errors when importing and how to correct them, refer to the following table: | **Error Message** | **Description** | **Impact** | **Comment** | **Comment** | | --------------------- | --------------- | ---------------------------------- | ----------- | ------------------------------ | | Internal Server Error | Server issues | The item isn't created or updated. | Try again | This is an intermittent issue. | ## Related Topics * [Items Overview](v3/guides/catalog-connector/items-overview) * [Viewing Item Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-item-attributes-variants-channels) * [Searching, Filtering, and Sorting Items](v3/guides/catalog-connector/searching-filtering-sorting-items) * [Viewing Import History](v3/guides/catalog-connector/viewing-item-import-history) # Items Overview An item is a standalone service or product sold individually. You can create items by importing them using a .csv or .json file. Each item can have different variations, known as variants, distinguished by specific differences from the standard version. fabric Catalog Connector doesn't validate or display the relationship between a parent and its variants. It simply stores each product as a distinct item. ## Related Topics * [Importing Items](v3/guides/catalog-connector/importing-items) * [Viewing Item Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-item-attributes-variants-channels) * [Searching, Filtering, and Sorting Items](v3/guides/catalog-connector/searching-filtering-sorting-items) * [Viewing Import History](v3/guides/catalog-connector/viewing-item-import-history) # Catalog Connector Overview Catalog Connector is a denormalized data organization tool that enables merchants to link information from their third-party product information management system to their fabric account, making it accessible across fabric modules such as Offers, Orders, and Inventory. This data can include technical specifications, such as size and weight, design attributes, such as color and material, and generic product details such as name, description, and ID. Catalog Connector provides out-of-the-box integrations with fabric services, such as Orders and Offers, that enable merchants to apply base prices and promotions to any products available within the Catalog Connector. Key Catalog Connector capabilities include: * **Bulk Management:** Import product information in a CSV or JSONL file. * **Catalog Management:** Manage product create, update, and delete actions, including parent, variant, and bundle products. Catalog Connector is only available to fabric users who haven't purchased fabric’s proprietary product information manager, Product Catalog. Catalog Connector setup involves importing products and bundles and their properties in a CSV or JSONL file. ## Related Topics ### Items * [Items Overview](v3/guides/catalog-connector/items-overview) * [Importing Items](v3/guides/catalog-connector/importing-items) * [Viewing Item Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-item-attributes-variants-channels) * [Searching, Filtering, and Sorting Items](v3/guides/catalog-connector/searching-filtering-sorting-items) * [Viewing Import History](v3/guides/catalog-connector/viewing-item-import-history) ### Bundles * [Bundles Overview](v3/guides/catalog-connector/bundles-overview) * [Importing Bundles](v3/guides/catalog-connector/importing-bundles) * [Viewing Bundle Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-bundle-attributes-variants-channels) * [Searching and Filtering Bundles](v3/guides/catalog-connector/searching-filtering-sorting-bundles) * [Viewing Import History](v3/guides/catalog-connector/viewing-bundle-import-history) # Searching, Filtering, and Sorting Bundles ## Overview The search and filter options on the **Bundles** page allow you to refine the list of bundles or find a specific bundle. ### To search for a specific bundle, do the following: 1. In the left menu, click **Catalog Connector > List > Bundles**.\ The **Bundles** page is displayed. 2. To search for a bundle, in the search bar, type a search term and press **Enter**. The results are displayed. ### To filter the list of bundles, do the following: 1. In the left menu, click **Catalog Connector > List > Bundles**.\ The **Bundles** page is displayed. 2. Choose at least one of the following filters: * Click the **Date** dropdown and select a date range for the date the bundles were created or the date the bundles were modified. * Click the **Attributes & Values** dropdown, and do the following: * Enter an attribute name in the **Attribute** field. * Select a validation option. * Enter a value in the **Value** field. * To add more conditions, click **Add new condition** and enter the required values. Bundles that match the filters you chose are displayed. You can remove all filters by clicking **Reset all**. ## Related Topics * [Bundles Overview](v3/guides/catalog-connector/bundles-overview) * [Importing Bundles](v3/guides/catalog-connector/importing-bundles) * [Viewing Bundle Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-bundle-attributes-variants-channels) * [Viewing Import History](v3/guides/catalog-connector/viewing-bundle-import-history) # Searching, Filtering, and Sorting Items ## Overview The search, filter, and sort options on the **Items** page allow you to refine the list of items or find a specific item. You can use the filter option only if you have multiple items in your list. ### To search for a specific item, do the following: 1. In the left menu, click **Catalog Connector > List > Items**.\ The **Items** page is displayed. 2. To search for an item, in the search bar, type a search term and press **Enter**. The results are displayed. ### To filter the list of items, do the following: 1. In the left menu, click **Catalog Connector > List > Items**.\ The **Items** page is displayed. 2. Choose at least one of the following filters: * Click the **Date** dropdown and select a date range for the date the items were created or the date the items were modified. * Click the **Attributes & Values** dropdown, and do the following: * Enter a search term in the **Attribute** field. * Select a validation option. * Enter a value in the **Value** field. * To add more conditions, click Add new condition and enter the required values * Click the **Type** dropdown and select Item or Variant Items that match the filters you chose are displayed. You can remove all filters by clicking **Reset all**. ### To sort the list of items, do the following: 1. In the left menu, click **Catalog Connector > List > Items**.\ The **Items** page is displayed. 2. Click one of the column headers to sort the list of items.\ Sortable headers are **SKU**, **Item ID**, **Product name**, **Channels**, **Category**, and **Created**. The items are sorted. ## Related Topics * [Items Overview](v3/guides/catalog-connector/items-overview) * [Importing Items](v3/guides/catalog-connector/importing-items) * [Viewing Item Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-item-attributes-variants-channels) * [Viewing Import History](v3/guides/catalog-connector/viewing-item-import-history) # Viewing Bundle Details ## Overview After you have uploaded a CSV or JSON file of your items, you can view the bundle details on the **Bundles** page. ## Prerequisites Ensure that you have imported at least one CSV or JSON file of your bundles. ### To view bundle attributes, do the following: 1. In the left menu, click **Catalog Connector > List > Bundles**.\ The **Bundles** page is displayed. 2. In the **SKU** column, click the SKU of the bundle.\ The bundle details page with attributes, variants, and channels is displayed. You can click the corresponding tab to view the details. Bundle attribute information is displayed. ### To view bundle items, do the following: 1. In the left menu, click **Catalog Connector > List > Bundles**.\ The **Bundles** page is displayed. 2. Click a **SKU**.\ The SKU details page is displayed on the **Bundle information** tab. ## Related Topics * [Bundles Overview](v3/guides/catalog-connector/bundles-overview) * [Importing Bundles](v3/guides/catalog-connector/importing-bundles) * [Searching and Filtering Bundles](v3/guides/catalog-connector/searching-filtering-sorting-bundles) * [Viewing Import History](v3/guides/catalog-connector/viewing-bundle-import-history) # Viewing Bundle Import History ## Overview You can check the status of bundle import operations on the **Import History** page. Successful imports are marked as **Completed**. Imports that failed are marked with **Failed**. ## Procedure 1. In the left menu, click **Catalog Connector > List > Bundles**.\ The **Bundles** page is displayed. 2. Click **Import History**.\ The **Import History** page is displayed. 3. Click the name of an import.\ The **Import Summary** page with the details of the import is displayed. 4. (Optional) To download the import details file, click **Download original file**.\ The original CSV or JSON import file is downloaded. * (Optional) To see the details of an import that had errors, click Export errored bundles. The report is downloaded. ## Related Topics * [Bundles Overview](v3/guides/catalog-connector/bundles-overview) * [Importing Bundles](v3/guides/catalog-connector/importing-bundles) * [Viewing Bundle Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-bundle-attributes-variants-channels) * [Searching and Filtering Bundles](v3/guides/catalog-connector/searching-filtering-sorting-bundles) # Viewing Item Details ## Overview After you have uploaded a CSV or JSON file of your items, you can view the item details on the **Items** page. ## Prerequisites Ensure that you have imported at least one CSV or JSON file with the details of the items. ## Procedures ### To view item attributes, do the following: 1. In the left menu, click **Catalog Connector > List > Items**.\ The **Items** page is displayed. 2. In the **SKU** column, click the SKU of the item.\ The items details page is displayed. ## Related Topics * [Items Overview](v3/guides/catalog-connector/items-overview) * [Importing Items](v3/guides/catalog-connector/importing-items) * [Searching, Filtering, and Sorting Items](v3/guides/catalog-connector/searching-filtering-sorting-items) * [Viewing Import History](v3/guides/catalog-connector/viewing-item-import-history) # Viewing Item Import History ## Overview You can check the status of item import operations on the **Import History** page. Successful imports are marked as **Completed**. Imports that failed are marked with **Failed**. ## Procedure 1. In the left menu, click **Catalog Connector > List > Items**.\ The **Items** page is displayed. 2. Click **Import History**.\ The **Import History** page is displayed. 3. Click the name of an import.\ The **Import Summary** page with the details of the import is displayed. 4. (Optional) Click **Download original file**.\ The original CSV or JSON import file is downloaded. * (Optional) To download the import details file, click **Download original file**. ## Related Topics * [Items Overview](v3/guides/catalog-connector/items-overview) * [Importing Items](v3/guides/catalog-connector/importing-items) * [Viewing Item Attributes, Variants, and Channels](v3/guides/catalog-connector/viewing-item-attributes-variants-channels) * [Searching, Filtering, and Sorting Items](v3/guides/catalog-connector/searching-filtering-sorting-items) # Contracts Manage business-to-business pricing agreements ## Introduction The Contracts page shows all previously created contracts in a sortable, filterable table. To sort the contracts, click on the Organization Name, Contract ID, Status, or Date Modified column headers. Use the Status, Start Date, and End Date drop-down menus to filter the contracts. The Search bar at the top allows you to find contracts by name, or contract ID. The **Add Contract** button at the top of the page allows you to create a new contract. ## Adding a Contract To add a new contract, click the **Add Contract** button at the top of the page. Set up the organization's Basic Information in the **Details** section. Use the Organization Name drop-down menu to select an organization you set up previously in the **Organizations** page. Use the date fields to enter the start and end dates for the organization’s contract. Click **Next** or **Catalog** to connect the organization and its contract to a price list. Price lists are set up independently in fabric Offers and allow you to control things like the base and maximum sale prices for items. Setting up individual price lists for each organization allows you to maintain contracted pricing. Use the **Price List** drop-down menu to choose the price list you set up for this organization. A preview of the price list will appear at the bottom of the page. The **On Contract** drop-down menu lets you select whether this organization’s price list was agreed upon in the contract. If you selected a specific price list in the previous field and set this field to Yes, the contracted price list will be used. If you set this field to No, the prices listed in the base price list will be used. When the **Promotion Stacking** field is set to Yes, contracted prices are eligible for promotions. Setting the field to No prevents prices from being discounted beyond the lowest price listed in the associated price list. When you’re finished creating the organization, click **Save** at the top of the page. ## Editing a Contract To edit an existing contract, find and click on it in the table on the main Contracts page. On the contract details page, click the **Edit** button to make changes. Use the **Draft** drop-down menu at the top to set the contract’s status, whether Draft, Active, or Inactive. To make changes to the Details and Catalog sections, refer to **Adding a Contract** above. # Customers Manage business-to-consumer (B2C) customers ## Introduction The Customers page features a table of all existing customers. To sort the customers in the table, click on the Customer name, or Status column headers. Use the Status and Tags drop-down menus to filter the data that the table shows. The Search bar at the top allows you to find customers by name or email. The **Add Customer** button at the very top of the page allows you to create a new customer. ## Adding a Customer To add a new customer, click the **Add Customer** button at the top of the page. On the Add Customer page, fill out the customer’s name and email address on the Basic information tab. ## Editing a Customer To edit an existing customer’s information, find and click on their name in the table on the main Customers page. The individual customer’s profile displays their current information with a button to switch between **Inactive** and **Active**. Click on the **Edit customer info** button at the top of the page to make changes to their Basic Information and Additional Information. To add, edit, or remove addresses associated with the customer’s profile, click on **Manage Addresses**. Then select whether you would like to make changes to the customer’s **Shipping Addresses** or **Billing Addresses**. If the customer has any existing addresses, they will appear below. Use the corresponding Edit and Delete buttons to change or remove them. To add another address, click **Add Shipping Address**, fill out the address fields, and then click **Confirm**. When you’re finished with all your changes, click **Save** at the top of the page. # Organizations Manage business-to-business (B2B) customers ## Introduction The Organizations page shows all previously created organizations in a sortable, filterable table. To sort the organizations, click on the Organization name, Contact Email, or Status column headers. Use the Status drop-down menu to filter the organizations. The Search bar at the top allows you to find organizations by name. The **Add Organization** button at the top of the page allows you to create a new organization. ## Adding an Organization To add a new organization, click the **Add Organization** button at the top of the page. On the Add Organization page, use the **Active** drop-down menu to set the organization’s status to **Active** or **Inactive** and enter the organization's information in the fields below. At the bottom of the form, use the **Tax Exempt** drop-down menu to set the organization’s tax exempt status. When set to **Yes**, three new required fields appear: Tax ID, Tax Exempt Start Date, and Tax Exempt End Date. When you’re finished creating the organization, click **Save** at the top of the page. ## Editing an Organization To edit an existing organization’s information, find and click on its name in the table on the main Organizations page. The organization’s profile displays its current information divided into four tabs: Details, Addresses, Users, and Groups. Each tab has its own set of fields, information, and features: * **Details:** The organization’s basic information. Click Edit at the top of the page to make changes, and click Save when finished. * **Addresses:** All of the organization’s associated addresses. Click on Add Address to add a new address, or click on an existing address to edit it. Click save when finished. * **Users:** All of the users at the organization. Click on Add User to add a new user, or click on an existing user to edit their profile. Click save when finished. * **Groups:** All groups of users at the organization. Click on Add Group to add a new group, or click on an existing group to edit it. Click save when finished. # Overview fabric customer allows you to manage information for the customers and organizations you do business with, including the contracts you may have with them. ## Prerequisites Copilot is the primary interface for working with fabric applications. You will need an active account, including an account ID, to access Copilot. Contact your Copilot Admin or Customer Success representative to obtain these credentials. ## Launching Customer After logging in to Copilot, select **Customer** from the header across the top of the page to access the **Member Dashboard**. ## Navigation Customer is divided into three separate sections accessible from the left column: * [Quickstart](/v3/guides/customers/overview) - basic instructions to configure Customer for initial use * [Customers](/v3/guides/customers/customers) - manage business-to-consumer (B2C) customers * [Organizations](/v3/guides/customers/organizations) - manage business-to-business (B2B) customers * [Contacts](/v3/guides/customers/contracts) - manage business-to-business pricing agreements ## Role-Based Access Control (RBAC) fabric Copilot provides the ability to restrict the access of different users to information and actions available to them through roles. For more information and instructions on how to set up these controls, [visit the RBAC documentation](/v3/guides/settings/rbac/role-based-access-control). # BigCommerce Integration ## Adding the BigCommerce Integration 1. To access Integrations, click your account name in the menu at the top of the page. A dropdown menu appears. 2. Select **Retailer Settings**. The **Retailer Settings** page is displayed. 3. Click **Integrations**. The **Integrations** page is displayed. 4. Click **Add Integration**. The **Add Integration** window is displayed with a list of available integrations. 5. Click **Add** next to the BigCommerce tile. The **Add BigCommerce Integration** window is displayed. 6. In the **Store Identifier** field, enter your BigCommerce store identifier. 7. In the **Store Token** field, enter your BigCommerce store token. 8. Click **Add Integration** After successful authorization, BigCommerce will show up on the list of the integrations on the **Integrations** page for Dropship. ## Accessing Integration Options 1. To access your Dropship Integrations, click your account name. 2. In the dropdown that appears, select **Merchant Settings**. The **Merchants Settings** page is displayed. 3. Click **Integrations**. The **Integrations** page is displayed. 4. Next to the BigCommerce logo, click **Options**. The **Options** window is displayed. 5. Select one of the following: * [Configuration](#configuration): The **Configuration** page allows you to make changes to the basic BigCommerce setup and add or disable webhooks. * [Webhook History](#webhook-history): The **Webhook History** page shows a list of previous webhook callbacks. ## Configuration The Configuration page allows you to make changes related to how order and transaction information is shared between Dropship and BigCommerce. ### Enable or disable webhooks The following webhooks are available for BigCommerce and can be enabled or disabled at any time: | Webhook | Description | | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Orders** | fabric automatically sends purchase orders from your supplier partners directly to your BigCommerce account. Enabling this webhook means that orders from ALL of your supplier connections in fabric will flow through this webhook. | | **Inventory** | Dropship requires frequent inventory updates to reduce cancellations due to low or no stock. The inventory webhook syncs inventory with Dropship automatically. Turn this webhook off if you prefer to update inventory manually. | | **Fulfillment** | Dropship requires frequent order fulfillment updates to track orders. The fulfillment webhook syncs order fulfillment data with Dropship automatically. Turn this webhook off if you prefer to update order fulfillment data manually. | ## Webhook History To access the **Webhook History** page, follow the steps outlined in [Accessing Integration Options](#accessing-integration-options). The Webhook History page shows details of all the events that have been captured by Dropship from your BigCommerce store: * **ID:** The ID of the webhook as captured by Dropship. * **Topic:** The topic that was captured as part of the webhook. * **Status:** The status of the webhook (success or failure). * **Payload:** The data that was sent in the webhook payload. * **Received:** The timestamp of when the webhook was captured. This is in the user’s local time zone. You can use the filters at the top of the table to adjust the webhook information you see. # Publishing Products to BigCommerce ## Publishing Products Outside of a Proposal If a supplier isn't submitting a proposal to you and is importing products through a BigCommerce import, products can be published directly from the **Products Dashboard**. 1. In the main menu, click **Products**. The products page is displayed. 2. Click **Products** located in the **Browse & Review** section. 3. Select the products that you wish to publish. Alternatively, you can check the top box to select all products on the first page. 4. Click **Actions**. The **Publish Products** window is displayed. 5. In the **Platform** field, select BigCommerce. 6. In the **Template** field, select **BigCommerce Export Template**. 7. Click **Publish Products**. ## Publishing Products on a Proposal Suppliers that have submitted product proposals can be approved and published in the **Proposal** menu. 1. In the **Proposal Summary** page, click **Approve**. The proposal state is changed to **Ready to Publish**. 2. In the **Assortment Proposal** page, click **Ready to Publish**. A list of approved proposals containing the items ready to be published is displayed. 3. To review a proposal, click the proposal **ID**. The **Proposal Detail** page is displayed. 4. Click **Approve Products**. The **Approve Proposal** window is displayed. 5. In the **Do you also want to publish products on this proposal to an external platform?** field, select **Yes**. 6. In the **Platform** field, select **BigCommerce**. 7. In the **Template** field, select **BigCommerce Export Template**. 8. Click **Approve**. ## Checking a Job Status To confirm that products were successfully created in BigCommerce, you can check the **Jobs Report** in Dropship to review the status of the job itself. 1. Click on your account name in the top right hand corner of the navigation bar. 2. Click **Job Reports**. The **Job Status** window is displayed with the most recent jobs at the top. 3. Click the job **ID** for the **push\_products** job. The job report is displayed. If any errors occurred when attempting to push products to BigCommerce, we recommend filing a ticket with support. Please provide [fabric support](https://support.fabric.inc/hc/en-us/requests/new) with the following: * The error Job ID * Vendor Name * Product details (new products added X date, or entire catalog) # fabric Integration The fabric Dropship integration seamlessly integrates with fabric Catalog and fabric Orders. ## Prerequisites * Ensure that you have **Administrator** privilege to fabric. For more detailed information on these settings, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Configuring the Integration 1. In the Dropship UI company name top-nav, click **Merchant Settings**. The Merchant Settings page is displayed. 2. Click **Integrations**. The Integrations page is displayed. 3. Click **Add integration**. The Add Integration window is displayed. 4. In the **Add Integration** window, click **Add** for the fabric option. The Add fabric Integration window is displayed. 5. In the fabric Account field, enter your fabric account ID. To find your fabric account ID, see the guide for [getting your account ID](/v3/guides/settings/account-details/getting-the-account-id.mdx). 6. (Optional) In the **Location Number** field, enter a location number. This option allows you to connect to a specific location instead of the entire platform. 7. Click **Add Integration**. You are redirected to the **Integrations** page with the fabric integration now visible. ## Updating Settings 1. In the Dropship UI company name top-nav, click **Merchant Settings**. The Merchant Settings page is displayed. 2. Click **Integrations**. The Integrations page is displayed. 3. Click **Add integration**. The Add Integration window is displayed. 4. In the fabric integration section, click **Options > Configuration**. The **fabric Settings** page is displayed. 5. (Optional) to update the **Location Number** field, enter a new location number and click update. ### Selecting a webhook 1. To select a webhook, in the **fabric Settings Orders** section, use the **Select Webhook** field. 2. Click the Select Webhook field and select an available webhook. 3. Click **Enable Integration**. The integration is Synced and enabled. ### Disabling the integration 1. Follow the steps outlined in [Updating Settings](#Updating-Settings). 2. In the Orders section, click **Disable Integration**. # Import Products & Attributes Suppliers send product details to their retail partners either through proposals within the fabric Dropship system or through spreadsheets that retailers use to create Import Requests, based on their connection settings with the supplier. As a retailer, upon receiving products in your catalog from the supplier, you may need to update some of the products' information before publishing them to your store. This is done by updating the items using the **Import Products & Attributes** feature. ## Procedure Click **Products** in the menu across the top of Dropship. On the Products page, select **Import Products & Attributes**. On the **Import Products** page, use the **Select Template** dropdown to select a template for the products you’re importing. This will ensure that the data in the file you import is mapped to the product in your store correctly. Use the Download Empty Template and/or Show Headers buttons to verify you’re uploading to the intended template and format. To learn about templates and how to create them, refer to the [Templates](https://developer.fabric.inc/v3/guides/dropship-retailers/settings/templates) page. Upload the product spreadsheet using the **Select File** field and click **begin import**. If there are errors present in the template file the following files are made available: * **A list of SKUs:** For every import with one or more errors, an Error Report file is generated. This report includes all SKUs and provides an itemized list of errors corresponding to each SKU. * **A template with only errored items:** A separate file is generated that includes only the items with one or more errors. This allows you to fix these specific items and re-import them without needing to handle the entire original file again. Once the import is complete, you will see a summary of the import process, including its status. ## Import History To see a list of all product spreadsheets uploaded previously, visit the Products page and click on the **History** link next to **Import Products & Attributes**. The Import History page shows a sortable list of all previous imports. | Field | Description | | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **ID** | The import’s unique, fabric-generated identification number. Click the ID to see more detailed information about the import. | | **Data** | The type of data import. | | **File** | The name of the file that was imported. Click the file name to download the original file. | | **Queued** | The date and time the import was initiated. | | **Processed** | The date and time the import was processed. | | **Completed** | The date and time the import was completed. | | **Status** | The result of the import.
- **Success** is displayed when the file is processed successfully.
- **Created with error** is displayed when the file is processed partially but some items had one or more errors.
- **Failed** is displayed when the file fails to upload or when no item is created or updated. | If you encounter any import error, check the **Jobs Report** by clicking on your account name at the top right corner of the navigation bar. Select **Jobs Report**. The most recent job should appear as **Import Products**. Click on the job ID in blue text review the error. In case of errors during import, we recommend filing a support ticket. Include the **Job ID** and any other relevant information, such as Vendor Name and file, if available. # Submit and Manage Import Requests Import requests allow retail partners to preview a supplier's products before the data is added to the Product Catalog. When an import request is submitted to a supplier, the supplier receives a notification from fabric notifying them that you are waiting for them to review and approve the products. ## Submitting an Import Request 1. In the main menu, click **Products**. The products page is displayed. 2. Click **Import Requests**. The **Import Requests** page is displayed. 3. Click **Upload**. 4. In the **Connection** field, select a supplier. 5. In the **File Template** field, select an import template. If you are unsure of what template to select, check your current template setup in your merchant settings. 6. In the **Purpose** field, select a purpose. 7. (Optional) In the **Reference Number** field, provide details and additional context or identifiers. 8. In the \*\*Upload File \*\*section, drag and drop the product file you with to upload. 9. Click **Request Approval from Supplier**. The supplier receives a notification notifying them that you are waiting for them to review and approve the products. ## Managing Import Requests 1. In the main menu, click **Products**. The products page is displayed. 2. Click **Import Requests**. The **Import Requests** page is displayed. On the **Import Requests** page you can view all the import requests submitted to your suppliers. ### Import statuses **Pending** - The supplier has yet to approve or reject the import request. If the import request has been pending for an allotted amount of time, we recommend reaching out to the supplier directly to have them review the submitted file and approve. **Approved** - The supplier has approved the requested products and these products should now be available to your team within your fabric Dropship account. # Inventory View and export inventory reports on both the item and supplier levels. ## Item level inventory To access inventory positions on each item you are selling, navigate to the **Products** page and select **Inventory** within the **Browse & Review** section of the products page. The Item Inventory page will provide you with a list of all items and their associated inventory positions. You can search for an individual item or use the filters to create a specific inventory report. All inventory reports can exported by using the **Export** button on the top right of the inventory page. NOTE: if the supplier provides an estimated availability date for out of stock items, that date will appear underneath the inventory amount. ## Inventory by supplier To access inventory status by Supplier, navigate to the **Products** page and click the blue **By Supplier** link within the **Inventory** section. The **Inventory by Supplier** page is a high level status of each of your connected suppliers. It provides the number of items associated with each of your suppliers, the number of items that are in stock, the number of items that are out of stock, and the last time each supplier submitted inventory. # Inviting Suppliers To invite a new supplier to your dropship program, click **Suppliers** in the top navigation menu. Click **Invite Supplier** at the top-right of the page. In the new window, enter the following details in the **Supplier Info** section: * The name of the supplier. * The primary contacts first name, last name, and email. If the connection settings of the new supplier are different than your account's default settings, you can change those settings during the invite process by using the **Advanced Settings** on the invite form. **Note:** Your account's default settings are set during the initial onboarding of the retailer with the help of the Customer Success Manager. To invite a new supplier who will have different account settings: * Check the **I want to override the settings below** box on the invite form. * Select the settings you wish to create for this supplier using the following fields: * **Default Fulfillment SLA** * **Payment Terms** * **Cost Model** * **Returns & Customer Service Allowance** * When the form is complete, click **Send Invitation**. Your new supplier will receive an email from the Dropship Platform prompting them to sign in and begin the onboarding process. If the supplier requires more detail on how to use the Dropship Platform or has additional questions, they can schedule a call with a fabric Supplier Onboarding Specialist. ## Managing invitations To manage the suppliers you have invited, navigate to the **Suppliers** page and click **Invitations**located in the **New Suppliers** section. The **Invitations** page provides you with a list of all suppliers who you have sent an invitation to but have yet to access the platform. If your supplier has not received the invite email, you can resend the email by clicking the **Resend** button next to that supplier. ## Activating new suppliers Once a supplier accepts your invitation, they will move to the **Onboarding** section on the **Suppliers** page. You can opt into receiving a notification when your supplier has completed onboarding to know when they're ready for their connection to be activated. To activate a new supplier, navigate to the **Supplier** page and click **Onboarding** within the **Browse Suppliers** section of the suppliers page. This page provides you with a list of suppliers who have accepted your invite and in the process of setting up their account. The **In Review** status means that the supplier has completed their onboarding and is ready for your team to activate them. Click on the blue supplier link to pull up that suppliers detail page. Click **Activate** on the top left of the **Supplier Detail** page. **NOTE:** If you don't activate a new supplier, they won't be able to receive orders. Once the supplier is **Active**, they will move from the **Onboarding** section to the **Active** section within the **Suppliers** page and they can begin receiving orders. ## Checking Onboarding Status Once a supplier accepts your invitation, they will move to the **Onboarding** section on the **Suppliers** page. If a supplier is still in an **Onboarding** status and you want to check where they're at with their onboarding items, click on the blue supplier link to pull up that suppliers detail page. On the **Supplier Detail** page, click **Onboarding** in the left connection menu to pull up the status of their onboarding. # Invoices View, export, and manage invoices for all dropship orders. ## Viewing and exporting invoices 1. To access invoices associated with your dropship orders, click **Orders**. The **Orders** page is displayed. 2. Click **Invoices** located in the **Reports** section of the **Orders** dashboard. The **Invoices** page is displayed. 3. To find an invoice report, use the filter options. You can view and export reports. 4. To export your invoice report, click **Export**. Your invoice report is sent through an email to the user who requested the export. ## Managing invoices The fabric Dropship Platform provides you with the tools to manage invoices by updating their status to both **Acknowledged** and **Paid**. 1. To access invoices associated with your dropship orders, click **Orders**. The **Orders** page is displayed. 2. Click **Invoices** located in the **Reports** section of the **Orders** dashboard. The **Invoices** page is displayed. 3. Select the invoices you wish to update as **Acknowledged** or **Paid**. 4. To mark an invoice as **Acknowledged** or **Paid**, click **Actions**. 5. Two options appear, select **Accept Invoices** or **Mark Invoices as Paid**. If you selected multiple invoices, all the invoices are updated. The **Acknowledged** or **Paid** column is updated for the invoices. # Loop Integration The Loop Dropship integration seamlessly integrates with fabric Catalog and fabric Orders. ## Prerequisites * Ensure that you have **Administrator** privilege to fabric. For more detailed information on these settings, see the [Role-Based Access Control](https://developer.fabric.inc/v3/guides/settings/rbac/role-based-access-control-orders-roles) section. ## Configuring the Integration 1. Submit a support request to [fabric customer success](https://support.fabric.inc/hc/en-us/requests/new) with the following details: * `Loop_api_key` (Required) * `Loop_webhook_secret` (Required) * `Loop_rma_number_mapping` (Optional): The default mapping is with the `id` of the return. Retailers can use this option to map other values such as `order_name`. This field's value is set as the return merchandise authorization **RMA** number in Dropship. * **Return to vendor warehouse** (Optional): Loop doesn't provide data on where the return is being shipped by default. The return to vendor warehouse credential is used to set up the shipping address on the return. Choose one of the following options: * **True**: Create the return address on RMA to be set to the vendor's warehouse. * **False**: RMA is created without any `shipTo` address. A tracking number is still available but no shipping address. * Select one of the following webhooks: * **Return Created**: This is the standard webhook for returns. Loop provides the `return_created` event and an RMA is created in fabric dropship. * **Return Updated**: This webhook enables you to create a return without an initial tracking number allowing you to later update the return with the tracking number once available. Loop doesn't support automatic enabling of webhooks for their API. Once set up, you need to manually enable the webhook on the Loop dashboard. If a return fails to sync, fabric can identify the return based on the Webhook History ID, Order Number, or return ID. fabric will then retry retrieving the return information again. # Create Purchase Order Generate a custom purchase order manually. ## Create order To manually create a purchase order, select **Create Purchase Order** from the **More** dropdown menu on the **Orders** page. Select **Create Purchase Order**. You will be directed to the **Order Create** page to start manually creating your Purchase Order. Each field must be completed manually unless it's marked optional. ### Order details | Field | Required Information | | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Purchase Order Number** | Provide the purchase order number. | | **Order Date** | Provide the purchase order date. | | **Retailer Order Number** (Optional) | Use this field if an additional identifier is needed to reference the **Purchase Order Number**. For example, an Order Management System order number. | | **Customer Order Number** (Optional) | Provide the customer order number if applicable. | ### Ship to 1. To enter a customer shipping address, click the ship to link. 2. Complete the **Add Ship To Address** form. 3. Click **Save**. ### Requested ship method In the **Requested ship method** section, assign the shipping method. Use the dropdown to select **Expedited** or **Ground**. ### Optional notes In the notes section, you can add purchase order notes. ### Order lines 1. Select the supplier the order should be created against using the dropdown list. 2. Click **Add new line**. Select the variant using the dropdown search bar. 3. Enter the quantity, price, and cost of the item. 4. Click **Add**. 5. Click **Create Order**. The data is saved in the system for future reference. # Managing cancels & backorders Manage orders canceled or flagged as backordered by a supplier. ## Managing canceled orders When orders are canceled by a supplier, retailers have the ability to acknowledge the cancelation. If you don't have an automated integration with fabric Dropship, you can acknowledge canceled orders directly within Dropship. 1. Click **Orders** in the top navigation. The **Orders** page is displayed. 2. In the **Require Attention** section, click **New Cancels**. The **Cancels** page is displayed with a table of canceled orders. 3. Select the canceled orders you wish to acknowledge by clicking the checkbox next to the order. 4. Click the **Actions** button and select **Acknowledge Cancels.** The Acknowledge Cancels window is displayed. 5. Click **Acknowledge All Cancels**. ## Managing orders with backordered Items When items on an order are marked as backordered by a supplier, retailers have the ability to acknowledge the backorder. If you don't have an automated integration with fabric Dropship, you can acknowledge orders with backordered items directly within Dropship. 1. Click **Orders** in the top navigation. The **Orders** page is displayed. 2. In the **Require Attention** section, click **New Backorders.** A list view of orders containing backordered items is displayed. 3. To open the order detail page, click the blue PO#. The order details page is displayed. On the order detail page you can view the date the supplier expects the item to be back in stock within the **Key Dates** section. 4. To acknowledge the backorder, click **Acknowledge Backorder** on the main **Order Detail** page. # Order Detail Search for and view detailed information on each order. ## Finding orders If you know the **PO#** of the order you want to view, enter it in the search bar on the main **Orders** dashboard. From the results, click the **PO#** to view the [detail page](#order-detail-page). ### Advanced filtering If you don't have the **PO#** available for the order you want to view, click **advanced** next to the search bar on the main **Orders** dashboard. You can filter by: * PO Number (exact) * PO Number (contains) * Customer Order Number (exact) * Customer Order Number (contains) * Tracking Number * Invoice Number ## Order detail page The following fields and data are available on each individual **Order Detail** page. * **Order Identifiers** - The order identifiers provide a breakdown of the supplier name, customer order number, purchase order number, and the fabric ID assigned to the order. * **Shipping** - The shipping section provides the ship method information with the customer **Ship To Address**. * **Key Dates** - The key dates capture all the important dates tied to the order such as the date of order creation, expected completion date, and the date the order was closed out. If there is a backorder date associated with the order it's displayed with other key dates. * **Extras** - This section provides miscellaneous information against the order. * A direct link to the order packing slip; Dropship automatically generates a packing slip for each order once an order has been created within the platform. If a supplier doesn't wish to generate packing slips outside of the platform, the supplier can access the packing slip within the individual order. * Gift Message; If a customer provides a gift message when placing an order, the information can be found within the individual order. The gift message will also appear on the packing slip. **Order Lines** - The Order Lines section within the individual order screen provides you with a simple overview of the products available on the order. The item description and SKU are captured on the left-hand side while the units ordered breakdown is captured on the right-hand side. To view the pricing associated with the line item you can change the view using the **View** dropdown on the line item. **Tracking Numbers** - The Tracking Numbers section within the individual order screen provides you with a simple overview of the shipment information that's available on the order. The tracking number can be clicked to open a pop-up providing complete Shipment Detail information. Clicking on the tracking number in the shipment detail popup will re-direct you to the carrier site for additional tracking details. **Invoices** - The Invoices section within the individual order screen provides your team with a simple overview of the invoice information that's available on the order. The invoice number can be clicked on to open a pop-up providing complete invoice detail information. **Order Messages** - This section contains all the messages shared on the order between you and the supplier. **Order Activity** - This section contains a running list of all activity associated with the order. ## Order detail Shopify activity If your supplier is integrated with Shopify, on the Order Detail page you can see if the order was successfully pushed to their Shopify or not. If the order wasn't pushed to your suppliers Shopify, a error message will be present at the top of the individual order detail page. Typically errors will occur when attempting to push to suppliers Shopify’s due to the following: * The SKU on the order doesn't exist in the suppliers Shopify. Examples include: * The SKU was changed in the suppliers Shopify but wasn't updated in fabric Dropship. * The SKU was removed from the suppliers Shopify due to it being discontinued. * The SKU on the order is duplicated in the suppliers Shopify. * Although fabric recommends that each SKU is unique in a suppliers Shopify, fabric understands that this can't always be the case. When there is a duplicate variant in the suppliers Shopify, the supplier will need to confirm what Shopify Variant ID fabric Dropship should sync to. If an error is available for your suppliers orders, please reach out to the supplier directly to have them work with fabric support. # Orders Visualize the information needed to manage all aspects of your dropship orders across all connected suppliers. To navigate to the **Orders** dashboard, login to the Dropship Platform and click **Orders** on the top menu bar. ## Orders dashboard The **Orders** dashboard consists of three main sections that make it easy to quickly view all information associated with dropship orders. They're **Open Orders**, **Reports**, and **Require Attention**. Clicking on any of the pre-filtered lists or reports within each of the main sections of the Orders dashboard provides a list view of all orders that fit within the pre-filtered criteria. ### Open orders **Open Orders** contains four pre-filtered lists: | List | Description | | ------------------------ | ---------------------------------------------------------------------------------- | | **Open Orders** | A list of all open orders | | **Current Orders** | A list of open orders that are within your fulfillment SLA. | | **Past Fulfillment SLA** | A list of open orders that are past your fulfillment SLA. | | **Late Invoices** | A list of open orders that have shipments but remain open due to missing invoices. | ### Reports **Reports** contains pre-filtered reports for various order details. | Report | Description | | ---------------------------- | ----------------------------------------------------------------- | | **Orders with New Messages** | A report with the latest order notes from your partners. | | **Shipments & Tracking** | A report containing information for shipments & tracking numbers. | | **Returns** | A report containing information on returns and RMAs. | | **Invoices** | A report containing all invoices from your suppliers. | ### Require attention **Require Attention** contains two pre-filtered lists to manage cancellations and backorders. | Name | Description | | ------------------ | -------------------------------------------------------------------------------- | | **New Cancels** | A list of cancellations that require acknowledgement by you, the retailer. | | **New Backorders** | A list of orders that contain items that the supplier has marked as backordered. | All data from any page containing a list view of orders can be exported by clicking on the **Export** link on the upper right side of each page. If any additional filters are applied to the page, the export will contain all orders that fit the filter criteria. # Returns and Credit Memos Create returns on orders and manage the credit memos associated with those returns. ## Creating returns To create a return on an order, navigate to the **Orders** dashboard by clicking on **Orders** in the top menu bar. Search for the order you wish to create the return on and click the PO# that's displayed in the search results to pull up the order detail page. NOTE: An order must be in a closed status in order to create a return against that order. On the **Order Detail**page click **Start a Return**. Complete the form by selecting a reason for the return, adding an RMA number (optional), and entering the number of items being returned. Submit the return by clicking on **Start Return.** Once a return has been created against an order, the supplier associated with that order will be notified via email of the return. The supplier can then either Approve or Decline the return. ## Managing returns To track and manage returns, navigate to the **Orders** dashboard and click **Returns** located in the **Reports** section of the dashboard. The **Returns** page will provide you with a list of all returns and their current status (Pending, Approved, Declined). ## Credit memos If your supplier approves a return that was created against an order, they then have the ability to create a Credit Memo against that return. To access **Credit Memos**, navigate to the **Orders** dashboard and using the **More** dropdown, and select **Review Credit Memos**. The **Credits** page provides you with a list of all credit memos submitted by your suppliers. You can use the filtering options to create a report of specific credit memos. Click the blue **ID** link of a specific credit memo to pull up additional details of that credit memo. # Shipping & Tracking The Shipments & Tracking dashboard allows you to see all the shipments sent by all of your suppliers in one spot. ## Viewing the Shipments and Tracking Dashboard 1. To view a filterable list of all the existing shipments, click **Orders**. 2. On the **Orders** page, click **Shipments & Tracking**. The **Tracking #s** page features a filterable list of all existing shipments with sortable column headers. | Column Header | Description | | ---------------- | ------------------------------------------------------------------------------------------------------------------------- | | **Supplier** | The name of the supplier who sent the shipment. | | **Service** | The shipping service the supplier used. | | **Tracking #** | The shipment tracking number. Clicking on an individual tracking number in the list opens the **Shipment Detail** window. | | **PO #** | The purchase order associated with the shipment. | | **Registered** | The date the shipment was registered, shown in the user’s local time zone. | | **Acknowledged** | The date you (the retailer) acknowledged the shipment as complete. | | **Track** | A direct link to the carrier’s website for tracking. | # Overview Rapidly launch, operate, and scale a curated assortment of products from an unlimited number of dropship suppliers. fabric Dropship acts as a business catalyst by enabling retailers to curate and offer new product assortments with low risk, low cost and zero added inventory. It's the only dropshipping platform that seamlessly integrates into a business's commerce stack and allows for rapid expansion and revenue growth while handling all of the complex inventory, transactions, billing, and supplier management functions in the backend. ## Navigation The fabric Dropship Platform for retailers is divided into four separate sections accessible from the top navigation menu * **Orders** - Your dashboard for managing and tracking all dropship orders * **Product Catalog** - Your dashboard for managing existing items, curating new items from your suppliers, and tracking inventory * **Suppliers** - Your dashboard for managing existing supplier connections and inviting new suppliers to your dropship program * **Reports** - Detailed reports to review the performance of your dropship business and all your suppliers # Proposals Review and approve proposals online. A proposal is a list of items that a supplier submits directly to a retailer partner through the fabric Dropship Platform. When one of your connected suppliers submits a proposal, you receive an email notification that a new list of items are submitted. You can then review the items before accepting and approving. ## Proposal statuses The status of a newly submitted proposal shows as **Proposed**. The following table describes the various proposal statuses. | Status | Description | | -------------------------- | ---------------------------------------------------------------------------------------------------- | | **Requires Approval** | Indicates the supplier has submitted the proposal for the retailer's review and approval. | | **Waiting for Supplier** | Indicates the proposal is sent back to the supplier for additional revisions to product data. | | **Needs Pricing Approval** | Indicates that the proposal requires an approval for pricing or product data. | | **Pricing Approved** | Indicates that the proposal requires a second approval before it's ready for publishing. | | **Ready to Publish** | Indicates the proposal is approved and is ready for publishing. | | **Completed** | Indicates that the proposal is complete. | | **Declined** | Indicates the proposal is declined, along with a reason. However,the reasons for declining may vary. | ## Proposal types There are three types of proposals: * **New item proposals**: These proposals contain new items that aren't currently available on your site. * **Cost update proposals**: Suppliers submit these proposals to update the previously approved wholesale cost of items. * **Attribute update proposals**: Suppliers submit these proposals to change product details, including images and descriptions, of already approved items. All proposals are reviewed and approved with the same process outlined below. ## Managing proposals To manage new item proposals, cost update proposals, and attribute update proposals, navigate to the **Products** page and select **Proposals**, located in the **Curate** section of the **Products** page. On the **Assortment Proposals** page, Click **Requires Approval** to pull up a list of all recently submitted proposals. The **Requires Approval** page lists all submitted proposals awaiting action. On this page, you can view the following details: * Proposal ID. * The name of the supplier who submitted the proposal. * The name of the proposal, which includes the department name. * The total items added to the proposal. * The date when the proposal was submitted. * The status of the proposal. To review a proposal from the list, click the blue link in the proposal **ID** column to access the individual **Proposal Detail** page. Using the **Proposal Menu** on the **Proposal Detail** page, you can review the items on the proposal at both the product level and the item level. * To view items on the product level, click products under the **Proposal Menu**. * To view items on the item level, click pricing under the **Proposal Menu**. ### Removing Items To reject items or entire products from a proposal that aren't relevant to the agreed upon assortment, you can remove by: * Select the items or products under the designated view (pricing or products). * Click **Actions**. * Select **Remove Products**. ## Sending Items Back to a Supplier If a supplier needs to revise a proposal, create an issue for each item, detailing the reason for sending it back and setting the expectation for the required changes. ### Creating an issue Select an item or product under the designated view (pricing or products). Click **Actions**. Click **Create Issue**. * Add an Issue Title. For example, Images. * Add an Issue explanation. For example, images provided are broken, please provide new ones. Once all issues have been created on the proposal, return to the summary screen using the proposal menu and click **Return**. ## Approving Proposals 1. When you are ready to approve the reviewed items, return to the summary screen using the proposal menu and click **Approve**. 2. Once the proposal is approved, it's moved to the **Ready to Publish** section of the **Assortment Proposals** page. 3. Click on the **Ready to Publish** section to pull up a list of approved proposals containing the items that are ready to be published on your site. 4. To pull up a proposal from the list, click the blue link in the proposal **ID** column to access the **Proposal Detail** page. 5. Click **Approve Products**. When approving, a new window opens, asking the following: * Do you also want to publish the products on this proposal to an external platform. 6. Select one of the following: * Yes. Continue the steps below. * No, just mark this proposal as approved. Skip to step 10. 7. Using the **Platform** field, select the platform where you want to publish the product. 8. Using the **Template** field, select the preferred template for publishing products. 9. To complete the process and remove the proposal from the **Ready to Publish** section, click **Mark as Complete!**. Marking the proposal as complete moves the proposal to the **Completed** section on the main **Proposals** page. Once the items from the proposal are added to your site you can begin receiving orders for those items. # Compliance Scorecard ## Overview The Compliance Scorecard is a tool that allows Retailers to track and monitor their suppliers' compliance and ensure dropship performance. The scorecard is calculated using three factors: * Number of orders fulfilled within a specified SLA * Number of canceled orders * Number of orders replaced To access the Compliance Scorecard, click **Reports** in the menu across the top of Dropship. In the dropdown that appears, select **Compliance Scorecard**. ## Compliance Scorecard The main Compliance Scorecard page shows an overview of all Suppliers along with a quick look at their performance metrics. * **Score & Change:** The supplier’s score for the month and change compared to the previous month. * **Award (Gold/Silver/Bronze):** The award level the supplier has achieved in comparison with all of your other suppliers. * **Rank & Change:** The supplier’s rank compared with all of your other suppliers and change in comparison with the previous month. * **Actions:** Click the icon to access more detailed compliance numbers for that individual supplier. ## Compliance Scorecard Details To see the Supplier Details report on an individual supplier, find and click on that supplier’s name or click on the icon under Actions. The Supplier Details page shows graphs and rankings in two categories: **Summary** and **Orders**. ### Summary * **Compliance Score:** The supplier’s compliance score over the past six months. * **Rank:** The supplier’s rank out of all of your suppliers over the past six months. ### Orders * **Orders Received:** The total number of orders the supplier has received. * **Fulfillment Score:** The supplier’s fulfillment score, which is calculated by their ability to fulfill orders within the SLA time. * **Cancellation Score:** The number of orders that customers have cancelled with the supplier, measured against the total number of orders they’ve received. * **Replacement Score:** The number of orders the supplier has had to replace, measured against the total number of orders they’ve received. * **Supplier Revenue:** The total revenue generated by the supplier through fabric Dropship. * **Merchant Share Paid:** The retailer’s share of revenue paid by the supplier. # Reports ## Introduction The Reporting features in fabric Dropship allow you to export information about Orders, Shipments, Invoices, Products, and Cancellations. ## Order Report To export orders, select **Orders** from the menu at the top, and then click on one of the categories under **Open Orders** on the Orders page. You will be directed to the **List** page, which shows all of the orders in the category you chose. When exporting an orders report, you can apply different filters to the data. Some filters include Connection (supplier name), Order Status, and Date range in which the orders were received. Once you are ready to export the order report (with or without filters), click the **Export** button to the right of the search bar. The export will be delivered as a CSV file to the email address associated with the Retailer account. ## Shipment Report To export past shipments, click on **Shipments & Tracking** on the Orders page. You will be directed to the **Tracking #s** page, which shows all of your previous shipments. When exporting a shipment report, you can apply different filters to the data. Some filters include Connection (supplier name) and the date the shipment was created. Once you are ready to export the shipment report (with or without filters), click the **Export** button to the right of the search bar. The export will be delivered as a CSV file to the email address associated with the Retailer account. ## Invoice Report To export past invoices, click on **Invoices** on the Orders page. You will be directed to the **Invoices** page, which shows all of your invoices. When exporting an invoice report, you can apply different filters to the data. Some filters include Connection (supplier name), the date invoice was submitted, and whether the invoice has been received by your retailer partner. Once you are ready to export the invoice report (with or without filters), click the **Export** button to the right of the search bar. The export will be delivered as a CSV file to the email address associated with the Retailer account. ## Product Report To export a supplier’s product catalog, select **Products** from the menu at the top of the page. From the Products page, there are two ways to view the supplier’s product catalog: * Click **Products** to view the catalog by parent information * Click **Items** to view the catalog by child SKU information When exporting a product catalog, you can apply different filters to the data. Some filters include Connection (supplier name), the date item was created, and whether or not the item is in stock. Once you are ready to export the product report (with or without filters), click the **Export** button to the right of the search bar. The export will be delivered as a CSV file to the email address associated with the Retailer account. ## Cancels Report To export a supplier's cancellations, select **Orders** from the menu at the top, and then click on **New Cancels** under the **Requires Attention** section. You will be directed to the **Cancels** page, which shows all order cancellations. When exporting a supplier’s cancellations, you can apply different filters to the data. Some filters include Connection (supplier name), the reason for the cancellation, and the date order was canceled. Once you are ready to export the cancel report, click the Export button to the right of the search bar. The export will be delivered as a CSV file to the email address associated with the Retailer account. # Sales Performance Reporting ## Overview fabric Dropship Performance Reporting allows you to see the sales performance of your top suppliers each supplier’s top products. ## Performance Reporting Click on **Reports** in the menu at the top of Dropship. In the dropdown that appears, select **Sales Reporting**. The graphs on the Reporting page display numbers based on the dates selected in the fields at the top-right. Enter a custom date range or use the dropdown to select a predefined date range to adjust the data you see. The dashboard across the top of the page shows an overview of the number of suppliers with orders, number of orders, estimated gross merchandise value, average order value, and a line graph plotting performance over time. Use the Export buttons in the Daily Performance, Top Suppliers, and Top Products menus to save the information in a CSV file. # Attribute Value Transformers Transform the value of attributes automatically and accurately. ## Overview Attribute Value Transformers provide retailers with the capability to transform the product and variant attributes through various transformation rules. This enables consistent and accurate conversion of supplier-provided attribute values into the desired value as required by the business. Some examples of an attribute value transformation rule- Transform the value of “Category” attribute * Tshirt → Fashion > Apparel > Topwear > Tshirt * Shoes → Fashion > Footwear > Shoes Transform the value of “Supplier ID” attribute * 15 → Asian, Inc * 18 → Viets Corp ## Create an Attribute Value Transformer To access the Proposal Department, login to your dashboard, select **Retailer Settings**, then **Attribute Value Transformers,** then **Create Transformer.** Enter your **Transformer Name** Select **Save** Click on new transformer in **Transformer Name** list **Search** the attribute you want to transform * Not all identifier attributes can be added to a transformer Click on the attribute in the **Attribute** list Enter the details in the **Transformation Settings** section * Attribute Value Match - This is the value to be transformed * Transformation Output Value - The value you need after the transformation Each transformation can be modified by clicking on the **Edit** link You can create and number of transformations for this Attribute Once completed, click on the **Transformers** link in the breadcrumb navigation in the upper right of the page. ## Apply a transformer Once transformer is created, there are multiple screens and workflows where a transformer can be applied. ### Accepting Proposals If you have any new open proposals after creating a transformer, values of the proposal can be transformed. Navigate to the proposal that still requires an approval Click on **More** button Click on **Apply Transformer** Select the **Transformer** of choice from the dropdown menu and click **Apply** All matching attribute values across all items of proposal will be transformed. ### For Suppliers and Retailers **Importing the Products** You can apply transformer on a spreadsheet before you import any products Navigate to **Import Products** Select a **Template** from the dropdown menu Select the desired **Transformer** from the dropdown menu Select your import file and click **Begin Import** ### Product List Page You can apply a transformer even after items have been added to the catalog. Navigate to the **Products** list page Select the relevant products using the checkbox Click on **Actions** Select the **Transformer** from the dropdown menu Click on **Apply to All Products** # Categories & Commission Profiles The Categories feature in fabric Dropship allows retailers to organize products into groups and set different commission rates for each group of products. Categories can then be used to create Commission profiles for different supplier partners on the Dropship to maximize commissions. ## Categories To access Categories, click on your account name in the menu at the top of Dropship and select **Retailer Settings** in the menu that appears. On the Settings page, scroll to the bottom and select **Categories**. The Categories page displays a table of all the Categories you’ve created previously, with a quick look at the ID, Category Name, Number of Items in the Category, and the Last Updated date. To create a new Category, click the **Add New Category** button at the top-right of the page. In window that appears, give the new Category a name and click **Save**. To rename or delete an existing Category, find it in the list of Categories you’ve created previously, click on the corresponding vertical ellipsis icon (⋮), and then click Rename or Delete. Please note that Category names must be unique and only Categories with no items can be deleted. **Please Note:** Your Suppliers will be able to see all the Categories you create and any products you assign to them. ### Adding Products to a Category In Dropship, categories are attributes of a product, similar to a product’s name, description, color, etc. Like these other attributes, categories are set up in the CSV file of your products that you import into Dropship. To learn more about this process, visit the Import Products & Attributes page. ## Commission Profiles To access Commission Profiles, click on your account name in the menu at the top of Dropship and select **Retailer Settings** in the menu that appears. On the Settings page, scroll to the bottom and select **Commission Profiles**. The Commission Profiles page displays a table of all the Commission Profiles you’ve created previously, with a quick look at the Profile Name, Suppliers, and Method. ### Creating a Commission Profile To create a new Commission Profile, click the **Add New Profile** button at the top-right of the page. On the Create Commission Profile page, give the new profile a name and a description, and select a method for the Commission Profile, either **Flat Commission %** or **Commission by Category**. * **Flat Commission %:** Specify a commission rate to be applied to all items, regardless of their category. * **Commission by Category:** Enter a commission rate for each category. **All Categories** is selected by default and used for any items without a category. Click **Add Categories** to set up custom commission rates on a per-category basis. When you’re finished setting up your Commission Profile, click **Save**. ### Managing Commission Profiles To edit or delete a commission profile, visit the Commission Profiles page and click on a Commission Profile to change. * To edit the Commission Profile, make your changes and then click the Update button at the top right. * To delete the Commission Profile, click Delete at the top right, and then click Delete in the popup that appears. ## Best Practices for Commission Profiles To use Commission Profiles effectively, consider the following best practices: * Set commission rates that align with your business goals and help you maximize profits. * Use category-specific Commission Profiles to set different commission rates for different categories of products. * Keep Commission Profile names and descriptions clear and descriptive to help you identify them later. # Proposal Departments Standardize product data rules for all suppliers across various categories. ## Overview When retailers are sourcing products in various categories from their suppliers, it becomes essential for them to be able to differentiate product attributes and their validations for each category. A proposal department enables retailers to set any number of categories and apply different validations on each one, making it easy to implement control over the quality of data their suppliers share. A proposal department enforces the rules of a product import template and two predefined rulesets on every proposal before a supplier can send proposals to the retailer. Status * Active - An active Proposal Department is available for all suppliers of the retailer. * Disabled - You can set the status of a department to Disabled if you don’t want to use this anymore. ## Create a Proposal Department To access the Proposal Department, login to your dashboard, select **Retailer Settings**, then **Proposal Department,** then **Create.** Enter the name of the proposal in **Department Name** Select a **Product Import Template** * Every proposal department requires the product import template to identify the list of attributes for the proposal department * A retailer can only select from the existing list of templates. Select a **Supplier Ruleset** * You will be able to see a list of existing rulesets * Select the ruleset that all items must be compatible with when being added to a proposal NOTE: Supplier ruleset is also applied on all items during the compatibility check of every proposal. Select a **Retailer Ruleset** * You will be able to see a list of all existing rulesets * Select the ruleset that the items must be compatible with when being accepted from a proposal NOTE: The retailer ruleset is applied on the all items of a proposal during the compatibility check before it can be sent over to the retailer for a review Select a **Sample Template URL** (optional step) * Dropship gives retailer the capability to provide a ready template to their supplier that can be referenced while creating the spreadsheet for a proposal. * You can simply upload the file on your server and add a URL here. This will make the file available for the supplier while creating a proposal. Please reach out to fabric Support if you need support in uploading the sample file to fabric’s server. Select **Save.** # Rulesets Set the conditions and validations used by the Proposal Department. ## Overview A ruleset is a set of conditions that can be applied to a proposal through the feature called Proposal Departments. A ruleset consists of multiple rule groups. Each rule group can have multiple rules configured where each rule dictates the conditions for an individual attribute. * Retailers and suppliers use rulesets to dictate the terms of a proposal department * Rules set under a ruleset are applied to all items and attributes during a proposal * Proposal compatibility will check all the items from the template and apply the rulesets on them. Only validated items will be added to the proposal * Every retailer must have at least 2 rulesets, one to be used as Retailer ruleset and one to be used as suppliers ruleset. Refer to [Proposal Departments](/v3/guides/dropship-retailers/settings/proposal-departments) for more details. ### Create a Ruleset To create a ruleset, login to your dashboard, select **Retailer Settings**, then **Product Rulesets,** then **Create Ruleset.** Enter a **Name** and **Description** of the ruleset. Click **Create** and the new ruleset will appear in the list. ## [](#section-) ### Create a Rule Group inside the Ruleset To configure a Rule Group in a Ruleset, click on the **Ruleset Name** you created. Click on Create inside the **Rule Group** section and complete the dialog box * **Name** - Name of the Rule Group. This represents the group to which the attribute belongs. For example, all identifier-related attribute rules can be part of the a single group called Identification. * **Position** - Only an integer is accepted. This will dictate the order of this group on the item details page. * **Description** - An optional description of the Rule Group. Click **Save**. A single Ruleset can have any number of Rule Groups. ### Create rule group ### Create a rule inside a Rule Group To add a rule, click on the relevant **Rule Group**. Click on **Create** inside the **Rules** section and complete the dialog box * **Attribute** - Select an attribute on which you want to apply the rule. * Note: This list will have the attribute names as defined by fabric Dropship. Retailers’ own attribute names aren't shown here, so be careful when selecting the attribute while creating a rule. * **Name** - Provide a name for the rule. * **Position** - Set the priority of the rule. This will dictate the order in which this attribute should appear on the Item details page. * **Description** - an optional field to add a description to the rule. * **Is Required** - Determines if the attribute must be included to pass the compatibility with this Ruleset. Click **Save**. A single Rule Group can have any number of rules. ### Create rule ### Adding validators to a rule (optional) A validator Enables retailers to set more complex validations on their attributes. Once a rule is added, validators can be added to it. * Multiple validators are available to be added, however, only one validator can be added per rule. To add a validator, click **Add** next to the rule inside the list. Select the validation **Type** from the dropdown menu. Enter the relevant expression in **Value.** Click **Save.** # Settings Add users and configure notifications in Dropship. ## Introduction To access Retailer Settings, click on your account name in the menu at the top of the page. In the dropdown menu that appears, select **Retailer Settings**. Use the tiles on the Retailer Settings page to manage everything from general information and user privileges to API clients and webhook settings. ## Default Onboarding Preferences Manage the default onboarding settings for all new suppliers. The settings you configure here will be the default settings for all new connections. You can always override these settings when inviting a new connection. Each of these preferences is set for a new vendor automatically. These preferences can be changed for an individual vendor by going to their Connection Details Page. ### Default Cost Determination All incoming items on a purchase order must have an associated cost to the retailer. Use the **Cost Method** dropdown menu to make a selection: **Specified on Platform:** Dropship is responsible for capturing the cost in this scenario. For Proposals, an attribute called “Cost” becomes mandatory for all of a supplier’s items. It's implemented through rulesets being used by Proposal Departments and requires that suppliers define the value for the “Cost” attribute for every item when creating a proposal. For Import Requests, the same “Cost” attribute becomes mandatory for all items created by the retailer, and retailers won't be able to send import requests without the “Cost” attribute. **Specified on Order:** The retailer is responsible of providing the value of “Net Price” with every order they create in Dropship. Orders created without “Net Price” or “Retailer Price” will be rejected by the system. **Commission:** The retailer must specify the commission amount. Dropship will automatically calculate the cost to be paid to the supplier based on the retail price in every item. Retailers need to provide the “Retail Price” while creating an order in Dropship. Any order without the Retail Price will be rejected. The net price will be calculated based on the commission and retail price. After making a selection, click the **Save Preference** button. ### Default Fulfillment SLA The Fulfillment SLA governs how long suppliers have to ship orders before they're considered late. Use the dropdown to choose whether suppliers have one, two, or three business days to ship orders once they receive the order. After making a selection, click the **Save Preference** button. ### Default Payment Terms The retailer pays the cost of all the items on a purchase order. The Payment Terms reflect how long the retailer has in credit days before that amount is due to the supplier. For example, if set to Net 15, the retailer will need to remit the supplier within 15 days of invoice receipt. Use the dropdown to make a selection and then click the **Save Preference** button. ### Default Catalog Import Method The catalog import method defines how suppliers share their product catalog with you. Selecting **Import Requests** requires you to upload a spreadsheet on behalf of your suppliers and subsequently seek their approval to publish the products. Selecting **Proposals** requires suppliers to submit products to you for approval. After making a selection, click the **Save Preference** button. ### Default Customer Service & Returns Allowance Setting a customer service & returns allowance on a connection automatically applies an adjustment to all new incoming supplier invoices, decreasing the amount the retailer owes the supplier. This allowance is typically applied to offset the costs of returns and other costs associated with servicing a customer. To set a default returns allowance for any new connections automatically, enter a value between 0 and 10% and then click the **Save Preference** button. ### Packing Slip Template Including a retailer-branded packing slip is often an important component of the customer experience. The default packing slip will include your logo and core order data including the customer order number. If you have worked with fabric Support to configure a custom packing slip, please provide the template name and click the **Save Preference** button. ## Currency Settings Manage the currency of your account. Use the dropdown menu to select a primary currency. This will help Dropship apply location-specific configurations for things like a product’s cost and price. Supported currencies include United States Dollar, Canadian Dollar, British Pound Sterling, and Euros. ## Notifications Dropship supports real-time push notifications so that you can receive supplier onboarding alerts or transaction alerts. To enable a notification, enter an email address or a distribution list the corresponding field, and then use the toggle menu to set the notification to **Enabled** or **Not Enabled**. Types of **Onboarding Notifications**: * Supplier Invite Accepted: Notifications when a supplier partner accepts an invitation to join. * Supplier Completed Onboarding: Notifications when a new supplier completes onboarding. * Connection Notifications: Real-time alerts related to your connections and connection notes. Types of **Transaction Notifications**: * Connection Notifications: Notifications related to your connections and connection notes. * Order Received: Notifications when a new order is received. * Order Canceled: Notifications when a cancellation request is received. * Order Ship To Address Updated: Notifications when a “ship to” address change request is received. * Message Received: Notifications when a new message is received on an orders. * Return Received: Notifications when a new RMA is created on an order. * Return Approved/Rejected: Notifications when an RMAs is approved or rejected. In addition, **Digest Notifications** allow you to receive daily, aggregated reports on any late purchase orders. ## Branding Use the Branding menu to upload your business’s logo. It will be displayed to your supplier partners throughout the fabric platform and included on your packing slip. The ideal logo is a 360x120 pixel PNG. Click on the **Upload From Device** button to browse files on your computer to upload. Once you’ve selected a file, click and drag the preview to zoom, pan, and crop the image. When finished, click **Save**. ## Payment Settings (Staff Only) Connect your bank account to your fabric Dropship profile for automatic payments through Plaid. Click on the **Open Plaid** button to begin the setup process within Plaid. ## User Management Invite new users and manage existing ones. ### Creating a new user To add a user to the account, click the **Add New User** button. Enter the new user’s first name, last name, and email address, and fabric will send them an email with instructions to activate their user account. ### Editing a user To edit a user’s account information, find and click their name on the User Management page. The **General Settings** section allows you to edit basic profile information that identifies the user across the fabric platform. Use the Status dropdown menu to change the account between Active, Suspended, and Invited. When finished with your changes, click **Update**. The **Role** section allows you to configure a user’s access level. Click **Add Role** to assign a user a new role. To edit a user’s existing role, click on the role and the Update Role popup will appear. Select a new role for the user in the dropdown menu and click Save Role. **Security Credentials** allows you to give the user a new temporary password. Use the New Password and Confirm Password fields to create their new password. Upon logging in, the user will be required to change their password. **Security Info** shows details from the last time the user signed in to fabric. ## API Clients Manage API keys for your account. ### Adding a new API Client To add a new client, click the **Add API Client** button, give the client a name, and click **Create Client**. After the client is created, you will be able to retrieve their credentials. ### Accessing Client Credentials To access a client’s credentials, find and click their name on the API Clients page. The Client Credentials section shows the name you gave the client, their API URL, their Brand ID, and Client ID, along with the Client Secret. To access the client secret, click on **Get Client Secret**. **However, you can only access the client secret once.** When you’re ready, click on the Show API Secret button. The API secret will be shown, along with a copy button so that you can save it. If you need to access the client secret again, please submit a support ticket. ## Integrations Manage existing integrations associated with your account and add new ones. Dropship supports integrations with BigCommerce, fabric, and Shopify. ### Adding an Integration Basic setup for integration with third-party platforms consists of clicking on the **Add Integration** button at the top-right of the page. In the Add Integration popup that appears, click the **Add** button next to the platform you’d like to integrate with. From there, integrating with each platform is different, but setup includes information like the API Key, API Secret, or Store URL. ### Integration Options Existing integrations appear on the Integrations page below the **Add Integration** button. To manage an existing integration, find and click its corresponding **Options** menu. The options in the window that appears are shortcuts to edit settings within the integration. ## Webhooks (Advanced) Configure webhooks and review webhook history. ## Webhooks Configure webhooks to listen to key events from the fabric platform. To add a new webhook, click the **Add Webhook** button. * Proposal Approved * Item Inventory updated * Offer Created * Order Created * Order Closed * Shipment Closed * Cancel Created * Invoice Created The **Method** dropdown menu allows you to choose between post, put, and patch. In the **URL** field, enter the webhook URL. Use the **Status** dropdown menu to choose whether the webhook is Enabled or Disabled. When finished, click **Add Webhook**. ### Webhook History Review recent webhook results. ## Retailer SKU Settings Configure auto generation of retailer SKUs. You can turn on automatic SKU assignment if you would like Dropship to generate unique SKUs for items as soon as they're approved by a member of the retailer team. The settings configured on this page will be applied to new products only; existing products and items will NOT be modified. After making a selection, click the **Save Preference** button. ### Serial Key If Retailer SKU Assignment is enabled, you can choose a seed value for your SKUs. Fill out the Prefix, Seed Value, and Net Value fields, and then click **Save Preference**. ## Proposal Departments Visit the [Proposals](/v3/guides/dropship-retailers/settings/proposals) page to learn more about Proposal Departments in fabric Dropship. ### Creating a Proposal Department To create a new Proposal Department, click the **Create** button at the top-right of the page and fill out the fields in the **Create Department** popup that appears. * Name: Give the Department a name * Product Import Template: select from fabric’s default templates or a template you created * Supplier Ruleset: Select the attribute validations that suppliers must meet * Retailer Ruleset: Select the attribute validations that you must meet * Sample Template URL (optional) ## Attribute Value Transformers Please see the [Attribute Value Transformers](/v3/guides/dropship-retailers/settings/attribute-value-transformers) page for more information. ## Product Rulesets Please see the [Rulesets](/v3/guides/dropship-retailers/settings/rulesets) page for more information. ## Product & Inventory Templates Please see the [Templates](/v3/guides/dropship-retailers/settings/templates) page for more information. ## Shipping Accounts Create and manage Shipping Accounts ### Adding a Shipping Account To add a new shipping account, click the **Add Shipping Account** button. In the window that appears, give shipping account a nickname, use the **Carrier** dropdown menu to select a shipping provider, and then click **Save & Continue**. ## Terms of Service Review the Terms of Service from fabric Dropship. Click the Commerce Network Merchant Agreement link to open a PDF of the Terms of Service. ## Tracking Number History The Tracking Number History section allows retailers to acknowledge changes in tracking numbers. The Tacking History page shows the Shipment ID and old and new tracking numbers, as well as the date the tracking number was changed. Click the **Shipment ID** to see details about the shipment, including the Packing Slip. Click the **Acknowledge** button at the right to acknowledge the changes to an order’s tracking number. ## Commission Profiles Please see the [Categories & Commission Profiles](/v2/guides/marketplace-retailers/settings/categories---commission-profiles) page for more information. ## Categories Please see the [Categories & Commission Profiles](/v2/guides/marketplace-retailers/settings/categories---commission-profiles) page for more information. # Templates Keep data consistent between internal and external systems ## Overview Templates are a key feature of Dropship that facilitates the data exchange of Dropship with other external systems. To access the templates, login to your dashboard, select **Retailer Settings**, then **Product & Inventory Templates.** These templates are specific to the retailer and come in two varieties, product and inventory. ### Product Templates * Pre-existing list of global attributes that's shared by all items and all businesses. * Retailers can use their own attribute names for the spreadsheets and will be able to see these names on the Dropship platform UI * Templates are mappings between the Dropship attributes and the attributes names defined by the retailer * Import templates are responsible for data ingestion into Dropship * Export templates can be used for extracting data from Dropship. * This allows the retailer and their suppliers to generate spreadsheets that match the template as required by other systems such as Shopify, fabric Product Catalog, and others. ### Retailers and Suppliers can create and clone templates Retailers * Retailers can create templates for importing and exporting products. * Retailers templates are also accessible by all of their suppliers. * Retailers can clone a template by selecting the clone option on the template details screen. Suppliers * Suppliers can create their own templates for importing and export products. * Supplier templates are only accessible by suppliers and can't be seen by their retailers. ## Create a template Click on **Create Template** Enter the **Template Name** Select **Product** as **Data Type** Select the **Direction** of template * Import - Select this if you want to use the template to import products into Dropship * Export - Select this if you want to use the template to export products from Dropship * Sample file * You need to provide a sample file of the template in order to create one * The sample file should only contain the header row of the spreadsheet you want to be using for the said operation * Once you upload the file, you will be asked to map the attributes ### Map Attributes Dropship automatically tries to map user-uploaded attributes with those of fabric Dropship, however, all mapping needs to be checked by the user before creating the template. There are certain attributes that are relevant for most dropship businesses and need to be mapped and added to capture key details related to dropship products. You can accept the values Dropship offers or enter your own for each column. Column Header - the name of the attribute in your file Map To - the name of the corresponding fabric Dropship attribute * You should be able to find a similar attribute in the dropdown * In case you can’t find a match for your attribute in the list provided by fabric, please raise a request to support team Level - this indicates whether this is a parent or individual item attribute * This field is only relevant for an import template * Defines whether the attribute is relevant for the product (the parent item) or its variants * Most attributes are relevant for items * Attributes that leveled to Products will be inherited by all of the variants automatically Priority - dictates the order in which the attributes will appear everywhere in the platform UI and during the exports Required - indicate if this is a mandatory or optional attribute * This field is only relevant for product import templates. * If an attribute is mandatory in the import template, items without that attribute will show an error when imported through into Dropship. Click **Save Template** # Shopify Integration Integrate your fabric Dropship account with your Shopify account ## Adding the Shopify Integration 1. To access your Dropship Integrations, click your account name. 2. In the dropdown that appears, select **Merchant Settings**. The **Merchants Settings** page is displayed. 3. Click **Integrations**. The **Integrations** page is displayed. 4. Click **Add Integrations**. The **Add Integrations** page is displayed with a number of tiles. 5. Click the **Shopify** tile. The **Add Shopify Integration** window is displayed. 6. Do the following: * In the **Shopify Store URL** field, provide your store name. * In the **API Key** field, provide your Shopify API key. 7. Click **Add Integration**. After you enter your Shopify credentials in Dropship, you are directed to Shopify’s website. 8. Click **Install unlisted app** to install the fabric Dropship app in your **Shopify** profile. Once your credentials are entered and the app is installed, you are ready to begin configuring the various settings of your integration. ## Accessing Integration Options 1. To access your Dropship Integrations, click your account name. 2. In the dropdown that appears, select **Merchant Settings**. The **Merchants Settings** page is displayed. 3. Click **Integrations**. The **Integrations** page is displayed. 4. Next to the Shopify logo, click **Options**. The **Options** window is displayed. 5. Edit one of the following: * [Configuration](#configuration): The **Configuration** page allows you to make changes to the basic Shopify setup. * [Webhook History](#webhook-history): The **Webhook History** page shows a list of previous webhook callbacks. * [Utilities](#utilities): The **Utilities** page is used to update and sync order/inventory data. ## Configuration To access the **Configuration** page, follow the steps outlined in [Accessing Integration Options](#accessing-integration-options). ### Orders Configure how your Shopify store syncs orders with fabric. When you enable a Shopify orders webhook, fabric automatically imports customer orders that contain items from your approved suppliers and distribute purchase orders to suppliers via their preferred integration method (Console, EDI, API, etc). When suppliers ship items, fulfillments and tracking numbers will be automatically synced back to the original customer order in your Shopify store account. 1. To choose when fabric imports customer orders, click the **Select Webhook** field. 2. Choose one of the following options: * **Order Paid (Recommended)** * **Order Created** 3. Click **Enable Integration**. To disable the order integration, click **Disable Integration**. ### Fraudulent order protection You can specify and configure whether you want to import orders flagged by Shopify as High or Medium risk. Enable this service if you would like to skip medium-risk orders as recommended by Shopify. High-risk orders are always skipped. The field is **Disabled** by default. 1. To enable this service, select **Enabled** from the fraud field. 2. Click **Save Preference**. ### Location Set which inventory location to use when syncing inventory. When fabric updates inventory in Shopify, we have to assign the inventory to a location that's configured in your Shopify account. fabric recommends setting up a new, dedicated dropship location in order to keep your owned inventory separate from your dropship inventory. For more information on how to do that in Shopify, check the Shopify Help Center. 1. To choose an inventory location, select the **Select Shopify Location** field. 2. Click **Save Location**. ### Inventory fabric allows you to configure how your Shopify store syncs inventory with fabric. With this feature enabled, fabric can automatically sync supplier inventory movements to your Shopify store. 1. To choose how fabric syncs orders, use the **Select Webhook** field. 2. Choose the **Product/Inventory Updated (Recommended)** option. 3. Click **Enable Integration**. To disable inventory integrations, click the red **Disable Integration** button. ## Webhook History The Webhook History page shows a list of previous webhook callbacks. To access the **Webhook History** page, follow the steps outlined in [Accessing Integration Options](#accessing-integration-options). To inspect a webhook, click on the webhook ID. The **Inspect Webhook** window has basic information about the webhook including any messages the webhook returned, and the script used to fetch the webhook. ## Utilities To access the **Utilities** page, follow the steps outlined in [Accessing Integration Options](#accessing-integration-options). ### Retry Order If an order didn't import into fabric, its likely that there was a problem routing the order to the correct supplier. If you have doubled-checked the SKUs and the Shopify mappings, you can attempt to import the order again by supplying the **Shopify Order Number**. 1. To import the order, enter the order number into the **Shopify Order Number** field. 2. Use the fraud checkbox to toggle whether you would like to ignore Shopify’s fraud risk recommendation. 3. Click **Retry Order**. ### Push Inventory This utility pushes inventory for all synced items from a specified connection. Use the dropdown to select the connection and click **Push Inventory** to kickoff the sync process. ### Sync Variants by Vendor This utility attempts to sync variants between Shopify and fabric using a vendor name. It searches your Shopify store for all items created within the date range you specified and then attempts to sync them with variants in fabric. fabric checks if the Shopify variant's SKU field matches the Merchant SKU, the UPC, or the Supplier SKU (in that order). 1. Use the **Select Date Range** field to choose whether you would like to look for products created between two given dates, or run a sync against all products (a process that can be very slow). 2. Click **Run Sync** to begin the process. ### Sync Variant Use this utility to sync variants between Shopify and fabric using a fabric **Item ID**. Enter a value in the **fabric Item ID** field and click **Run Sync**, and fabric will search your Shopify store for any items matching using the Merchant SKU, Vendor SKU, and/or UPC. * **Variant-Level Metafields:** You can publish Metafields and their values at the variant level. * **Additional Metafield Types:** Support for additional Metafield types such as `multi_line_text_field`, `boolean`, `URL`, and `date_time`. ### Data Override on Publish Any publish to Shopify action overrides the data for products and variants in Shopify with the data in Dropship. Empty attributes aren't sent over. # Publishing Products to Shopify ## Publishing Products Outside of a Proposal If a supplier isn't submitting a proposal to you and is importing products through a Shopify import, products can be published directly from the **Products Dashboard**. 1. In the main menu, click **Products**. The products page is displayed. 2. Click **products** located in the \*\*Browse & Review \*\*section. 3. Select the products that you wish to publish. Alternatively, you can check the top box to select all products on the first page. 4. Click **Actions**. The **Publish Products** window is displayed. 5. In the **Platform** field, select Shopify. 6. In the **Template** field, select **Shopify Export Template**. 7. Click **Publish Products**. ## Publishing Products on a Proposal Suppliers that have submitted product proposals can be approved and published in the **Proposal** menu. 1. In the **Proposal Summary** page, click **Approve**. The proposal state is changed to **Ready to Publish**. 2. In the **Assortment Proposal** page, click **Ready to Publish**. A list of approved proposals containing the items ready to be published is displayed. 3. To review a proposal, click the proposal **ID**. The **Proposal Detail** page is displayed. 4. Click **Approve Products**. The **Approve Proposal** window is displayed. 5. In the **Do you also want to publish products on this proposal to an external platform?** field, select **Yes**. 6. In the **Platform** field, select **Shopify**. 7. In the **Template** field, select **Shopify Export Template**. 8. Click **Approve**. ## Checking a Job Status To confirm that products were successfully created in Shopify, you can check the **Jobs Report** in Dropship to review the status of the job itself. 1. Click on your account name in the top right hand corner of the navigation bar. 2. Click **Job Reports**. The **Job Status** window is displayed with the most recent jobs at the top. 3. Click the job **ID** for the **push\_products** job. The job report is displayed. If any errors occurred when attempting to push products to Shopify, we recommend filing a ticket with support. Please provide [fabric support](https://support.fabric.inc/hc/en-us/requests/new) with the following: * The error Job ID * Vendor Name * Product details (new products added X date, or entire catalog) # Supplier Information ## Introduction As a retailer, you can manage your suppliers, see their details, and make changes to their accounts from the **Supplier** page. To access the **Supplier** page, click **Suppliers** from the menu at the top. The **Suppliers** page features a dashboard that allows you to search for existing suppliers, invite new ones, and browse suppliers by status. There’s also a supplier calendar that allows you to look ahead at upcoming supplier events. Use the search bar or the options under **Browse Suppliers** to find existing suppliers. Searching for or browsing suppliers displays a list of suppliers. Clicking on a supplier’s name opens the **Supplier Detail** page. ## Supplier Detail Page The **Supplier Detail** page shows information about the supplier, broken up in to four menus available in the left-hand side of the page: **Summary**, **Locations**, **Attributes**, and **Carriers**. ## Summary Summary is the default view of the **Supplier Detail** menu. At the top of the **Summary** menu is a button that allows you to either **Activate** or **Suspend** the supplier, depending on the supplier’s status. * **Activate** - The Activate button is available for suppliers that have completed the onboarding process. You must click **Activate** in order to complete their onboarding process and enable their supplier account. * **Suspend** - The Suspend button is available for active suppliers that have completed the onboarding process. It allows you to suspend their status as your supplier at any time. The **Summary** menu shows basic information about the supplier. There are five sections: **Connection Detail**, **Payment Settings**, **SLAs**, **Contacts**, and **Settings**. ### Connection Detail The **Connection Detail** section displays the following information: * **Supplier:** The supplier’s name. * **Supplier #:** The supplier’s number. * **Supplier ID:** The supplier’s ID. * **Integration Type:** The integration type the supplier used. * **Catalog Import Method:** The method of catalog sharing you used to for this specific supplier. * **Packing Slip Template:** The type of packing slip the supplier uses to fulfill the retailer’s orders. This is a global setting. See the Settings page to learn more. Click the **Edit** button next to the **Connection Detail** heading to make changes to this section. In the **Update Settings** window that appears, you can make changes to the **Supplier #**, **Transactions Integration** type, and **Catalog Import Method** type. Please note that while it's possible to edit these settings, it's recommended that you contact fabric support prior to making any changes in the **Update Settings** window. ### Payment Settings The **Payment Settings** section displays the following information: * **Cost Tracking:** The cost method the retailer is using for this specific supplier connection. * **Payment Terms:** The payment terms the retailer is using for the supplier connection. Click the **Edit** button next to the **Payment Settings** heading to make changes to this section. In the **Update Connection Fees** window that appears, you can make changes to the **Cost Method**, **Commission Rate**, and **Payment Terms**. Please note that, for auditing purposes, we recommend that you don't make changes to these settings. If changes are necessary, please contact fabric support first. ### SLAs The **SLAs** section shows the number of days the Service-Level Agreement gives the supplier to fulfill an order. Click the **Edit** button next to the SLAs heading to make changes. In the **Update Connection SLAs** window that appears, enter the number of days the supplier has to fulfill an order. When finished, click **Save Settings**. ### Contacts The **Contacts** section displays the following information: * **Primary:** The primary point of contact at the supplier’s business. * **Merchandising:** The merchandising point of contact at the supplier’s business. * **Fulfillment:** The fulfillment point of contact at the supplier’s business. The information is displayed as it was when the account was set up and can't be edited. ### Connection Notes The **Connection notes** section keeps notes from fabric staff or the retailer to store any critical information or decisions while onboarding or during business with the supplier. Click the **Add a Note** button to create a new note. In the **Add Note** window that appears, enter a message, use the **Message Visibility** field to choose who can see the note, and use the **Message Notification** checkbox to choose whether or not creating this new note will send an email to all those selected in the **Message Visibility** field. Click **Save Note**. To edit an existing note, click on the **Options** button to the right of its title and click **Edit**. ### Invoice Adjustments The **Invoice Adjustments** section displays any invoice adjustments you have set up previously. To make changes to these adjustments, click on the **fabric Retailer** menu at the top of the page, click **Retailer Settings**, and then click **Default Onboarding Settings**. ### Locations To visit the **Locations** menu, click **Locations** from the navigation at the left of the **Supplier Detail** page. The Locations menu shows a list of all of the supplier’s warehouse locations. This information is owned by the supplier and can't be changed by the retailer. ### Attributes To visit the **Attributes** menu, click **Attributes** from the navigation at the left of the **Supplier Detail** page. The Attributes menu features a list of all supplier attributes you’ve created previously, and an **Add Attribute** at the top right. Click **Add Attribute** to open the Edit Connection Attribute window. In the **Attribute** dropdown, there are four types of attributes: * **About Supplier:** Used to store key information about the supplier. * **Terms & Conditions:** Specific terms and conditions related to the supplier. * **Return Policy:** Any agreements related to returns. * **Packing Slip Text:** Text that shows below the packing slip that's generated by the supplier when they're fulfilling the order. ### Carriers The **Carriers** menu is where the retailer designates the Shipping Accounts this specific supplier is able to use. To visit the Carriers menu, click **Carriers** from the navigation at the left of the **Supplier Detail** page. Click **Edit Shipping Accounts** to open the **Update Connection Shipping Methods** window. Use the checkboxes next to each shipping method to choose which ones this supplier can use. If you don’t have any shipping accounts to choose from, you haven’t created one yet. To set up a shipping account, click on the **fabric Retailer** button in the menu at the top of the page, click **Retailer Settings**, and then click **Shipping Accounts**. # Supplier Payment Track supplier invoices and payments ## Overview Dropship enables retailers to create payments for the invoices generated by their suppliers. One payment can only contain invoices coming from a single supplier. Retailers will be able to pool multiple invoices together and create a single payment draft and add its details such as check number, check amount, and the date of payment. Please note that this feature only facilitates creating payments against invoices to keep a record of supplier remittances. The feature doesn’t involve movement on money. ## Create Payments To create a payment, select **Reports** in the top header, then **Payments.** Click on **Create Payment** Use the **Select Supplier** dropdown menu to select the recipient for the payment, then click **Continue**. You can select the invoices to be added individually, or use the **Filter** to narrow the list to a specific range. Browse the list, or search for invoices, then select the checkbox next to it. After the selection is complete, click on **Actions** and **Add Invoice.** You can also **Search** for existing payments or see a list of **Draft** and **Completed** payments. ### Adding credits to the payment You can also add any existing credits to a payment. Credits are the amount a supplier has already been compensated with. This amount will be subtracted from the total invoice amount. Once you have your invoices selected a payment in the **Payment Detail** screen, select the **Add Credits** link to the left. Select the **Credits** from the list, then click **Actions**, **Add Credits.** In the confirmation dialog, select **Save**. ### Adding adjustments to the payment To add an adjustment to a payment, select **Adjustments** in the **Payment Detail** screen, select the **Add Adjustment** button. Select the kind of adjustment from the dropdown menu, enter the **Amount** and a **Description**. Click the **Save** button. If you need to modify or delete the adjustment, click the **Edit** link. ### Adding Check Information Once all invoices, credits and adjustments are added, a final amount of payment will be automatically calculated. Go to **Payment Summary Page**, to see the summary and check information. Click on **Edit** and add the check information * Provide Check number * Check Amount * Check Issue Date Once all details are added, click on **Mark as paid** and all invoices will be closed and payment information will be recorded. # Support ## Overview fabric Tech Support is available for all current customers and registered prospects. Before issuing a support request, you can refer to our [Knowledge base](/v3/guides/get-started/copilot-overview) for Copilot questions or the [Developer Portal](/v3/api-reference/getting-started/overview) for info on our APIs. ## Dropship Support for Retailers Under the **Support** dropdown in the menu at the top of the page, select **File a Ticket,** complete the form, and click the **Submit** button. The support dropdown exists on all pages within the platform. It's helpful to submit your request directly from the page where you are experiencing the issue. Note: Please use your company email address for all form completion. ## Definitions Use the following lists to help guide you when filling out the Issue Type and Priority dropdown fields. Ensuring these fields are filled out correctly will help fabric's support team respond to your ticket quickly and accurately. #### Issue Types * Product Training: Demo fabric Dropship or feature training request. * Merchandising: Product Help (Submission of proposals, Cost Updates, Import Request Issues, Broken Images). * Upload Failure: Import issues (Products, Inventory, Shipment, Invoices). * Order Help: Help during closing orders or registering shipments. * Shopify: Shopify Help (Order fulfillment and Inventory Help). * ShipStation: ShipStation Help (Order and Fulfillment Help ). * Account Help: Supplier, Retailer Settings Help, Adding new users. * EDI Integration: EDI Help (Order fulfillment and Inventory Help). * API Integration: API Help (Order fulfillment and Inventory Help). * Reporting: Reporting requests (Invoice export). * Inventory Issues: Inventory Errors (Inventory not updating in fabric system). * Proposal Help: Data Correction (fabric Dropship data team proposal help). #### Priority Types * Urgent: Complete loss of access to fabric Dropship. * High: Major functionality is severely impaired (Timeout issues, Product Update Requests not passing Shopify API). * Normal: Non-critical loss of functionality of the software or application (Shipment not registering, invoice issue, Order management issues). * Low: General usage questions and product help issues (Documentation errors, Adding users, Product Imports, Proposal). ## General Support If you need Tech Support for the fabric Core Platform, [click here](https://support.fabric.inc/hc/en-us/requests/new). # BigCommerce Integration ## Initial Setup To access Integrations, click on your account name in the menu at the top of the page. In the dropdown that appears, select **Retailer Settings**. On the Retailer Settings page, find and click on the **Integrations** tile. On the Integrations page, click on the **Add Integration** button at the top-right of the page. In the Add Integration popup that appears, click the **Add** button in the BigCommerce tile. You will be prompted to fill out your BigCommerce **Store Identifier** and **Store Token**. When finished, click the **Add Integration** button. After successful authorization, BigCommerce will show up on the list of the integrations in the Integrations section of Dropship. ## Configuration On the Integrations page, find and click on the **Options** button to the right of the BigCommerce logo and select **Configuration** from the dropdown. The Configuration page allows you to make changes related to how order and transaction information is shared between Dropship and BigCommerce. ### Configure Webhooks Choose whether or not to enable webhooks for **Orders**, **Inventory**, or **Fulfillment**. * **Orders:** With the orders integration enabled, fabric can automatically send purchase orders from your supplier partners directly to your BigCommerce account. Enabling this integration means that orders from ALL of your supplier connections in fabric will flow through this integration. * **Inventory:** Dropship requires frequent inventory updates to reduce cancellations due to stockouts. The BigCommerce integration can sync inventory with Dropship automatically. Turn this integration off if you would prefer to update inventory manually. * **Fulfillment:** Dropship requires frequent order fulfillment updates to track orders. Our BigCommerce integration can sync order fulfillment with Dropship automatically. Turn this integration off if you would prefer to update order fulfillment manually. **Note:** You can enable and disable these webhooks at any time. ### Webhook History On the Integrations page, find and click on the **Options** button to the right of the BigCommerce logo and select **Webhook History** from the dropdown. The Webhook History page shows details of all the events that have been captured by Dropship from your BigCommerce store: * **ID:** The ID of the webhook as captured by Dropship. * **Topic:** The topic that was captured as part of the webhook. * **Status:** The status of the webhook (success or failure). * **Payload:** The data that was sent in the webhook payload. * **Received:** The timestamp of when the webhook was captured. This is in the user’s local time zone. Use the Filter feature at the top of the table to adjust the webhook information you see. # Adding Fulfillment Locations ## Overview To add a fulfillment location, click on your supplier name in the menu at the top of the page. In the dropdown that appears, select **Supplier Settings**. From Supplier Settings, find and click on **Inventory Settings**. In Inventory Settings, click the **Add Location** button in the Fulfillment Locations section. In the Add Location popup that appears, fill out the location's information and click the **Add Location** button at the bottom to save. You can add as many fulfillment locations as you need. # Bulk Actions for Orders ## Introduction With the Bulk Actions features in Dropship, you can easily perform actions that affect multiple orders. This document is divided into two sections: **Open Orders** and **Canceled Orders and Backorders**. ## Open Orders This section outlines the steps to perform bulk actions on open orders, including printing pick tickets, reprinting shipping labels, reprinting packing slips, and manually accepting orders. To begin, navigate to the **Orders** page in Dropship, and click on one of the tiles under **Open Orders**. On the Orders page, find the orders you would like to print a pick ticket for and click the corresponding checkboxes at the left to select them. After you select the Orders, click the **Actions** dropdown and take the following steps based on the action you need to perform. ### Print Pick Ticket The pick ticket differs from a packing slip. A packing slip is required for all Retailer orders and contains all of your required information. A pick ticket provides a “pick list” of the order line information with your supplier SKU information and total ordered quantity. This can be helpful if your Retailer uses a retailer SKU on the packing slip instead of your internal supplier SKU. Select **Print Pick Tickets** from the Actions dropdown. In the popup that appears, you will be able to download and/or print your pick tickets. ### Reprint Shipping Labels If shipping labels are being generated directly in fabric Dropship, you can reprint them at any time. Select **Print Shipping Labels** from the Actions dropdown. In the popup that appears, you will be able to download and/or print your shipping labels. ### Reprint Packing Slips To reprint a packing slip for a specific order or batch of orders, select **Print Packing Slips** from the Actions dropdown. In the popup that appears, you will be able to download and/or print packing slips. ### Manually Accepting (Acknowledging) Orders To accept (also called acknowledge) an order or a set of orders, select **Accept Orders** from the Actions dropdown. In the popup that appears, you will see an overview of the orders you selected. Click **Accept All Orders** to confirm. Once the orders have been accepted, the status will change from **Ready** to **OK**. ## Canceled Orders and Backorders This section outlines the steps to perform bulk actions on orders that require attention, including canceled and backordered orders. ### Manually Accepting (Acknowledging) Canceled Orders When orders are canceled by a Supplier, Retailers have the ability to acknowledge the cancellation. If you don't have an automated integration with the fabric Dropship Platform, you can acknowledge canceled orders manually within the platform. Navigate to the **Orders** page and click **New Cancels** in the **Requires Action** section of the **Orders** dashboard. In the list of canceled orders, **click the checkbox** beside the canceled order you would like to acknowledge. Click the **Actions** dropdown at the top of the list and select **Acknowledge Cancels**. Click the **Acknowledge All Cancels** in the popup window to complete the process. ### Managing orders with backordered Items When items in an order are marked as backordered by a Supplier, Retailers have the ability to acknowledge the backorder. If you don't have an automated integration with the fabric Dropship Platform, you can acknowledge orders with backordered items directly within the platform. Navigate to the **Orders** page and click **New Backorders** in the **Requires Action** section of the **Orders** dashboard. In the list of backorders, click the **blue PO# link** to open the order detail page. On the order detail page you can view the date the supplier expects the item to be back in stock in the **Key Dates** section. You can then acknowledge the backorder by clicking the **Acknowledge Backorder** button at the top of the page. # Fulfillment Process and ship orders from all connected retail partners. ## Overview To navigate to the **Orders** dashboard, login to the Dropship Platform and click **Orders** on the top menu bar. The three main sections within the **Orders** Dashboard are: Open Orders, Reports, and Require Attention. **Open Orders** - contains four pre-filtered buckets of dropship orders * Open Orders - a list of all open orders * Current Orders - a list of open orders that are within your fulfillment SLA * Past Fulfillment SLA - a list of open orders that are past your fulfillment SLA * Late Invoices - a list of open orders that have shipments but remain open due to missing invoices. **Reports** - contains pre-filtered reports for various order details * Orders with New Messages - Browse the latest order notes from your partners * Shipments & Tracking - Review shipments & tracking numbers * Returns - Track returns and RMAs * Invoices - Review all invoices from suppliers **Require Attention** - contains two pre-filtered buckets to manage cancellations and backorders * New Cancels - a list of cancellations that require acknowledgement by you, the Supplier * New Returns - a list of orders that have a return associated with them. Clicking on any of the pre-filtered buckets within each of the main sections of the **Orders** dashboard will provide a list view of all orders that fit within the pre-filtered criteria. All data from any page containing a list view of orders can be exported by clicking on the **Export** link on the upper right side of each page. If any additional filters are applied to the page, the export will contain all orders that fit the filter criteria. ### Manage Orders in Bulk 1. To access the bulk operations page, click **Manage Orders in Bulk**. The Bulk Operation Details Page is displayed with available workflow actions. 2. Click one of the following fields: * **Cancel Entire Orders by PO Number** This operation cancels all orders of the given Purchase Order Numbers. To use this operation, the following mandatory fields are required: **Purchase Order Number**, **Retailer ID**, and **Cancellation Reason Code**. * **Cancel specific order lines by SKU** This operation cancels all order lines when given the purchase order of a given SKU. For example, if orders include an item that's now discontinued or is OOS, you can cancel just those items. To use this operation, the following mandatory fields are required: \*\* PO Number\*\*, *SKU* and **cancellation reason code**. If **Quantities** isn't provided, the default action cancels all quantities in that order. * **Cancel all order lines of specific SKU** This operation cancels all order lines of the given SKU. For example: A vendor can upload a template with the **SKU** affected and the **Cancellation Reason**. Then all orders containing the affected SKUs have those SKUs cancelled instead of going into each order individually. To use this operation, the following mandatory fields are required: **SKU** and **Cancellation Reason Code**. Only the specific SKUs are canceled when an order contains multiple order lines with different SKUs. ### Video: Dropship manual fulfillment