Skip to content
  • There are no suggestions because the search field is empty.

Shipment Specifications

In Logicbroker the shipment's purpose is to provide all information related to shipping ordered items. This will include quantities shipped, tracking information, container codes (GS1-128 if required) and carrier information.

✨Tip:

It is important to understand what kind of shipments are being transmitted. Freight shipments sent to a distribution center or warehouses are typically treated differently than a shipment to a residential property. This may include providing GS1-128 labels on all packages or sending pallet information. If you have questions for a specific partner and requirements please contact support.

Not all shipments require a GS1-128 code and label, which will be supplied in the ShipmentLine.ShipmentInfo.ContainerCode field. In most cases the ShipmentLine.ShipmentInfo.TrackingNumber will be used to identify each unique package/carton.

🗒️Note:

If you need to implement a GS1-128 label and code we can generate both the code and label automatically verifying full compliance across all your partners. For more info contact us.

When Logicbroker receives a shipment against your order, it will affect the status of that order. If all quantities on the order are shipped the status of the order will automatically update to Ready to Invoice (600) or Complete (1000) if no invoice is required. It is important that the PartnerPO on the shipment matches the order and that each shipment line matches a line on the order. See Matching shipments to the order below.  

🗒️Note:

If you need to cancel items from an order and do not want to implement an Acknowledgement document type integration, you can use the shipment. Contact us for more details.

The structure shown below in Field Descriptions follows Logicbroker's standard schema across all document formats; this includes JSON, EDI, XML, CSV, and Portal. The EDI segments are listed next to each field to indicate what field maps to the standard 856 EDI from the Logicbroker schema.

✨Tip:

If you are integrating via API and need the full model schema see our API Console.

Consolidated Shipments

Logicbroker supports suppliers sending in consolidated shipments (1 shipment for multiple orders). To send in a consolidated 856, you will need to indicate multiple order loops within the document. Logicbroker will create individual 856s based on that information and send the shipments to retailers as individual shipments per order. For any retailer that has test cases, suppliers can test sending consolidated shipments using those test cases. 

Matching shipments to the order

Logicbroker checks every shipment against its order before sending it to your retailer. These checks apply to every format: JSON, XML, EDI, CSV and Portal.

How shipment lines are matched to order lines

  • The PartnerPO must match the PO number of an existing order. If Logicbroker finds no order with that PO number, the shipment fails with Original Order Not Found.
  • Logicbroker matches each shipment line to an order line by its item. A line matches when its SupplierSKU, UPC or PartnerSKU is the same as on the order line. Logicbroker ignores upper and lower case, and spaces before or after the value.
  • If you send a LineNumber (LIN01 in EDI), Logicbroker uses it to pick the right order line. Send it exactly as it appears on the order. For example, 1.0 and 1 are not the same line number.
  • If the same item is on more than one order line (for example, lines 1.0 and 1.1), send a separate shipment line for each order line with that line's quantity. Do not combine them into one shipment line.
  • Logicbroker ignores shipment lines that do not match any order line, and they do not count toward the order. If no line on a shipment matches the order, the whole shipment fails with Shipment SKU Mismatch.

Quantities

  • The quantity shipped for an order line is the total of that line's quantities in every box (ShipmentLine.ShipmentInfo.Qty, or SN102 in each EDI item loop). Earlier shipments for the same order also count, unless they failed or were cancelled or ignored.
  • The quantity shipped plus any quantity already cancelled on that order line cannot be more than the quantity ordered, unless your retailer allows over-shipment. If it is more, the shipment fails with a message such as Tried to ship 1 out of 1 ordered (1 cancelled). So you cannot ship a line, or part of a line, that has already been cancelled.
  • Through the API, Logicbroker rejects a shipment if every line has a quantity of 0, or if any line has a quantity below 0.

One item in more than one box

  • List the item in each box it was packed in, with the same item identifiers and the quantity in that box. In EDI, repeat the item loop under each pack loop and use the same LIN01 line number each time. Logicbroker reads a different LIN01 as a different order line.
  • Give each box its own tracking number (ShipmentLine.ShipmentInfo.TrackingNumber, MAN*CP in the EDI pack loop) and its own container code (ShipmentLine.ShipmentInfo.ContainerCode, MAN*GM). Logicbroker treats boxes with the same container code as one box. In EDI, do not send the tracking number only at the shipment level, because REF*CN is for the PRO number.
  • If a single unit ships in more than one box (for example, a product that comes in two cartons), put the item's full quantity in the first box and a quantity of 0 in the other boxes. This keeps the boxes from adding up to more than was ordered. Check your retailer's document standards first, because some retailers have their own rules for items shipped in more than one box.

Sending a corrected shipment

  • A shipment that failed does not count toward the order. Correct the problem and send a new shipment.
  • Give the corrected shipment a new shipment number (ShipmentNumber, BSN02 in EDI). Logicbroker treats an exact copy of a shipment it already received as a duplicate and does not process it.
  • A shipment that was accepted still counts toward the order. If it was wrong, contact support before you send a replacement. Otherwise the replacement may fail as an over-shipment. See I need to correct a shipment that already processed.

