Marketplace API (1.0.0)

Download OpenAPI specification:Download

fabric Marketplace is a simple, intuitive, dropship platform built for business users. It offers easy integration with Shopify, BigCommerce, or existing stacks; supports retailer onboarding; and offers dedicated vendor onboarding support.

With fabric Marketplace, you can connect with new vendors with no inventory risk; offer extended aisles of products; expand assortments with existing vendors; test new categories, SKUs, and price points; explore brand partnerships; and increase marketing and search opportunities. Using dropshipping effectivity can fuel data-driven merchandising decisions, maximizing margin and customer experience.

Marketplace dropship assortment strategies enable you to:
1) Cross-sell and upsell to raise your average order value
2) Offer substitute products to supplement out-of-stock inventory
3) Capitalize on fast-moving market trends with readily sourceable products
4) Test and validate new products, brands, and categories before manufacturing or placing POs
5) Add depth to your existing product assortment with variations and endless aisles
6) Offer seasonal products without the risking of over-buying or unhealthy inventory.

Inventory

Get a list of variant inventory positions

Get variants and their inventory details, including total inventory and inventory based on location.

To get items with inventory updated since a Unix epoch Time, pass the updated_at_{operator} as a query paramater, where {operator} is
lt (less than)
lte (less than or equal)
gt (greater than)
gte (greater than or equal).

SecurityBearer
Request
path Parameters
retailer_pk
required
number

Retailer ID

Example: 100024
query Parameters
identifier
string

Unique identifier assigned to the variant by the brand

Example: identifier=ABC123
brand_id
Array of integers

Brand ID. Multiple values may be separated by commas

Example: brand_id=2020&brand_id=1455
connection_id
number

Connection ID. Multiple values may be separated by comma.

Example: connection_id=1000
parent_identifier
Array of strings

Parent product identifier. Multiple values may be separated by commas

Example: parent_identifier=123A1&parent_identifier=528A5
retailer_sku
string

Retailer SKU

Example: retailer_sku=SKU123
in_stock
integer

1: Variant is in stock
0: Variant is out of stock

Example: in_stock=1
ignore_deleted
integer

1: Ignore deleted variant
0: Include deleted variant

Example: ignore_deleted=1
is_sellable
integer

1: Variant is sellable
0: Variant is not sellable

Example: is_sellable=1
is_discontinued
integer

1: Variant is discontinued
0: Variant is active

no_ead
integer

1: Variant has no estimated availability date
0: Variant has estimated delivery date

Example: no_ead=1
no_stock_no_ead
number

1: Variant does not have an estimated availability date.
0: Variant has an estimated availability

Example: no_stock_no_ead=1
inventory_updated_at_lt
number

Inventory update was less than specified Time (Unix epoch format)

Example: inventory_updated_at_lt=1165550936
inventory_updated_at_lte
number

Inventory update was less than or equal to specified Time (Unix epoch format) Time

Example: inventory_updated_at_lte=1265550936
inventory_updated_at_gt
number

Inventory update was greater than specified Time (Unix epoch format)

Example: inventory_updated_at_gt=1365550936
inventory_updated_at_gte
number

Inventory update was greater than or equal to a specified Time (Unix epoch format)

Example: inventory_updated_at_gte=1165550936
order_by
string

Sorting criteria

Example: order_by=Ascending
page
integer

Page number within the paginated result set

Example: page=2
limit
integer

Number of records per page

Example: limit=10
Responses
200

OK

get/v1/retailers/{retailer_pk}/inventory/
Response samples
{
  • "count": 805,
  • "results": [
    ]
}

Get inventory of a single variant

Gets the inventory position for a single variant.

SecurityBearer
Request
path Parameters
retailer_pk
required
number

Retailer ID

Example: 500
id
required
number

Inventory ID

Example: 100024
Responses
200

Ok

get/v1/retailers/{retailer_pk}/inventory/{id}/
Response samples
{}

Connections

Get vendor connections

Gets a list of vendor connections.

SecurityBearer
Request
path Parameters
retailer_pk
required
number

Retailer ID

Example: 5001
query Parameters
brand_id
Array of numbers

Brand (vendor) IDs. Multiple comma separated values may be added

Example: brand_id=500&brand_id=550
retailer_id
Array of numbers

Retailer IDs. Multiple values may be separated by commas. Retailer ID

Example: retailer_id=2050&retailer_id=1001
vertical_id
Array of numbers

ID for verticals such as shoes, clothing, furniture. Multiple values may be added, separated by commas

Example: vertical_id=2054&vertical_id=5646
integration_type
Array of strings

