# Bonton Account Integration

## Overview

[Bonton](https://bonton.com/) is an online retailer offering a wide range of items, including women's, men's, and kids’ apparel & accessories, furniture, jewelry, and more. Integrating Bonton into your Sellercloud account allows you to seamlessly import orders, upload tracking information, and ensure your listings are always up-to-date with the latest inventory data. This integration works through API, transmitting information between the two services via plugins and [Scheduled Tasks](https://descartessystems.aha.io/pages/7630838715868958891). The communication is facilitated through [DSCO](https://www.dsco.io/), a third-party platform. If necessary, open a ticket with [Sellercloud Support](https://descartessystems.aha.io/pages/7630831494839563427) to request additional customizations or other plugins for this integration. Note that these customizations are billable, and you will be provided a quote.

DSCO may require testing before you can go into production. To have a dedicated representative complete the testing for your account and ensure that the setup is configured correctly, opt in for [Premium Support](/content/premium-support/index.html).

## Prerequisites

Before you can integrate Bonton into Sellercloud, complete the following requirements.

We recommend creating a [Company](https://descartessystems.aha.io/pages/7630838368529930257) where you will set up the [Custom Company Settings](https://descartessystems.aha.io/pages/7630848929259288263) and [Scheduled Tasks](https://descartessystems.aha.io/pages/7630838715868958891) for this integration.

Sellercloud imports DSCO orders as Website. Due to this, we generally do not recommend more than one plugin integration per company, as it may be difficult to differentiate orders coming in from multiple sales channels.

Alternatively, you can use the [Plugin Wizard](https://descartessystems.aha.io/pages/7630837906940475639) to simplify the setup of [Channel Plugin Integrations through Scheduled Tasks](https://descartessystems.aha.io/pages/7630858469048870054). The wizard guides you through the required steps and helps you create:

- A dedicated [Company](https://descartessystems.aha.io/pages/7630838368529930257).
- [Custom Company Settings](https://descartessystems.aha.io/pages/7630848929259288263).
- [Saved Views](https://descartessystems.aha.io/pages/7630838405969463824) to target specific products and orders.
- [Scheduled Tasks](https://descartessystems.aha.io/pages/7630838715868958891) to run the plugins automatically.

Once configured, you can manage all integrations created through the wizard on the [Manage Plugin Channels](https://descartessystems.aha.io/pages/7630838046534405796) page. The workflow outlined below describes the manual configuration process, which does **not** create a plugin channel on the **Manage Plugin Channels** page.

### DSCO Support

Contact [DSCO Support](https://support.dsco.io/hc/en-us) to request your:

- **Supplier ID**
- **API Token**
- **Client ID**
- **Client Secret**
- **Warehouse Supplier Code**

Send an email to support@dsco.io titled 'Create Client Credentials.' In the email, include the name and ID of the DSCO account and the user name with which the client credentials will be associated. When ready, DSCO’s support team will send the client credentials to you. Be sure to store them securely. To get a **Warehouse Supplier code**, you must set up a warehouse in DSCO.

1. Contact the DSCO Integrations team and log into your DSCO account.
2. Click **CONNECTING: Step 1** and continue through the onboarding and testing processes. You choose the **Warehouse Supplier Code** during the onboarding process. You can create it on your [Warehouse Manager](https://app.dsco.io/account/warehouse-manager) page in the DSCO portal.

You will use these credentials and Warehouse Codes to populate the Custom Company Settings outlined below.

### Sellercloud Support

Open a ticket with [Sellercloud Support](https://descartessystems.aha.io/pages/7630831494839563427) and request that the following plugins be installed on your server:

- **DSCO API v3 Order Import**
- **DSCO API v3 Tracking Export**
- **DSCO API v3 Invoice Export**
- **DSCO API v3 Inventory Export**

### Company Settings

Create the following [Custom Company Settings](https://descartessystems.aha.io/pages/7630848929259288263) on the company created for the integration.

The [Client Setting](https://descartessystems.aha.io/pages/7630835167106228692) **Enable Custom Company Settings** must be enabled for this workflow. To enable the setting, navigate to **Settings** > **Client Settings** > **General Client Settings** > **UI.**

**Custom Company Settings for old accounts without Stream API**

- **DSCO_Token**- Enter the Token from DSCO support here.
- **DSCO_SupplierId**- Your Supplier ID, also provided by DSCO.

**Custom Company Settings for new accounts with Stream API**

- **DSCO_ClientID**- From DSCO support.
- **DSCO_ClientSecret**- From DSCO support.
- **DSCO_StreamID** - Leave empty. It populates automatically for the Stream API.
- **DSCO_StreamPosition** - Leave empty. It populates automatically for the Stream API.

**Optional Custom Company Settings**

- **Consider replenishable products** - True or False. Defaults to False. When True, works with **Replenishable** qty.
- **Replenishable qty** - Quantity that will be exported if **Available Quantity** is 0 or less. Only works if the **Consider replenishable products** setting is True.
- **DSCOUseExpectedDeliveryDate** - True or False, defaults to False. When True, it exports the custom column **DSCOEXPECTEDDELIVERYDATE**. If missing or disabled, the exported date will be a week ahead.
- **DSCO_WarehouseCode** - The DSCO warehouse code used by default when the **DSCO_WarehouseCodes** setting has no value.
- **DSCO_WarehouseCodes** - List of Sellercloud WarehouseIDs and DSCO warehouse codes (connected by a hyphen), separated by a comma. Example: **Sellercloud warehouseID-DSCOWarehouseCode**, 123-Lakewood, 245-BostonWH.
- **DSCO_DontSendItemID** - True or False, defaults to False. When set to true, inventory updates will not include ItemID, and DSCO will match the SKU instead.
- **DSCOSendCost** - True or False, defaults to False. When True, sends custom column **DSCOCost**.
- **DSCO_SendDiscontinued** - True or False, defaults to False. When True, it sends the custom column **DSCOIsDiscontinued**. Products must be discontinued in Sellercloud
- **DSCO_SendUPC** - True or False, defaults to False. When True, sends UPC with the inventory export.
- **DSCO_ExportSsccCode**- True or False. If True, exports the **SSCC code** with the tracking.
- **DSCO_StandardWarehouseCode**- DSCO’s standard Warehouse code exported by the tracking export plugin.
- **DSCO_IncludeWarehouseCodeInTracking**- True or False, if True, sends the DSCO standard warehouse code from the custom setting **DSCO_StandardWarehouseCode.**
- **DSCO_SendOnePackagePerKitParent** - True or False. If True, each kit parent will be in a separate package.
- **DSCO_SendKitParentOnly** - True or False. If True, only sends the parent SKU with the tracking without the components.
- **DSCO_SendShipFromInfo** - True or False. If True, sends the orders’ **Ship From** information with the tracking export.
- **DSCO_SendPackageWeight** - True or False. If True, sends the package weights with the tracking export.
- **DSCO_SendInvoiceDate** - True or False, set to True to send Invoice Date.
- **DSCO_SendCurrencyCode** - True or False, set to True to send the exported order's Currency Code.
- **DSCO_NetTermDays** - Numeric only, sends NetTermDays with the invoice export.
- **DSCO_NetTermType** - Exported when DSCO_NetTermDays exists and isn’t 0.
- **DSCO_SendShipToInfo** - True or False. If True, sends the orders’ **Ship To** information with the invoice export.
- **DSCO_SendSubtotal** - True or False. If True, enables exporting order line subtotal with the invoice export.
- **DSCO_SendCreditPerQty** - Multiplied by the total quantity and added to the total of the order plus an entry in the credits array in the request.
- **DSCO_IntegrationName** - Can be set as a Sellercloud channel name. The order source will appear as the set channel name.
- **DSCO_MarkOrdersUnpaid** - True or False. If True, sets the order as **Unpaid**.
- **DSCO_LockShippingMethod** - True or False. If True, does not allow shipping methods on orders to be changed.
- **DSCO_IncludeWarehouseCodesInOrderImport** - True or False, If True, sets the Ship From warehouse with the order import and checks the setting **DSCO_WarehouseCodes** for the codes.
- **DSCO_ShippingRequiresThirdPartyBilling** - If True, the orders’ **ShippingRequiresThirdParty** will be set to True.
- **DSCO_AllowShippingUSPS** - True or False. If True, and **DSCO_ShippingRequiresThirdPartyBilling** is True, and the order's carrier is USPS, we will NOT set **ShippingRequiresThirdParty** to True.
- **DSCO_AllowShippingUPS** - True or False. If True, and **DSCO_ShippingRequiresThirdPartyBilling** is True, and the order's carrier is UPS, we will NOT set **ShippingRequiresThirdParty** to True.
- **DSCO_CreatePayments**- Type Boolean, defaults to True if missing. Determines if an order payment will be imported or not based on the setting value for the order channel. Defaults to Website, but can be changed by using the company setting **DSCO_IntegrationName**.
- **DSCO_CoopFeePercentage** - Defaults to 0. CoOp Fee percentage to be applied when creating order items. 2.5 would denote 2.5% to be added to each order item's CoOp fee.

### Custom Order Columns

Create the following [Custom Order Columns](https://descartessystems.aha.io/pages/7630852553944422166):

- **DSCOInvoiceId**- The invoice number.
- **DSCOConsumerOrderNumber** - The imported consumer order number from DSCO is saved here.
- **DSCO_Coupons**- Imports the coupons here.
- **DSCO_Email**- Imports the shipping address email.
- **DSCO_Channel**- Saves the name of the order’s channel. Type string.

### Custom Product Columns

Create the following [Custom Product Columns](https://descartessystems.aha.io/pages/7630852553944422166):

- **DSCOItemID** - Conditionally required **String**. This should match the SKU of your listing. You can find it on the **Products** page in DSCO. If left empty for a product, that SKU will be skipped in the inventory update. However, if the custom setting **DSCO_DontSendItemID** is True, we will send the Sellercloud SKU instead.
- **DSCOSafetyQty**- Sets a [Safety Quantity](https://descartessystems.aha.io/pages/7630840614112309363) on the product level.
- **DSCOIsDiscontinued**- True or False, defaults to False. When set to True, exports the item with a **Discontinued** status.
- **DSCO_MerchantSKU** - Product identifiers used when sending a request to DSCO. If not present, the integration will use ProductIDs. Type string.

**Optional Custom Product Columns**

- **Bonton_Enabled** – Optional, type **Boolean**. Used to enable only specific products for Bonton. Set to **True** for any products you want to send with the Inventory Export plugin.
- **DSCOEXPECTEDDELIVERYDATE** - Used when the company setting **DSCOUseExpectedDeliveryDate** is enabled. Exports a date that's a week ahead when missing or disabled. Sellercloud will follow the entered date. If no date is entered, 7 days from the current date will be sent.
- **DSCOCost** - Sent when the company setting **DSCOSendCost** is set to True.
- **DSCOPartnerSKU** - If this column exists and is populated, it is sent as a partner SKU.

## Order Import

The Order Import plugin:

- Gets all new orders from DSCO and imports them to Sellercloud using API.
- Imports orders as paid for the user **DSCO_<CompanyID>@sellercloud.com**.
- Acknowledges each order after it is created, so it will be moved to **Shipment Pending** in DSCO and will no longer be included in the new orders download.
- Checks for products by matching:
  - DSCO **SKU** to Sellercloud **UPC**
  - DSCO **SKU** to Sellercloud **Product ID**
  - DSCO **UPC** to Sellercloud **UPC**
  - DSCO **Item ID** to Sellercloud custom column **DSCOItemID**
  - DSCO **Partner SKU** to Sellercloud **Product ID**

As of version 1.0.1.5, the plugin supports both the **Stream API** and the old method to get orders. The only differences are a few custom settings and credentials. The old method will continue to be used by default, where only **DSCO_Token** is required, as long as the **Stream API** settings don't exist or aren't populated. If you need to reset the date, use the following **DSCO_StreamPosition**:

- format: z/yyyy/mm/dd/HH/mm/000
- example: z/2022/09/26/20/19/000

### Automate Order Import

To create a [Scheduled Task](https://descartessystems.aha.io/pages/7630838715868958891) that regularly imports orders into Sellercloud:

01. Navigate to **Settings** > **Scheduled Tasks** > **Manage Scheduled Tasks**.
02. Click the green + icon: **Create New Scheduled Task.**
03. Complete as follows:
    1. Click **Task Type** and select **Import Orders**.
    2. Set the **Task Name**.
    3. Select the **Company**.
    4. Select the **Start Time**.
04. Click **Create**, and the new scheduled task will load on your screen.
05. Click the **Edit** button in the top right corner.
06. In the **Details** panel:
    1. Under **Create Orders for Company**, select your DSCO company.
    2. Click the **Plugin** menu and select **DSCO API v3 Order Import**.
07. In the **Import Options** panel, set **Import From** to **None**.
08. In the **Frequency panel**, specify the task frequency. For optimal performance, select a range between thirty minutes and one hour.
09. In the **General panel**, click the **Enable** toggle button.
10. Click **Save**.

## Tracking Export

This plugin sends tracking information to DSCO via API. Before you move on, create a [Saved Search](https://descartessystems.aha.io/pages/7630838405969463824) for orders filtered by:

- **Company** – The company you created for the integration
- **Order Status** - InProcess or Completed
- **Payment Status** - Charged
- **Shipping Status** - Fully Shipped
- **Tracking Uploaded** - No

### Automate Tracking Export

To create a [Scheduled Task](https://descartessystems.aha.io/pages/7630838715868958891) that regularly exports order tracking from Sellercloud:

01. Navigate to **Settings** > **Scheduled Tasks** > **Manage Scheduled Tasks**.
02. Click the green + icon: **Create New Scheduled Task.**
03. Complete as follows:
    1. Click **Task Type** and select **Export Orders**.
    2. Set the **Task Name**.
    3. Select the **Company**.
    4. Select the **Start Time**.
04. Click **Create**, and the new scheduled task will load on your screen.
05. Click the **Edit** button in the top right corner.
06. In the **Details panel**:
    1. Click the **User ID** menu and select your ID.
    2. Click the **Saved Search** menu and select the saved search you created earlier.
    3. Click the **Export Via** menu and select **DSCO API v3 Tracking Order Export**.
    4. Check **This Is Tracking Export**.
07. In the **Export Options** panel, set **Export To** to **None**.
08. In the **Frequency panel**, specify the task frequency. For optimal performance, select a range between thirty minutes and one hour.
09. In the **General panel**, click the **Enable** toggle button.
10. Click **Save**.

## Invoice Export

This plugin creates an invoice on DSCO via API. It also saves the InvoiceID to a custom column.

The plugin can also process [Split Orders.](https://descartessystems.aha.io/pages/7630852324897495961) Make sure the Saved Search only includes the parent order and that all the child orders are Fully Shipped. Contact [Sellercloud Support](https://descartessystems.aha.io/pages/7630831494839563427) for assistance.

Before you move on, create a [Saved Search](https://descartessystems.aha.io/pages/7630838405969463824) for orders filtered by:

- **Company** - The company you created for the integration
- **Shipping Status** - Fully Shipped
- **Order Status** - InProcess Or Completed
- **Invoice Uploaded** - No
- **Tracking Uploaded** - Yes

### Automate Invoice Export

To create a [Scheduled Task](https://descartessystems.aha.io/pages/7630838715868958891) that regularly exports invoices from Sellercloud:

## Inventory Export

This plugin exports inventory to DSCO using API. However, note:

- Products must exist in DSCO in order to be exported.
- You can use the custom product column **DSCOSafetyQty** to set a [Safety Quantity](https://descartessystems.aha.io/pages/7630840614112309363) on the product level.
- **DSCOItemID** is conditionally required - if empty for an SKU, the SKU will be skipped in the update unless the custom setting **DSCO_DontSendItemID** is True. The **DSCOItemID** should match the SKU of your listing found on the DSCO **Products** page.

Prices are not included in inventory export updates.

Before you move on, create a [Saved Search](https://descartessystems.aha.io/pages/7630838405969463824) for products filtered by:

- **Company** – Select the company with products you want to sell on Bonton. Without this filter, you will send products from all companies.
- **Bonton_Enabled**– **True**. Only add this filter if you choose to enable only specific products for Bonton.

Also, make sure to enable your products for Bonton by setting their **Bonton_Enabled** Custom Column for Products to **True**:

- For one product at a time: go to the [Product Details Page](https://descartessystems.aha.io/pages/7630846719601169819) > click **Toolbox** and select **Custom Columns** > click **Edit**, update the **Bonton_Enabled** column, and **Save**.
- For multiple products in bulk: follow the steps to [Bulk Update Products](https://descartessystems.aha.io/pages/7630834039903362072) and use the **Bonton_Enabled** column – set it to **True** for all products you want to enable.