Retailer-specific checks

Some retailers add their own checks. For example, your retailer may require a tracking number on every box, accept only the ship methods on its list, or not allow you to ship part of a line. You can see your ship method codes under Settings › Shipment Options. To see what a retailer requires, check its document standards under Partners › Document Standards.

Troubleshooting shipments that do not match the order

These situations apply to suppliers in every format: EDI, API, CSV, file import and the portal. The error appears on the failed shipment's events and under Reporting › Events. Failed shipments are listed under Reporting › Failed Documents.

When you contact support about any of these, include your company name, the retailer, the PO number, the shipment's document ID, the exact error and what you already tried.

Shipment failed with "Original Order Not Found"

What it means: Logicbroker could not link the shipment to an order. The error details say "This shipment could not be linked to an existing order. Please verify that the PO number on this shipment is correct."

What to check:

  1. Open the failed shipment and note its PartnerPO (PRF01 in EDI).
  2. Search your orders in Logicbroker for that PO number.
  3. Compare the two values character by character. Look for a missing prefix, an extra digit or a different PO.

The fix: Correct the PO number in your system and send a new shipment with a new shipment number. The failed shipment does not count toward the order.

How to check it worked: The new shipment does not show as Failed. When every line is shipped, the order moves to Ready to Invoice or Complete.

When to contact support: contact support if the PO number on the shipment matches an order you can see in Logicbroker and the shipment still fails.

Shipment failed with "Shipment SKU Mismatch"

What it means: Logicbroker found the order, but no line on the shipment matches a line on the order. The error details say "None of the items found on this shipment can be matched to items on the originating order" and give the order's Logicbroker ID.

What to check:

  1. Open the order and the failed shipment side by side.
  2. For each shipment line, compare the SupplierSKU, UPC and PartnerSKU with the order line. At least one of them must be the same. Upper and lower case and spaces before or after the value do not matter.
  3. Check whether you sent a different item than the one ordered. For example, you shipped a replacement item number, or you shipped the separate parts of a bundle that was ordered as one SKU.

The fix: Send the item identifiers exactly as they appear on the order. Choose one path:

  • In the portal, open the failed shipment and select More Actions › Edit. Correct the item identifiers and select Submit. Logicbroker reprocesses the edited shipment.
  • Correct the identifiers in your system and send a new shipment with a new shipment number.

More Actions › Retry does not fix this error, because it reprocesses the same shipment unchanged.

How to check it worked: The shipment does not show as Failed, and the order's shipped quantities include the shipment. If only some lines match, Logicbroker ignores the lines that do not match. Check that every line you shipped counted toward the order.

When to contact support: contact support if the identifiers match the order and the shipment still fails, or if your warehouse can only ship the parts of a bundle.

Shipment failed with "Cannot Over-Ship Lines"

Who this applies to: suppliers whose retailer does not allow over-shipment. Through the API, Logicbroker rejects the shipment when you submit it, with the same message.

What it means: For at least one order line, the quantity shipped plus the quantity cancelled is more than the quantity ordered. The message names each line, for example "The following line cannot be shipped because over-shipment is not allowed: SKU 12345: Tried to ship 1 out of 1 ordered (1 cancelled)." The first number is the total shipped for that line, including earlier accepted shipments. The number in brackets is the quantity already cancelled on the order.

What to check:

  1. Look at the order's earlier shipments. Shipments that were accepted count toward the order. Shipments that failed, were cancelled, were ignored or are duplicates do not count.
  2. Check whether you already cancelled part or all of the line, for example on an acknowledgement.
  3. Add up the quantity in every box for the line. If a single unit ships in more than one box, each box with a quantity adds to the total.
  4. If the same item is on more than one order line, check that you sent one shipment line per order line, each with its own line number.

The fix: Change the quantity on the shipment so that shipped plus cancelled is no more than ordered.

  • If the line was cancelled, remove it from the shipment.
  • If one unit ships in more than one box, put the full quantity in the first box and 0 in the other boxes.
  • If the order line was already shipped on an accepted shipment, do not ship it again.

Then send the corrected shipment with a new shipment number, or open the failed shipment in the portal, select More Actions › Edit, correct the quantities and select Submit.

How to check it worked: The shipment does not show as Failed, and the order shows the expected shipped quantity for each line.

When to contact support: contact support if an earlier accepted shipment was wrong and you need to replace it. Do this before you send the replacement.

My corrected shipment is treated as a duplicate

What it means: The shipment has the status Duplicate. Logicbroker received an exact copy of a shipment it already had, with the same content and the same reference, so it did not process the new one. A duplicate is not sent to the retailer and does not count toward the order.