Integration types such as EDI, API, WooCommerce, etc. Multiple values may be separated by commas

Example: integration_type=EDI&integration_type=API
brand_has_adjustments
number

1: Brand (vendor) has monetary adjustments
0: Brand doesn't have adjustments

Example: brand_has_adjustments=1
brand_has_allowances
number

1: brand has allowances such as discounts
0: brand does not have allowances

Example: brand_has_allowances=1
brand_has_charges
number

1: brand has charges such as shipping and handling
0: brand does not have charges

Example: brand_has_charges=1
brand_inventory_policy
string

Managed: brand wants to manage inventory; Unmanaged: brand does not want to manage inventory

retailer_identifier
Array of numbers

Retailer IDs. Multiple values may be separated by commas.

Example: retailer_identifier=1023&retailer_identifier=2044
options_enabled
Array of strings

Connection options enabled. Multiple values may be separated by commas.

Example: options_enabled=Auto-close invoice&options_enabled=Manual invoice
options_disabled
string

Connection options disabled

status
Array of strings

Connection status. Multiple values may be separated by commas.

Example: status=Active&status=Pending
onboarding_target_date_lt
number

Onboarding target date is less than specified Time (Unix epoch format)

Example: onboarding_target_date_lt=1165550936
onboarding_target_date_lte
number

Onboarding target date is less than or equal to specified Time (Unix epoch format)

Example: onboarding_target_date_lte=1265550936
onboarding_target_date_gt
number

Onboarding target date is greater than specified Time (Unix epoch format)

Example: onboarding_target_date_gt=1365550936
onboarding_target_date_gte
number

Onboarding target date is greater than or equal to specified Time (Unix epoch format)

Example: onboarding_target_date_gte=1465550936
order_by
string

Sorting criteria

Example: order_by=Ascending
page
integer

Page number within the paginated result set

Example: page=2
limit
integer

Number of records per page

Example: limit=10
Responses
200

OK

get/v1/retailers/{retailer_pk}/connections/
Response samples
application/json
{}

Get connections of a single vendor

Gets the connection details for a specified vendor

SecurityBearer
Request
path Parameters
id
required
integer

Connection ID

Example: 11001
retailer_pk
required
number

Retailer ID

Example: 1000
Responses
200

OK

get/v1/retailers/{retailer_pk}/connections/{id}/
Response samples
application/json
{
  • "id": 1050,
  • "brand": {
    },
  • "level": "basic",
  • "status": "active",
  • "suspended_at": null,
  • "created_at": "2021-09-10T15:24:56Z",
  • "updated_at": "2022-11-10T15:24:56Z",
  • "shipping_accounts": [
    ],
  • "connection_contacts": [],
  • "connection_credentials": [
    ],
  • "connection_fees": {
    },
  • "connection_slas": {
    },
  • "connection_adjustments": [
    ],
  • "options": {
    },
  • "approved_items_count": 2,
  • "orders_last_7_days_count": 8,
  • "proposals_received_last_7_days_count": 8,
  • "metadata": "string",
  • "attachments": [],
  • "memos": [],
  • "referral": {
    },
  • "packing_slip_template": "string",
  • "integration_type": "API",
  • "retailer_identifier": "Retailer 877",
  • "onboarding_status": "Completed",
  • "onboarding_target_date": "2021-09-10T15:24:56Z",
  • "onboarded_at": "2021-09-10T15:24:56Z"
}

Orders

Create a new order (for a single vendor)

Accepts orders from retailers for a single vendor. When an order is created by a retailer, the order is immediately distributed to the vendor however the vendor is connected to fabric (example: EDI, API, or portal)

SecurityBearer
Request
path Parameters
retailer_pk
required
number
Example: 2050
Request Body schema: application/json
customer_order_number
string or null <= 64 characters

Customer order number

purchase_order_number
required
string non-empty

Purchase order number

retailer_order_number
string non-empty

Retailer order number

brand_identifier
string or null <= 64 characters

Vendor identifier

object (RetailerShort)
object (BrandShort)
connection_id
integer

A numeric connection ID

object (ShippingMethod)
requested_shipping_method_id
integer

ID of the requested shipping method

object (GenericShippingMethod)
object (Address)
object (Address)
object (Address)
object (Address)
object (Address)
allow_shipping_label_generation
boolean

true: Automatically generates shipping labels based on the carrier
false: Does not support generation of shipping labels

shipping_charged
string <decimal>

Shipped charged

is_gift
boolean

true: Order is a gift
false: Order is not a gift

gift_fee
string or null <decimal>

