Page tree
Skip to end of metadata
Go to start of metadata


Parsers enable customers to send files through to tenants either by FTP or by email. The system can then read them in and convert them to the format required for saving in the system.

It is possible to parse multiple Manifests and Sale Orders from a single file, however it is not possible to parse multiple Purchase Orders from a single file.

Manifest Parsers:

Manifest Definition
In Parsing a Manifest is a list of Consignment Items (see Consignment Item Definition below). It is possible to have multiple Manifests parsed from a single input file.
KeyTypeDescriptionRequiredConditionsEffects
customer_referenceStringThe reference for this ManifestYesN/ASets the Reference for this Manifest
recordsArrayThe Consignment Items that are part of this ManifestYesN/AN/A
response_htmlStringThe message being returned after Parsing has been completedYesN/AN/A
customer_idIntegerThe Customer ID that this Manifest should be assigned toNoN/AAssigns the Manifest to the given Customer ID
multipleBooleanWhether or not there are multiple Manifests being parsedConditionalIf a `manifests` Key is provided then this field becomes requiredTells the Parser that we are trying to parse multiple Manifests from the single provided file
manifestsArrayThe Manifests containing unique `customer_references` and `records` KeysConditionalIf a `multiple` Key is provided then this field becomes requiredDefines what records and customer_reference belong to which Manifest
pickup_requiredIntegerWhether the Manifest being parsed requires pickupNoN/ASets whether the Driver needs to pickup the contents of this Manifest
filenameStringThe file being parsedNoN/AN/A
commentsStringAny comments relevant to the ManifestNoN/ASets any relevant comments for this Manifest
additional_paramsArray

This field contains Keys for setting the initial statuses of the parsed Manifest

KeyDescriptionRequired
manifest_start_status_idThe status that the Manifest should start inNo
manifest_status_idThe status that the Manifest should be in when viewedNo
NoN/AChange the Manifest status fields based on provided values
uses_driverBooleanSets whether the Parser functionality should attempt to Auto-Assign drivers to the Consignments in this ManifestNoN/AAllows the Parser to attempt to Auto-Assign drivers to the Consignments contained in the `records` Key
Consignment Item Definition

Consignments Items are created for each row being read from the parsed file. They are added to the overall `manifest` record (see Manifest Definition section above) and must contain the below required fields to be parsed.

KeyTypeDescriptionRequiredConditionsEffects
customer_referenceStringInvoice number of Unique IdentifierYesN/ASets the Manifest Reference
Deprecated, see: "DeliveryAddress"
address_company_nameStringName of the Company the delivery is going toYesN/AThis value is saved in the Addresses DB
address_stringStringThe concatenated company name and address components of the delivery. The form for this is ideally: `address_company_name`, `street_address`, `suburb`, `state`, `postcode`ConditionalIf no `DeliveryAddress` or `PickupAddress` keys are set then this field will be required.This value is saved in the Addresses DB table.
street_addressStringThe address the Consignment is being delivered toConditionalIf no `DeliveryAddress` or `PickupAddress` keys are set then this field will be required.N/A - Used for creating `address_string`
suburbStringThe suburb/town the company receiving the delivery is inNoN/AN/A - Used for creating `address_string`
stateStringThe state the company receiving the delivery is inNoN/AN/A - Used for creating `address_string`
postcodeIntegerThe postcode of the region the company receiving the delivery is inNoN/AN/A - Used for creating `address_string`
countryStringThe country where the company residesNoN/AN/A - Used for creating `address_string`
cartons, pallets, etc. (custom fields)Dependent on Custom Field. Normally Integer or Float but can also be StringThis key is defined by the custom_fields table's `map_field_name` column value. This allows the software to establish which custom field in the Consignment this value needs to be savedConditionalAt least one of the custom field definitions e.g. cartons, pallets, etc must be included for a consignment to be created. The key cartons is usually the default key for parsing but other custom fields can be used.Updates the corresponding custom field to show how many cartons, pallets, etc. make up this Consignment
valueFloatThe value of the cartons, pallets, etc being delivery to the storeNoN/AThis sets the value of the Consignment contents
product_type_nameStringThe type of the product being delivery, e.g. Frozen, Chilled, Ambient, etc.NoN/ASets the product type to the provided value for this Consignment. NOTE: You can blanket assign a given product type e.g. Frozen, Chilled, etc. to all Consignments in a parsed file by setting this to be the matching value in the array where you define your Consignment Item.
consignment_type_idInteger

The type of the Consignment Item being created. This can be any integer ranging from 1 to 8