What to check:

  1. Compare the new shipment with the earlier one. Check that your correction is in the file you sent.
  2. Check the shipment number (ShipmentNumber, BSN02 in EDI). If you reused the earlier number, that is the likely cause.

The fix: Make the correction in your system, give the shipment a new shipment number and send it again. More Actions › Retry is only available on failed documents, so you cannot retry a duplicate.

How to check it worked: The new shipment appears with a status other than Duplicate or Failed.

When to contact support: contact support if a shipment with a new shipment number and new content is still marked as a duplicate.

I need to correct a shipment that already processed

Who this applies to: suppliers in every format, when a shipment was accepted with a wrong tracking number, carrier, reference or quantity, or was sent twice.

What it means: An accepted shipment counts toward the order and may already be on its way to the retailer. Logicbroker does not delete documents once they are submitted. More Actions › Retry and More Actions › Ignore only appear while a shipment is Failed. If your account shows More Actions › Change Status, you can set a shipment in any status to Ignored.

What to check:

  1. Open the shipment and note its ID# and status.
  2. Open the order and look at Related Documents. Check whether there is more than one shipment, and which one has the wrong details.
  3. Check whether the retailer already has the wrong details, for example in its own portal or because it told you.

The fix: Choose the path that matches your shipment.

  • Your account shows More Actions › Edit on the shipment: select it and confirm that you want to put the shipment in draft. Correct the details and select Submit. If the retailer already received the shipment, contact support first and ask whether the retailer accepts a correction.
  • You do not see Edit: contact support. Support can correct the tracking number on the shipment. Support can also move the wrong shipment to Ignored and set the order back to Ready to Ship, so that you can send a new shipment with the right details.
  • The same shipment was sent twice: if your account shows More Actions › Change Status, set the extra shipment to Ignored. Otherwise, contact support and give the ID# of the extra shipment. Support can move it to Ignored.
  • The retailer already has the wrong details: some retailers cannot take a correction from Logicbroker once the shipment is in their system. In that case, send the correct details to the retailer directly. Support tells you when this applies.

How to check it worked: The wrong shipment shows Ignored, or shows the corrected details. The new or edited shipment does not show as Failed, and the order shows the expected shipped quantity for each line.

When to contact support: Include the shipment's ID#, the PO number, what is wrong and the correct value, for example the correct carrier and tracking number.

Shipment failed with "API Error 422: Invalid fulfillment order line item quantity requested"

Who this applies to: companies whose shipments Logicbroker sends to a Shopify store. The full message reads API Error 422: {"errors":["Invalid fulfillment order line item quantity requested."]}.

What it means: Shopify refused the shipment because the order lines are already fulfilled in the store. This usually happens when someone marked the order as shipped, delivered or complete in Shopify, or when another app already sent a shipment for it. Logicbroker does not fail the shipment if every tracking number on it is already on the Shopify order. So this error usually means the tracking in Shopify is different or missing.

What to check:

  1. Open the failed shipment in Logicbroker and note its tracking numbers.
  2. Open the same order in Shopify. Check whether it is already fulfilled and which tracking numbers it shows.
  3. Check whether the order was also shipped through another channel, for example by hand in Shopify, or in the portal and again through EDI or a shipping app.

The fix:

  • If the order is already fulfilled in Shopify and nothing is missing, the failed shipment is not needed. Open it and select More Actions › Ignore, or More Actions › Change Status if that is what your account shows.
  • If Shopify has the wrong tracking, correct it in Shopify, then ignore the failed shipment the same way.
  • To stop this happening again, ship each order through one channel only.

More Actions › Retry fails again with the same error unless the Shopify order already shows every tracking number on the shipment.

How to check it worked: The shipment shows Ignored, and the Shopify order shows the right tracking.

When to contact support: contact support if the Shopify order is not fulfilled and the shipment still fails with this error.

My shipment did not reach the retailer or my other system

Who this applies to: suppliers and retailers whose shipments Logicbroker sends on to another system, such as a retailer's system, a store or an ERP. The steps are the same for every connection.

What it means: Logicbroker either did not receive the shipment, or received it and could not send it on.

What to check:

  1. Open the order and look at Related Documents. If no shipment is listed, Logicbroker did not receive one. Check that your system or shipping app sent it.
  2. Open the shipment and check its status. If it shows Failed, expand Events to see the error.
  3. Look at Document Processing History on the shipment. It lists each action Logicbroker ran, when it last ran and how many attempts it made.
  4. To see errors across many documents, go to Reporting › Events or Reporting › Failed Documents.

The fix: Choose the path that matches the error.

  • The error is about the shipment's data, for example a missing field or a code the other system does not know: correct the data and send a new shipment, or use More Actions › Edit on the failed shipment.
  • The other system was down or refused the connection: once it is working again, select More Actions › Retry on the failed shipment. If many shipments failed at the same time, contact support. Support can reset them once the connection works again.
  • The shipment was sent but the other system shows something different: check with the owner of that system. If it is the retailer, contact the retailer directly.

