Skip to content

Get fulfillment orders

GET
/merchants/{merchantCode}/fulfillmentOrders
curl --request GET \
--url 'https://order.shopgate.io/v1/merchants/example/fulfillmentOrders?includeInternalIds=false&sort=&limit=100&offset=0&getOriginalImageUrls=false'

Get fulfillment orders

merchantCode
required
string

Unique merchant code which represents the unique “merchant account”.

filters
string

Filter string. Available filter: locationCode, status, orderNumber, externalCode, name, billingName, customerId, salesOrderNumber, submitDate, completeDate, readyDate, pickupReminderApplicableAt, holdUntil, plannedFulfillmentDate, pickupReminderApplicableAt, type, pickingBatchId, statusChangeDate, createDate

includeInternalIds
boolean

The entity gets extended with the internal ID of Shopgate, this query cannot be used by external clients.

fields
string format: csv

Available fields: fulfillmentOrderAddress, lineItems, fulfillments, salesOrder

sort
string
""

Sorting of orders. Available fields are: submitDate, scheduledPickupTime, type(ROPIS,BOPIS,directShip)

limit
integer format: int32
default: 100 <= 100

Items per page, for pagination, default is 10, max is 100

offset
integer format: int32
0

Offset for pagination, default is 0

getOriginalImageUrls
boolean

Request original image URLs for LineItem product images.

Media typeapplication/json
object
fulfillmentOrders
Array<object>
object
orderNumber

Unique fulfillment order number

string
<= 50 characters
externalCode

External order id

string
>= 1 characters
posTransactionId

Transaction id of the POS

string
cancellationReason
string
Allowed values: expired declined newPurchase tooBusy unavailableProducts other
heldUntil

Date until which order is held for pickup.

string | null format: date-time
pickupReminderApplicableAt

Date when pickup reminder can be sent out.

string | null format: date-time
salesOrderNumber
string
locationCode

Location code which should fulfill the order

string
type
string
Allowed values: directShip BOPIS ROPIS
customerId

Customer identifier

string
externalCustomerNumber

A customer number / reference to an external system.

string
routeType
string
Allowed values: standardDirectShip standardPickup standardReserve
expedited
boolean
status
string
default: new
Allowed values: new requested accepted inProgress picked packed ready hold checkedIn canceled rejected fulfilled
subTotal
number format: float
taxAmount

Tax amount of the first tax group (e.g. for german taxes this is an absolut number based on either 7% or 19% of the order total; the order total is 10.00 EUR so the taxAmount is 10.00 EUR * 0.19 = 1.9 EUR)

number format: float
0
tax2Amount

Tax amount of the second tax group (can be used for additional taxes like for example US state taxes)

number format: float
0
total
number format: float
shippingTotal
number format: float
localeCode
string
>= 2 characters <= 5 characters
currencyCode
string
>= 3 characters <= 3 characters
notes

Customer notes where the shopper can provide special instructions. The notes are shown in the In-Store App & Admin.

string | null
<= 1000 characters
specialInstructions

Special instructions of the order. It can contain special shipping or fulfillment instructions

string | null
scheduledPickupTime
string format: string
submitDate

Date when the order was submitted by the customer

string | null format: date-time
acceptDate

Date when the order status was changed to accepted

string | null format: date-time
readyDate

Date when the order status was changed to ready

string | null format: date-time
completeDate

Date when the order status was changed to completed

string | null format: date-time
fulfillmentOrderAddress
object
orderIndex
required
number
type
required
string
Allowed values: pickup shipping billing
firstName
required
string
middleName
string | null
lastName
required
string
company
string | null
address1

If used as shipping address for direct ship, this field is required

string | null
address2
string | null
address3
string | null
address4
string | null
city

This field is required if used as shipping address for direct ship

string | null
region
string | null
postalCode

This field is required if used as shipping address for direct ship

string | null
country

This field is required if used as shipping address for direct ship

string | null
additionalFields
object
dhlPostBoxNumber

Number of a postbox

string | null
>= 1 characters <= 5 characters
dhlPostNumber

Number of a post

string | null
>= 1 characters <= 10 characters
phone

Validated according to country code

string | null
fax

Validated according to country code

string | null
mobile

Validated according to country code

string | null
emailAddress
required
string
salesOrder
object
orderNumber

Number of the Order. Its need to be unique in the system

string
shopCode

Code of the source shop.

string
externalCode

External order id

string
>= 1 characters
type
string
default: standard
Allowed values: standard
customerId

Customer identifier

string
externalCustomerNumber

A customer number / reference to an external system.

string
status
string
Allowed values: new open rejected canceled ready fulfilled completed inProgress
expedited

Indicates if the order needs to be threated expediently

boolean
localeCode
string
>= 2 characters <= 5 characters
currencyCode
string
>= 3 characters <= 3 characters
taxExempt
boolean
notes

Customer notes where the shopper can provide special instructions. The notes are shown in the In-Store App & Admin.

string | null
<= 1000 characters
specialInstructions

Special instructions of the order. It can contain special shipping or fulfillment instructions