Gift fee (if applicable)

is_replacement
boolean

true: order is a replacement
false: order is not a replacement

object (Currency)
ordered_at
required
string <date-time>

Time of order finalization (UTC format)

acknowledged_at
string or null <date-time>

Time of order acknowledgement (UTC format)

fulfilled_at
string or null <date-time>

Time of order fulfillment (UTC format)

pickup_on
string or null <date>

Time of when order was picked up (UTC format)

on_hold_at
string or null <date-time>

Time of when order got placed on hold (UTC format)

on_hold_until
string or null <date>

Date till when the order will be on hold

backordered_until
string or null <date-time>

Time till when product or order is backordered (UTC format)

backorder_acknowledged_at
string or null <date-time>

Time of backorder acknowledgement (UTC format)

canceled_at
string or null <date-time>

Time of order cancellation (UTC format)

fill_time
string or null <decimal>

Fill time

signature
string or null

Represents whether signature is required

Enum: "required" "not_required" "adult"
object (ConnectionShippingProviderAccount)
is_priority
boolean

true: Priority order
false: Not a priority order

object (UserShort)
Responses
201

Created

post/v1/retailers/{retailer_pk}/orders/
Request samples
application/json
{
  • "customer_order_number": "100000",
  • "purchase_order_number": "1234-100000",
  • "retailer_order_number": "1225466845",
  • "brand_identifier": "423432322",
  • "retailer": {
    },
  • "brand": {
    },
  • "connection_id": 10,
  • "shipping_method": {
    },
  • "requested_shipping_method_id": 768,
  • "requested_shipping_method": {
    },
  • "bill_to": {
    },
  • "sold_to": {
    },
  • "ship_to": {
    },
  • "ship_from": {
    },
  • "return_to": {
    },
  • "allow_shipping_label_generation": true,
  • "shipping_charged": "2.99",
  • "is_gift": false,
  • "gift_fee": null,
  • "is_replacement": false,
  • "currency": {
    },
  • "ordered_at": "2017-08-01T12:00:00Z",
  • "acknowledged_at": "2022-08-01T12:00:00Z",
  • "fulfilled_at": null,
  • "pickup_on": null,
  • "on_hold_at": null,
  • "on_hold_until": null,
  • "backordered_until": null,
  • "backorder_acknowledged_at": null,
  • "canceled_at": null,
  • "fill_time": null,
  • "signature": null,
  • "connection_shipping_provider_account": {
    },
  • "is_priority": false,
  • "priority_user": {
    }
}
Response samples
{
  • "id": 1016,
  • "customer_order_number": "100000",
  • "purchase_order_number": "1234-100000",
  • "retailer_order_number": "1225466845",
  • "brand_identifier": "423432322",
  • "retailer": {},
  • "brand": {},
  • "brands": [],
  • "connection_id": 10,
  • "shipping_method": {
    },
  • "requested_shipping_method_id": 768,
  • "requested_shipping_method": {
    },
  • "shipment_count": 1,
  • "invoice_count": 1,
  • "bill_to": {
    },
  • "sold_to": {
    },
  • "ship_to": {
    },
  • "ship_from": {
    },
  • "return_to": {
    },
  • "allow_shipping_label_generation": true,
  • "subtotal_charged": "25.96",
  • "shipping_charged": "2.99",
  • "is_gift": false,
  • "gift_fee": null,
  • "is_replacement": false,
  • "status": "open",
  • "currency": {
    },
  • "is_acknowledged": false,
  • "ordered_at": "2017-08-01T12:00:00Z",
  • "acknowledged_at": "2022-08-01T12:00:00Z",
  • "fulfill_by": "2022-12-19T03:59:59Z",
  • "fulfilled_at": null,
  • "closed_at": null,
  • "received_at": null,
  • "is_on_hold": false,
  • "pickup_on": null,
  • "on_hold_at": null,
  • "on_hold_until": null,
  • "backordered_until": null,
  • "backorder_acknowledged_at": null,
  • "canceled_at": null,
  • "updated_at": "2022-08-03T17:45:11Z",
  • "order_lines": [
    ],
  • "cancels": [
    ],
  • "shipments": [
    ],
  • "attachments": [],
  • "memos": [],
  • "memos_count": 1,
  • "unread_memos_count": 0,
  • "tags": [],
  • "gift_message": "Gift",
  • "fill_time": null,
  • "invoices": [
    ],
  • "signature": null,
  • "rmas": [
    ],
  • "credits": [
    ],
  • "order_batches": [
    ],
  • "metadata": [
    ],
  • "connection_shipping_provider_account": {