Invoices for the same order can fail until the shipment is processed. Fix the shipment first.

How to check it worked: The shipment no longer shows as Failed, and the other system shows the shipment and its tracking.

When to contact support: Include the shipment's ID#, the PO number, the other system's name, the exact error from Events and when the problem started.

Details and Sample Files
JSON
XML
Download XML Samples + XSD

 

Click the link above to download the samples and XSD. All fields listed below reflect the model schema for the Logicbroker standard XML. For example the snippet below would match the field name ShipToAddress.CompanyName in the Field Descriptions below.

  <ShipToAddress>
    <CompanyName>Merchant Co</CompanyName>
  </ShipToAddress>

If there is a field that is missing in the structure you can add custom fields as an extended attribute on the header level or item level; see example below. Note when a custom field is added, you will need to notify Logicbroker to ensure it is mapped to your partners.

  <ExtendedAttributes>
    <ExtendedAttribute>
      <Name>Example</Name>
      <Value>Portal</Value>
    </ExtendedAttribute>
    <ExtendedAttribute>
      <Name>Example2</Name>
      <Value>NewValue</Value>
    </ExtendedAttribute>
  </ExtendedAttributes>

The value in the field descriptions documentation will show as ExtendedAttribute.EXAMPLE and for line items ShipmentLine.ExtendedAttribute.EXAMPLE.

All shipments must include package/carton information. This data is provided in the ShipmentInfos array. There is a header level ShipmentInfos which will be used to define pallets and there are item level ShipmentLine.ShipmentInfos to indicate the quantity shipped in each package/carton; this is always required. An example of the different hierarchies are shown below:

Standard (No Pallet)

Notice the quantity shipped will always be entered under the ShipmentLine.ShipmentInfo in Qty. This is to show how much of each quantity is shipped in each package/container. All carrier and tracking information is also required and provided here. The Quantity field is not required and will auto-populate with the total quantity across multiple containers.

<Shipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ShipmentLines>
    <ShipmentLine>
      <ItemIdentifier>
        <SupplierSKU>V-123123</SupplierSKU>
      </ItemIdentifier>
      <ShipmentInfos>
        <ShipmentInfo>
          <DateShipped>2019-01-01T12:00:00</DateShipped>
          <CarrierCode>FEDG1</CarrierCode>
          <ClassCode>FDEG_GD</ClassCode>
          <ServiceLevelCode>string</ServiceLevelCode>
          <TrackingNumber>TRK11111</TrackingNumber>
          <ContainerCode>00086275400000051594</ContainerCode>
          <Qty>15</Qty>
          <ContainerType>CTN</ContainerType>
          <Height>1</Height>
          <Width>2</Width>
          <Length>3</Length>
          <DimensionUnit>IN</DimensionUnit>
          <Weight>0</Weight>
          <WeightUnit>LB</WeightUnit>
        </ShipmentInfo>
        <ShipmentInfo>
          <DateShipped>2019-01-01T12:00:00</DateShipped>
          <CarrierCode>FEDG1</CarrierCode>
          <ClassCode>FDEG_GD</ClassCode>
          <ServiceLevelCode>string</ServiceLevelCode>
          <TrackingNumber>TRK22222</TrackingNumber>
          <ContainerCode>00086275400000051595</ContainerCode>
          <Qty>5</Qty>
          <ContainerType>CTN</ContainerType>
          <Height>1</Height>
          <Width>2</Width>
          <Length>3</Length>
          <DimensionUnit>IN</DimensionUnit>
          <Weight>0</Weight>
          <WeightUnit>LB</WeightUnit>
        </ShipmentInfo>
      </ShipmentInfos>
      <Quantity>20</Quantity>
      <QuantityUOM>EA</QuantityUOM>
      <LineNumber>1</LineNumber>
    </ShipmentLine>
  </ShipmentLines>
</Shipment>
With Pallet

In the case of sending pallet info and to indicate which cartons will be shipped on each pallet, the ShipmentInfo.ContainerCode on the header level will match the ShipmentLine.ShipmentInfo.ShipmentContainerParentCode. The container code will typically be a GS1-128 code.

<Shipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ShipmentInfos>
    <ShipmentInfo>
      <DateShipped>0001-01-01T00:00:00</DateShipped>
      <ContainerCode>00086275400000051600</ContainerCode>
      <ContainerType>PLT</ContainerType>
      <Height>4</Height>
      <Width>4</Width>
      <Length>5</Length>
      <DimensionUnit>IN</DimensionUnit>
      <Weight>0</Weight>
      <WeightUnit>LB</WeightUnit>
    </ShipmentInfo>
  </ShipmentInfos>
  <ShipmentLines>
    <ShipmentLine>
      <ItemIdentifier>
        <SupplierSKU>V-123123</SupplierSKU>
      </ItemIdentifier>
      <ShipmentInfos>
        <ShipmentInfo>
          <DateShipped>2019-01-01T12:00:00</DateShipped>
          <CarrierCode>FEDG1</CarrierCode>
          <ClassCode>FDEG_GD</ClassCode>
          <ServiceLevelCode>string</ServiceLevelCode>
          <TrackingNumber>TRK11111</TrackingNumber>
          <ContainerCode>00086275400000051594</ContainerCode>
          <Qty>15</Qty>
          <ContainerType>CTN</ContainerType>
          <ShipmentContainerParentCode>00086275400000051600</ShipmentContainerParentCode>
          <Height>1</Height>
          <Width>2</Width>
          <Length>3</Length>
          <DimensionUnit>IN</DimensionUnit>
          <Weight>0</Weight>
          <WeightUnit>LB</WeightUnit>
        </ShipmentInfo>
        <ShipmentInfo>
          <DateShipped>2019-01-01T12:00:00</DateShipped>
          <CarrierCode>FEDG1</CarrierCode>
          <ClassCode>FDEG_GD</ClassCode>
          <ServiceLevelCode>string</ServiceLevelCode>
          <TrackingNumber>TRK22222</TrackingNumber>
          <ContainerCode>00086275400000051595</ContainerCode>
          <Qty>5</Qty>
          <ContainerType>CTN</ContainerType>
          <ShipmentContainerParentCode>00086275400000051600</ShipmentContainerParentCode>
          <Height>1</Height>
          <Width>2</Width>
          <Length>3</Length>
          <DimensionUnit>IN</DimensionUnit>
          <Weight>0</Weight>
          <WeightUnit>LB</WeightUnit>
        </ShipmentInfo>
      </ShipmentInfos>
      <Quantity>20</Quantity>
      <QuantityUOM>EA</QuantityUOM>
      <LineNumber>1</LineNumber>
    </ShipmentLine>
  </ShipmentLines>
</Shipment>

🚚 For Suppliers:

To learn more about how to integrate sending shipments using the XML format see this link.

👥 For Retailers:

To learn more about how to integrate receiving shipments from your partners using the XML format see this link.

EDI
Download EDI Specs and Samples

 

Click the link above to download the standard 856 specification and samples. All fields listed below reflect the model schema for the Logicbroker standard 856. For example the snippet below would match the EDI field name N102 (ST) - ShipToAddress.CompanyName in the Field Descriptions below. The value in the parenthesis (ST) will represent the qualifier in the previous element; in this case its N101.

N1*ST*Merchant Co~

For EDI fields in a loop, such as line items, they will be identified by being separated with a ":" for example HL*I:LIN03 (VN) would be represented below. "HL*I:" indicates the element is under the HL item loop. LIN03 identifies the element value and again the parenthesis "(VN)" represents the related qualifier of "VN" present in LIN02.

HL*5*4*I~
LIN*1*VN*49-98760*IN*J07874*UP*123456789012~
SN1**298*EA~

All shipments must include package/carton information. There is a header level HL*T loop which will be used to define pallet information and the pack level HL*P loop will contain item and quantity shipped info per each package/carton; this is always required. An example of the different hierarchies is shown below:

Standard (No Pallet)

Notice the quantity shipped will always be entered under the SN1 segment. This is to show how much of each quantity is shipped in each package/container. The HL02 loop will indicate what container the items belong to, this is the parent Id. The MAN*CP will contain tracking information and MAN*GM will normally be the GS1-128 code if required.

In the example shown this is a SOPI (Shipment, Order, Pack, Item) structure and shows one line item getting shipped in 2 different packages/cartons.

HL*3*2*P~
PO4**********4*3*2*IN~
TD1*CTN*1****G*20*LB~
MAN*CP*564564654654~
MAN*GM*081034001000008795~
HL*4*3*I~
LIN*1*VN*49-98760*IN*J07874*UP*123456789012~
SN1**298*EA~
HL*5*2*P~
PO4**********4*3*2*IN~
TD1*CTN*1****G*20*LB~
MAN*CP*854545488888~
MAN*GM*081034001000008818~
HL*6*5*I~
LIN*1*VN*49-98760*IN*J07874*UP*123456789012~
SN1**1*EA~
With Pallet

In the example shown this is a SOTPI (Shipment, Order, Tare, Pack, Item) structure and shows shipping one pallet with one line item getting shipped in 2 different packages/cartons under that pallet. The HL02 loop will show the parent Id and will indicate what pallet and container the items belong to. 

HL*3*2*T~
TD1*PLT*1****G*400*LB~
REF*ZH*1Z324323~
MAN*GM*181034001000008808~
HL*4*3*P~
PO4**********4*3*2*IN~
TD1*CTN*1****G*20*LB~
MAN*CP*564564654654~
MAN*GM*081034001000008795~
HL*5*4*I~
LIN*1*VN*49-98760*IN*J07874*UP*123456789012~
SN1**298*EA~
HL*6*3*P~
PO4**********4*3*2*IN~
TD1*CTN*1****G*20*LB~
MAN*CP*854545488888~
MAN*GM*081034001000008818~
HL*7*6*I~
LIN*1*VN*49-98760*IN*J07874*UP*123456789012~
SN1**1*EA~