idname
1Delivery
2Split
3Duplicate
4Returned
5Pickup
6Multileg Root
7Multileg Child
8Point to Point
9Pickup and Delivery (creates two consignments)
NoN/A

Sets what type of Consignment will be created upon parsing. e.g. If you provide an 8 then a Point To Point type Consignment will be created.

Consignment Type ID

prevent_automatic_groupingIntegerWhether or not the Customer wants to prevent Automatic Grouping on this ConsignmentNoN/AIf this value is set to 1 then it will stop this Consignment from being grouped with others when Automatic Grouping is performed as part of the Manifest Parsing
required_delivery_dateStringThe date the Customer wants this Consignment to be delivered by. Must be of the format "yyyy-mm-dd"NoN/ASets the required delivery date field on the Consignment. This overrides the Delivery date provided when this Consignment is assigned to a Delivery
cash_on_deliveryIntegerWhether this Consignment requires CODNoN/ASets this Consignment to require COD
cash_on_delivery_valueFloatThe value to be collected by the Driver when delivering this ConsignmentNoN/ASets the value to be collected on Delivery
barcode_numberStringThe Barcode Number that the Customer wants to assign to this ConsignmentNoN/ASets the Barcode Number on this Consignment as the specified value rather than getting an auto-generated one
special_instructionsStringAny instructions that the Customer wants the Tenant to follow when packing their Consignment for exampleNoN/ASet any special instructions that might need to be followed when packing this Consignment
delivery_run_idIntegerThe ID of the Delivery Run that the Customer wants to assign this Consignment toNoN/AAssigns this Consignment to the provided Delivery Run based on the provided ID
warehouse_idsIntegerThe IDs of the Warehouses this Consignment should belong to. This value should be provided in binary as it has bitwise comparisons run on itNoN/AAssigns this Consignment to the provided Warehouses based on the provided IDs
authority_to_leaveIntegerSet whether or not the Driver can leave the Consignment at the storeNoN/ATells the driver whether they are allowed to leave the Consignment at the store without anyone present
authority_to_leave_instructionsStringThe instructions for the Driver to follow should they be required to leave this Consignment at the store without anyone presentConditionalIf `authority_to_leave` Key is provided then this becomes requiredShows instructions to the driver when they need to leave a Consignment at the store without anyone present
driver_nameStringThe name of the Driver the Customer wants to assign this Consignment toConditionalIf the `uses_driver` key is set in the Manifest Definition (see Manifest Definition section above) then this field becomes requiredThe Consignment Item is assigned to a delivery run with the provided `driver_name` as the assigned driver
order_idIntegerThe sort order of this Consignment in the parsed ManifestNoN/AAssigns this Consignment to the given sortorder. The sortorder is used when displaying Manifests and Deliveries
DeliveryAddressArray

The DeliveryAddress should contain the below field Keys.

KeyTypeDescriptionRequired
address_company_nameStringThe name of the company receiving the deliveryYes
street_addressStringThe address the Consignment is being delivered toConditional (see `street_address` key Conditions)
suburbStringThe suburb/town the company receiving the delivery is inNo
stateStringThe state the company receiving the delivery is inNo
postcodeIntegerThe postcode of the region the company receiving the delivery is inNo
countryStringThe country where the company residesNo
address_stringStringThe concatenated company name and address components of the delivery. The form for this is ideally: `address_company_name`, `street_address`, `suburb`, `state`, `postcode`Conditional
ConditionalIf you have a `DeliveryAddress` key set in your Consignment Item then the `street_address` is no longer required. Otherwise if you do not define this key then you will need to provide the `street_address` valueThis address is saved as the Delivery type address for the Consignment. It is saved in the `consignment_addresses` table
PickupAddressArray

The PickupAddress should contain the below field Keys.

KeyTypeDescriptionRequired
address_company_nameStringThe name of the company receiving the deliveryYes
street_addressStringThe address the Consignment is being delivered toConditional (see `street_address` key Conditions)
suburbStringThe suburb/town the company receiving the delivery is inNo
stateStringThe state the company receiving the delivery is inNo
postcodeIntegerThe postcode of the region the company receiving the delivery is inNo
countryStringThe country where the company residesNo
address_stringStringThe concatenated company name and address components of the delivery. The form for this is ideally: `address_company_name`, `street_address`, `suburb`, `state`, `postcode`Conditional
ConditionalIf you have a `PickupAddress` key set in your Consignment Item then the `street_address` is no longer required.This address is saved as the Pickup type address for the Consignment. It is saved in the `consignment_addresses` table