string | null
data
object
fulfillmentStatus
string
Allowed values: open inProgress completed actionRequired
primaryBillToAddressSequenceIndex

Position in the AddressSequences-Array, mandatory for all fulfillment methods that include billing like directShip and BOPIS

number
primaryShipToAddressSequenceIndex

Position in the AddressSequences-Array, mandatory for all fulfillment methods that include shipping like directShip

number
addressSequences
Array<object>
object
type
string
Allowed values: pickup shipping billing
customerContactId
string | null
firstName
string
middleName
string | null
lastName
string
companyName
string | null
address1
string | null
address2
string | null
address3
string | null
address4
string | null
city
string | null
region
string | null
postalCode
string | null
country

ISO 3166 ALPHA-2 / ISO 3166-2 Country Code

string | null
<= 2 characters
additionalFields
object
dhlPostBoxNumber

Number of a postbox

string | null
>= 1 characters <= 5 characters
dhlPostNumber

Number of a post

string | null
>= 1 characters <= 10 characters
phone

Validated according to country code

string | null
fax

Validated according to country code

string | null
mobile

Validated according to country code

string | null
emailAddress
string | null format: email
orderSegment
object
selectedShippingMethod
object
code
string
name
string
serviceLevel
object
code
string
name
string
cost
number format: float
iconUrl
string
carrier
object
code
string
name
string
availableShippingMethods

Contains all shipping method which are available fro this order segment. This property is only set if the order was not placed yet and is in the new status

Array<object>
object
code
string
name
string
serviceLevels
Array<object>
object
code
string
name
string
cost
number format: float
iconUrl
string
carrier
object
code
string
name
string
subTotal

Subtotal of the order

number format: float
discountAmount

Total amount of all applied promotions with coupons on order level. Without line item level promotions, since these are already included in the order subtotal.

number format: float
0
promoAmount
number format: float
0
taxAmount

Tax amount of the first tax group (e.g. for german taxes this is an absolut number based on either 7% or 19% of the order total; the order total is 10.00 EUR so the taxAmount is 10.00 EUR * 0.19 = 1.9 EUR)

number format: float
0
tax2Amount

Tax amount of the second tax group (can be used for additional taxes like for example US state taxes)

number format: float
0
shippingSubTotal

Shipping total without any discounts. Its based on the line items in the order

number format: float
shippingDiscountAmount

Sum of discounts applied to the shipping total

number format: float
shippingPromoAmount
number format: float
shippingTotal

Shipping total including all discounts

number format: float
taxSummary
Array<object>
object
code
string
name
string
amount
number
total

Total sum of the order including tax, shipping and discounts

number format: float
date

Date of the order when it was created in the Shopgate system

string format: date-time
submitDate

Date when the order was submitted by the customer

string | null format: date-time
fulfillDate

Date when the order status was changed to fulfilled

string | null format: date-time
completeDate

Date when the order status was changed to completed

string | null format: date-time
sourceIp

IP address from the client where the order was placed. It can be a IPv4 or IPv6 address

string
userAgent

The UserAgent string from headers of the incoming request.

string | null
domain

The domain from which order came.

string | null
/^(((?!-))(xn--|_{1,1})?[a-z0-9-]{0,61}[a-z0-9]{1,1}\.)*(xn--)?([a-z0-9][a-z0-9\-]{0,60}|[a-z0-9-]{1,30}\.[a-z]{2,})$/
platform

The platform from which the order came.

string
Allowed values: engage desktop mobile checkoutPage inStoreApp other
os

Operation system of the source device

string
Allowed values: ios android other
imported

Indicates if the order has been imported from an external system. Enabling this flag means that there will be no further processes triggered by this order like emitting events, calculating properties like prices, or starting payment transactions.

boolean
campaignAttribution

Campaign the order should be attributed to

object
campaignCode
required
string
channel
required
string
distributionIndex
required
number
lineItemCount
number
lineItems
Array<object>
object
id
number
salesOrderLineItemCode
string
lineItemGroupId

Used as a group identifier when single-quantity fulfillment is enabled

null | string
sku
string
quantity
number
quantityChangeReason

Reason for a quantity change. Needs to be set if a new quantity is set. Deprecated reasons:

  • wrongAttribute
  • wrongProduct
  • changedMind
  • brokenOrDamaged
  • outOfStock
string
Allowed values: wrongItem wrongProduct wrongAttribute wrongQuantity changedMind customerCanceled brokenOrDamaged itemDamaged outOfStock outdatedStockInfo unavailable substituted other
status
string
Allowed values: new requested accepted rejected canceled picked packed ready hold fulfilled
currencyCode
string
>= 3 characters <= 3 characters
price
number format: float
salePrice
number format: float
shippingAmount
number format: float
taxAmount
number format: float
tax2Amount
number format: float
taxExempt
boolean
unitPromoAmount

Amount of all applied promotions for a single unit (single quantity).

number format: float
0
unitDiscountAmount

Amount of all applied discounts (promotions with coupons) for a single unit (single quantity).

number format: float
0
discountAmount