In this example, TD1*PLT*1****G*400*LB means one pallet with a gross weight of 400 pounds. This TD1 segment does not give the pallet dimensions. To send them, add a PO4 segment in the same pallet (T) loop with the length, width and height in PO410, PO411 and PO412 and the unit in PO413.

🚚 For Suppliers:

To learn more about how to integrate sending shipments using the EDI format see this link.

👥 For Retailers:

To learn more about how to integrate receiving shipments from your partners using the EDI format see this link.

CSV
Download CSV Samples

 

Click the link above to download the CSV samples. Note by default if you are retrieving shipments from Logicbroker's SFTP/FTP a simplified version will be provided, the sample is annotated with EXPORT.

To receive the format as listed below in the Field Descriptions, please contact support@logicbroker.com. All fields listed below reflect the model schema for the Logicbroker standard CSV format. For example the snippet below would match the field name ShipToAddress.CompanyName in the Field Descriptions below.

Id,ShipToAddress.CompanyName
221804,Merchant Co

If there is a field that is missing in the structure you can add custom fields as an extended attribute on the header level or item level; see example below. Note when a custom field is added, you will need to notify Logicbroker to ensure it is mapped to your partners.

Id,ExtendedAttribute[Name=EXAMPLE].Value
221804,Portal

The value in the field descriptions documentation will show as ExtendedAttribute.EXAMPLE and for line items ShipmentLine.ExtendedAttribute.EXAMPLE

✨Tip:

When submitting or receiving a CSV shipment, each row will be split out for each line item and unique package. Therefore, if one line item is shipped in 2 packages there would be 2 rows for that line indicating a different TrackingNumber or ContainerCode for each row. If you are submitting a Shipment to Logicbroker for creation, the line items will get consolidated into one shipment and containers created appropriately if they share the same ShipmentNumber.

All shipments must include package/carton information. There is a header level ShipmentInfos which will be used to define pallet information and item level ShipmentLine.ShipmentInfo which indicate quantity shipped and other container info per each package/carton; this is always required. An example of the different hierarchies is shown below:

Standard (No Pallet)

Quantity will always be provided per package in ShipmentLine.ShipmentInfo.Qty and ShipmentLine.ShipmentInfo.TrackingNumber will indicate the package/carton the item is shipped in. 

In the example you can see one line item, is being shipped in 2 different boxes. This will create a shipment with one line containing 2 ShipmentInfos - 2 container/cartons with a total quantity shipped of 20. Being that ShipmentNumber is the same across rows it will create one document. In addition, being that the ShipmentLine.ItemIdentifier.SupplierSKU is the same with different TrackingNumbers across multiple rows will create that one line with multiple cartons.

ShipmentNumber,PartnerPO,ShipmentLine.LineNumber,ShipmentLine.ItemIdentifier.SupplierSKU,ShipmentLine.ShipmentInfo.TrackingNumber,ShipmentLine.ShipmentInfo.ContainerCode,ShipmentLine.ShipmentInfo.Qty
SH111111111111,PO1112222,1,V-123SKU,TRK1Z000001,081034001000008795,15
SH111111111111,PO1112222,1,V-123SKU,TRK1Z000002,081034001000008765,5
With Pallet

In this example you can see a pallet is identified by the ShipmentInfo.ContainerCode and the package/carton is associated to the pallet by sharing the same code in ShipmentLine.ShipmentInfo.ShipmentContainerParentCode.

ShipmentNumber,PartnerPO,ShipmentLine.LineNumber,ShipmentLine.ItemIdentifier.SupplierSKU,ShipmentInfo.ContainerCode,ShipmentLine.ShipmentInfo.ShipmentContainerParentCode,ShipmentLine.ShipmentInfo.TrackingNumber,ShipmentLine.ShipmentInfo.ContainerCode,ShipmentLine.ShipmentInfo.Qty
SH111111111111,PO1112222,1,V-123SKU,00086275400000051600,00086275400000051600,TRK1Z000001,081034001000008795,15
SH111111111111,PO1112222,1,V-123SKU,00086275400000051600,00086275400000051600,TRK1Z000002,081034001000008765,5

🚚 For Suppliers:

To learn more about how to integrate sending shipments using the CSV format see this link.

👥 For Retailers:

To learn more about how to integrate receiving shipments to your partners using the CSV format see this link.

🗒️Note:

Logicbroker has the ability to create custom specifications for any format and file type. Please contact us and attach any samples of your custom format and we can quickly and easily implement it.

Field Descriptions

 

EDI Field Logicbroker Field Description Requirement

N/A

Identifier.SourceKey

Identifier that will come from the source system; typically this will match the PartnerPO.

Read Only

N/A

Identifier.LogicbrokerKey