Sale Order Parsers:

Sale Order Parser Definition
This definition contains the field Keys that are used for one of more complete Sale Orders which contains products.
KeyTypeDescriptionRequiredConditionsEffects
sale_ordersArrayContains the Sale Orders that have been parsed with their own different set of `items`ConditionalIf a `multiple` key is provided then this field becomes requiredN/A
itemsArrayContains the Sale Order Products that have been parsed with this Sale OrderYesN/AN/A
response_fileStringThe file that was parsed and is being returned with highlighting if there were errorsYesN/AN/A
response_file_nameStringThe name of the file that is being returned as part of the responseYesN/AN/A
multipleBooleanWhether or not there are multiple different Sale OrdersConditionalIf a `sale_orders` key is provided then this field becomes requiredSets whether or not we need to handle multiple different Sale Orders from the one Parsed file
resultBooleanWhether or not parsing succededYesN/ASets whether or not the file was Parsed successfully
customer_idIntegerThe ID of the Customer that this Sale Order is being assigned toNoN/AAssigns the Parsed Sale Order(s) to the provided Customer based on ID
warehouseStringThe name of the warehouse to import the Sale Order IntoNoN/AThe Warehouse in which the Sale Order is being imported into.
filenameStringThe name of the file being imported to generate this Sale OrderNoN/AN/A
commentsStringAny relevant comments about the overall Sale OrderNoN/ASets some comments for the Sale Order
Sale Order Definition
In Parsing a Sale Order contains a set of Sale Order Items (see Sale Order Item Definition below). Each Sale Order can have multiple Sale Order Product contained in its `items` Key
KeyTypeDescriptionRequiredConditionsEffects
customer_referenceStringThe Customer Reference for this Sale OrderYesN/ASets the customer_reference for this Sale Order
addressArray
KeyDescription
company_nameThe name of the company that is requesting this Sale Order
contact_nameThe name of the contact at the company that is requesting this Sale Order
streetThe address of the requesting company's store
suburbThe suburb of the requesting company's store
cityThe city of the requesting company's store
stateState, ie: QLD
postcodeie: 4220
countryOptional, defaults to "Default Country" configured in Tenant Settings
address_country_idId of the Address Country refer: Address Countries
address_zone_idid of the Address Zone, refer: Address Zones
ConditionalIf address_string key is not provided then this becomes requiredAssigns this address to the Sale Order
address_stringStringThe values of the address_company_name, street, suburb, city, state, and postcode elements imploded into a stringConditionalIf the address key is not provided then this becomes requiredLinks this Sale Order to an address based on the address string
customer_idIntegerThe ID of the Customer that this Sale Order is being assigned toNoN/AAssigns this Sale Order to the provided Customer based on ID
itemsArrayContains the list of Sale Order Products that belong to this Sale OrderYesN/AAny items stored in this array are part of this Sale Order
valueFloatThe value of this Sale Order, ie: $141.52YesN/ASets the value of this Sale Order
warehouse_idIntegerThe warehouses that the Customer would like this Sale Order to be assigned toNoN/AAssigns the Sale Order to the given Warehouse ID
commentsStringAny relevant comments for this Sale OrderNoN/ASets provided comments to the this Sale Order
delivery_run_idIntegerThe Delivery Run that the Customer wants this Sale Order to be assigned toNoN/ASets this Sale Order to be part of the provided Delivery Run
cash_on_deliveryIntegerWhether or not this Sale Order requires CODNoN/ASets whether the Driver needs to get COD
allow_partial_shipIntegerWhether or not to allow this Sale Order to be shipped with only a partial amount of stock packedNoN/AAllows this Sale Order to be partially shipped meaning that not all the requested stock has been packed
delivery_instructionStringAny instructions for the Driver when delivering this Sale OrderNoN/ASets Delivery instructions for the Driver that is delivering this Sale Order
packing_instructionStringAny instructions for the Tenant when packing this Sale OrderNoN/ASets packing instructions for the Tenant that is packing this Sale Order
required_delivery_dateStringThe date that the Customer wants this Sale Order delivered byNoN/ASets this Sale Orders delivery date to be the one provided
required_ship_dateStringThe date that the Customer wants this Sale Order to ship byNoN/ASets this Sale Orders ship date
json_dataStringSome JSON formatted data to be stored against the Sale OrderNoN/AN/A
filenameStringThe name of the file being imported to generate this Sale OrderNoN/AN/A
pickupBooleanWhether or not the Sale Order is being collected from the WarehouseNoN/AIf set to true, the Sale Order will be set to be picked up from the Warehouse, meaning any Consignments generated from the Sale Order will be added to the Pickup from Warehouse Delivery Run.
order_urgentBooleanWhether or not the Sale Order is urgentNoN/AIf set to true, the Sale Order will be marked Urgent. This will make it appear further up the lists and charge additional 'urgent_order' fees (if enabled in Customer Charges).
Sale Order Item Definition
Sale Order Items are references to Products in the system that contain quantities and the type of measurement that is required by the Customer.
KeyTypeDescriptionRequired
ITEM_NOStringThe code of a `Product` within the systemYes
DESCRIPTIONStringNormally the name of the `Product` within the system. Used as a more easily identifiable referenceNo
QTYFloatThe quantity of the given product that the Customer would likeYes
UNITStringThe unit of measurement that they would like the quantity to be in.
If not supplied ensure that `use_base_unit_of_measure` is true. 
No
use_base_unit_of_measureBooleanAlternative to providing UNIT, if this field is set to true then the Base Unit Of Measure of the product will be used. This is useful if a company is handling multiple measurements such as: Bottles, Kegs, Cartons etc and don't want the customer to have to specifyYes
search_field_valueString or Integer based on the provided `search_field_name` keyThe value that the Customer wants to search for available stocks withNo
search_field_nameString