Total amount of all applied promotions with coupons for the line item. (Formula: lineItem.unitDiscountAmount * lineItem.quantity)

number format: float
0
promoAmount

Total amount of all applied promotions for the line item. (Formula: lineItem.unitPromoAmount * lineItem.quantity)

number format: float
0
overrideAmount
number format: float
extendedPrice

The extended Price is the final price of the line item, including all discounts & promotions that apply to this line item, and also already multiplied with the quantity. Formula: (product.price or product.salePrice if not empty) * quantity + promoAmount + discountAmount. Example: A product original price is 60€ (product.price), but it is on sale for 40€ (product.salePrice). Ordered quantity is 2, there is no discount but there is a promotion that applies to this product and gives 10% additional discount (unitPromoAmount = 4€, promoAmount = 8€). The extended price of this line item should be (40€ * 2) + (-8€) = 72€.

number format: float
product
object
code
required

Product code

string
>= 1 characters
name
required

Product name

string
image

Main image url of the product

string | null format: uri
price
required

Main price of the product

number format: float
salePrice

Sale price of the product

number | null format: float
currencyCode
required
string
>= 3 characters <= 3 characters
identifiers
object
mfgPartNum
null | string
<= 255 characters
upc
null | string
<= 255 characters
ean
null | string
<= 255 characters
isbn
null | string
<= 255 characters
sku
null | string
<= 255 characters
distiPartNum
null | string
<= 255 characters
options
Array<object>
object
code
required
string
name
required
string
value
required
object
code
required
string
name
required
string
substitutionAllowed

Determines if a substitution is allowed for this line item.

boolean
default: true
fulfillments
Array<object>
object
id
number
status
string
Allowed values: open canceled inProgress fulfilled
carrier
string
serviceLevel
string
tracking
string
createDate

Date of the order when it was created in the Shopgate system

string format: date-time
fulfillmentPackages
Array<object>
object
id
number
status
string
Allowed values: open inProgress readyForPickup inTransit fulfilled canceled
serviceLevel
string
fulfilledFromLocationCode
string
weight

The actual package weight.

number format: float
weightUnit
string
Allowed values: g lb
dimensions
object
length
number format: float
lengthUnit
string
Allowed values: mm cm in
width
number format: float
widthUnit
string
Allowed values: mm cm in
height
number format: float
heightUnit
string
Allowed values: mm cm in
tracking
string
pickUpBy
string
labelUrl
string
labelType
string
Allowed values: pdf zpl
returnLabelUrl
string
fulfillmentDate

The date and time of the package entering status “inTransit” or “fulfilled”.

string format: date-time
packageItems
Array<object>
object
salesOrderLineItemCode
string
quantity
number
meta
object
limit
number
offset
number
totalItemCount
number
Example
{
"fulfillmentOrders": [
{
"orderNumber": "1293747-0001",
"externalCode": "000000274",
"posTransactionId": "528a-1",
"cancellationReason": "expired",
"heldUntil": "2019-10-05T09:02:57.733Z",
"pickupReminderApplicableAt": "2019-09-02T09:02:57.733Z",
"salesOrderNumber": "1293747",
"locationCode": "DERetail001",
"type": "directShip",
"customerId": "55c98b8e-1100-497c-8df6-4b4f0353ab2a",
"externalCustomerNumber": "C1756793",
"routeType": "standardDirectShip",
"expedited": true,
"status": "new",
"subTotal": 65.99,
"taxAmount": 12.54,
"tax2Amount": 0,
"total": 65.99,
"shippingTotal": 0,
"localeCode": "de-de",
"currencyCode": "EUR",
"notes": "Some note",
"specialInstructions": "House behind the dumpster",
"scheduledPickupTime": "2019-09-03T08:00:00Z",
"submitDate": "2019-09-02T09:02:57.733Z",
"acceptDate": "2019-09-02T14:02:57.733Z",
"readyDate": "2019-09-02T14:03:57.733Z",
"completeDate": "2019-09-03T15:02:57.733Z",
"fulfillmentOrderAddress": {
"orderIndex": 0,
"type": "pickup",
"firstName": "Max",
"middleName": "René",
"lastName": "Muster",
"company": "Shopgate GmbH",
"address1": "12 Somestreet",
"address2": "Haus B",
"address3": "erste Etage",
"address4": null,
"city": "Butzbach",
"region": "HE",
"postalCode": "35510",
"country": "DE",
"additionalFields": {
"dhlPostBoxNumber": 12345,
"dhlPostNumber": 1234567890
},
"phone": "+49 12345 6789 001",
"fax": "+49 12345 6789 002",
"mobile": "+49 12345 6789 003",
"emailAddress": "max.muster@shopgate.com"
}
}
],
"meta": {
"limit": 100,
"offset": 0,
"totalItemCount": 1
}
}

Merchant not found

Media typeapplication/json

Unexpected error

Media typeapplication/json
object
code

Machine readable error code

string
message
required

Human readable error code

string
Example
{
"code": "internal.database",
"message": "Internal Database Error"
}