ID to identify the document in the logicbroker system.

Read Only

N/A

Identifier.LinkKey

Used to link the document to the original source document. For example, It is best to supply the Order's linkkey when posting a shipment. This will make sure the order shipped quantities are updated on the original order and all statuses are updated appropriately.

Optional

N/A

SenderCompanyId

Logicbroker Internal Company ID to specify what company is sending the document.

Required

N/A

ReceiverCompanyId

Logicbroker Internal Company ID to specify what company is to receive the document.

Required

BSN02

ShipmentNumber

Unique ID to identify the shipment. When you send a corrected shipment, give it a new shipment number.

Required

BSN03

ShipmentDate

Date units are shipped

Required

N/A

DocumentDate

Date the document was created. This field will automatically default with the date the document is created.

Required

HL*O:PRF01

PartnerPO

This will be the purchase order number, this will be the main Key to link all your documents. This should match the order. If Logicbroker finds no order with this PO number, the shipment fails with Original Order Not Found.

Required

HL*O:PRF04

OrderDate

Date on the Purchase Order

Optional - will be pulled from original order if not provided

N/A

OrderNumber

Contains the end customer's order number, this will be used on the packing slip.

Optional

REF02 (BM)

BillofLading

Document number issued by the carrier which contains details of the shipment.

Conditional - if available

REF02 (CN)

PRONumber

Typically used by LTL freight carriers, A PRO number is a series of numbers used by carriers as a reference for freight movement; this is like a tracking number.

Conditional - if available

REF02 (IA)

VendorNumber

This is the internal vendor number provided to the supplier from the merchant. If available it is always recommended to send.

Optional

 N/A

Note

Notes or shipping instructions provided by supplier; see the meaning of the notes on the individual partners notes.

Optional

DTM02 (067)

ExpectedDeliveryDate

Date the shipment is expected to be received at the shipping location.

Required

N/A

Payments.Method

Shipment method of payment. Typical codes received are listed below:

CC: Collect

PO: Prepaid Only

Optional

N102 (SF)

ShipFromAddress.CompanyName

ShipFromAddress is not required if you have a rule in place to default for all shipments.

Required

N201 (SF)

ShipFromAddress.FirstName

 

Required

N202 (SF)

ShipFromAddress.LastName

 

Optional

N301 (SF)

ShipFromAddress.Address1

 

Required

N302 (SF)

ShipFromAddress.Address2

 

Required

N401 (SF)

ShipFromAddress.City

 

Required

N402 (SF)

ShipFromAddress.State

 

Required

N404 (SF)

ShipFromAddress.Country

 

Optional

N403 (SF)

ShipFromAddress.Zip

 

Required

N104 (SF*92)

ShipFromAddress.AddressCode

 

Optional

N1:PER06 (TE)

ShipFromAddress.Phone

 

Optional

N1:PER04 (EM)

ShipFromAddress.Email

 

Optional

HL*T:MAN02 (GM)

ShipmentInfo.ContainerCode

SSCC-18 and Application Identifier to be used to identify the pallet. If not provided the tracking number can be used. To identify what cartons belong to the pallet, you will need to enter this value in the "ShipmentContainerParentCode" under the "ShipmentInfos" (containers) on the line level.

Conditional - only required if sending a pallet

HL*T:TD101

ShipmentInfo.ContainerType

Use "PLT" to Specify Pallet

Conditional - only required if sending a pallet

HL*T:REF02 (ZH)

ShipmentInfo.TrackingNumber

 

Conditional - only required if sending a pallet

HL*T:TD107

ShipmentInfo.Weight

Total gross weight of the package or carton.

Conditional - only required if sending a pallet

HL*T:TD108

ShipmentInfo.WeightUnit

Weight Unit of Measure for the package or carton.

Conditional - only required if sending a pallet

HL*T:PO410

ShipmentInfo.Length

Length of the pallet. Send it in a PO4 segment inside the pallet (T) loop. Use whole numbers. Logicbroker drops any decimals.

Conditional - only required if sending a pallet

HL*T:PO411

ShipmentInfo.Width

Width of the pallet. Send it in the same PO4 segment. Use whole numbers.

Conditional - only required if sending a pallet

HL*T:PO412

ShipmentInfo.Height

Height of the pallet. Send it in the same PO4 segment. Use whole numbers.

Conditional - only required if sending a pallet

HL*T:PO413

ShipmentInfo.DimensionUnit

Unit of measure for the pallet length, width and height, for example IN for inches.

Conditional - only required if sending a pallet

N/A

ExtendedAttribute.EXAMPLE

 

 

HL*I:PID05 (08)

ShipmentLine.Description

Standard short description or name of the product.

Optional

N/A

ShipmentLine.Quantity

Will be copied from the QTY Shipped provided under Shipment Infos. If you send ShipmentInfos, this is the total of their Qty values for the line. Through the API, Logicbroker rejects a shipment if this is 0 on every line or below 0 on any line.