The `search_field_name` can be one of the following Keys.

KeyDescriptionRequired
expiry_dateWhether to search for available stocks based on the given `expiry_date`. For this key a String value would be provided of the format "yyyy-mm-dd"No
purchase_order_product_idWhether to search for available stocks using the given purchase_order_product_id. For this key an Integer value would be providedNo
No


Purchase Order Parsers:

Purchase Order Definition
Purchase Order Parsers can currently only parse individual Purchase Orders unlike Sale Order Parsers which can parse multiple individual Sale Orders if the correct parameters are given. As such a Purchase Order in parsing is just a single Purchase Order with its associated Purchase Order Products.
KeyTypeDescriptionRequiredConditionsEffects
invoiceStringUsed as customer_reference when parsingYesN/ASets the `customer_reference` value for this Purchase Order
customer_idIntegerThe ID of the customer the Purchase Order should be assigned toNoN/AAssigns this Purchase Order to the provided Customer ID
warehouse_idIntegerThe ID of the Warehouse the Purchase Order should be assigned toNoN/AAssigns this Purchase Order to the provided Warehouse ID
itemsArrayThe list of Purchase Order Items that have been parsedYesN/AN/A
purchase_order_history_status_idIntegerThe ID of the Status that this Purchase Order should be parsed withNoN/ASets the Purchase Order to the provided Status based on the value
arrival_dateStringThe date and time the Purchase Order should arrive at the Warehouse. Should be of the format "yyyy-mm-dd H:i:s"NoN/ASets the date this Purchase Order should arrive at the Warehouse
special_instructionStringAny relevant special instructions for this Purchase OrderNoN/ASets the instructions for this Purchase Order
commentsStringAny relevant comments for this Purchase OrderNoN/ASets the comments for this Purchase Order
adjustmentIntegerWhether or not this Purchase Order is being adjustedNoN/ASets whether this Purchase Order has been adjusted
filenameStringThe name of the file being provided to the ParserNoN/AN/A
response_fileStringThe file that may have been colour coded if there was an error during parsingYesN/AN/A
response_file_nameStringThe name of the file that is returned by the ParserYesN/AN/A
response_htmlStringThe error or success message to be shown to the user upon completion of parsingYesN/AN/A
resultBooleanTells the Parser whether or not the the provided file was successfully parsedYesN/ASets whether or not the provided file was successfully parsed
Purchase Order Product Definition

Purchase Order Products are references to Products in the system that contain quantities and the type of measurement being provided by the Customer. They represent stock that is coming into the Warehouse from the Customer.

KeyTypeDescriptionRequired
ITEM_NOStringThe code of a `Product` within the systemYes
DESCRIPTIONStringNormally the name of the `Product` within the system. Used as a more easily identifiable referenceYes
QTYFloatThe quantity of the given product that the Customer is sending to the WarehouseYes
UNITStringThe Unit of Measurement that the Customer is sending the quantity inYes
WAREHOUSE_LOCATIONStringThe Warehouse that this Purchase Order Product should be stored inNo
EXPIRY_DATEStringThe Expiry Date that this Purchase Order Product hasNo
  • No labels