Read Only

HL*I:LIN01

ShipmentLine.LineNumber

Line Number from the Order. If not provided this will be taken from the order automatically. If you send it, send it exactly as it appears on the order. For example, 1.0 and 1 are not the same. In EDI, use the same LIN01 for every carton of the same order line.

Required

HL*I:SN103

ShipmentLine.QuantityUOM

Unit of measure to identify the quantity in the container or package.

Required

N/A

ShipmentLine.Price

Unit cost that the merchant expects to be billed for each unit fulfilled.

Optional

HL*I:LIN05 (IN)

ShipmentLine.ItemIdentifier.PartnerSKU

The Item identifier that is internal to the purchaser/merchant.

Conditional - if received on an order this value should be returned

N/A

ShipmentLine.ItemIdentifier.ManufacturerSKU

Manufacturer's ID for the product.

Conditional - if received on an order this value should be returned

N/A

ShipmentLine.ItemIdentifier.ISBN

International Standard Book Number

Conditional - if received on an order this value should be returned

HL*I:LIN03 (VN)

ShipmentLine.ItemIdentifier.SupplierSKU

The Item Identifier that is used by the supplier or the person fulfilling the product. This will always contain a value.

Required

HL*I:LIN07 (UP)

ShipmentLine.ItemIdentifier.UPC

Typically the U.P.C Consumer Package code will be provided; however additional standardized codes can be provided here as well. See specific partner instructions for details.

Conditional - if received on an order this value should be returned

DTM02 (011)

ShipmentLine.ShipmentInfo.DateShipped

Date the package was shipped. This will update all header DateShipped values.

Required

HL*P:MAN02 (GM)

ShipmentLine.ShipmentInfo.ContainerCode

SSCC-18 and Application Identifier to be used to identify the child container. If no value is provided the tracking number will be used as the container code. Each package needs its own container code. Logicbroker treats packages with the same container code as one package. 

Conditional - Only required if partner requires GS1-128

HL*I:SN102

ShipmentLine.ShipmentInfo.Qty

Total Qty of the product within the package or container. This quantity will be summed up across all containers and the total will be supplied on the item level "Quantity" field.

Required

HL*P:MAN02 (CP)

ShipmentLine.ShipmentInfo.TrackingNumber

Tracking number Identifier provided from the carrier to be used to identify the container. If no container code is being used, this will be used as the container code. Send a separate tracking number for each package.

Required

TD503

ShipmentLine.ShipmentInfo.CarrierCode

This will typically be the Standard Carrier Alpha Code (SCAC). If you are using your own custom shipping methods to map "CarrierCode" and "ServiceLevelCode" then this will not be required, however the proper mapped code will need to be provided in the ClassCode.

Required

TD505

ShipmentLine.ShipmentInfo.ClassCode

The shipping method that will be used to send the merchandise. This can be a free form field or if using the shipment code mappings will need to match the Custom Code that was setup. When sending the Custom Code, the corresponding CarrierCode and Class Code will automatically get populated. You can find your ship method mappings under Settings › Shipment Options. Some retailers accept only mapped ship methods. A shipment with any other ship method fails.

Required

TD512

ShipmentLine.ShipmentInfo.ServiceLevelCode

Service Level set to ship by the carrier. Check with trading partner to see applicable codes. An example of a few would be:

ND = Next Day

CG = Ground

ON = Overnight

SA = Same Day

If you are using your own custom shipping methods to map "ServiceLevelCode" then you will not need to provide the value, however the proper mapped code will need to be provided in the ClassCode.

Optional

N/A

ShipmentLine.ShipmentInfo.ShipmentContainerParentCode

SSCC-18 and Application Identifier to be used to identify the pallet. If you are shipping a pallet and need to identify which cartons belong to it, this value needs to match the container code provided on the pallet in the header level "ShipmentInfo"

Optional

HL*P:TD101

ShipmentLine.ShipmentInfo.ContainerType

Specifies the code used to identify the package type. See specific trading partner for correct codes.

Required

HL*P:TD107

ShipmentLine.ShipmentInfo.Weight

Total weight of the package or carton. Default will be in pounds.

Required

HL*P:TD108

ShipmentLine.ShipmentInfo.WeightUnit

Weight Unit of Measure for the package or carton. Default will be in pounds.

Optional

HL*P:PO410

ShipmentLine.ShipmentInfo.Length

Length of the container or package. To be provided in inches.

Required

HL*P:PO411

ShipmentLine.ShipmentInfo.Width

Width of the container or package. To be provided in inches.

Required

HL*P:PO412

ShipmentLine.ShipmentInfo.Height

Height of the container or package. To be provided in inches.

Required

HL*P:PO413

ShipmentLine.ShipmentInfo.DimensionUnit

Dimension for the values in Length, Width and Height fields.

 Optional

We're updating this article. Some steps and screenshots may not match the portal yet. If anything is unclear, contact support@logicbroker.com.