prebook.create
This method allows you to add a Prebook order to Komet Sales. Using this method you can create one of the following:
Prebook header only.
Prebook with header and product(s).
Prebook with header and product(s) with a breakdown(s).
Orders created through this method are subject to a transaction fee of 1.5%.
Request
URL: https://api.kometsales.com/api/prebook.create
Method: POST
Content-Type: application/JSON
Input Parameters
authenticationToken (required) (string:50): Komet Sales security token.
customerId (required: if customerCode is not given) (integer:20): customer ID. You can obtain this value from the customer.list API method.
customerCode (required: if customerId is not given) (string:20): customer code.
customerDescription (required: if customerId is not given) (string:200): customer name.
carrierId (required: if carrierCode is not given) (integer:20) : carrier ID. You can obtain this value from the carrier.list API method.
carrierCode (required: if carrierId is not given) (string:20) : carrier code.
carrierDescription (required: if carrierId is not given) (string:200) : carrier name.
shipDate (required) (date): shipping date (date format YYYY-MM-DD).
createdBy (optional) (integer:20): Id of the user that created the order. This value represents the owner ID in Komet Sales.
shipViaId (logical)(integer:1): ship via ID. The ID of the location where the product will be shipped from. Assign 0 for warehouse or 1 for the grower.
customerPO (optional)(string:20): customer purchase order.
isEcommerce (optional)(integer:1): 1 when it is an E-commerce order, 0 when it is a Phone / Regular order.
useExisting (optional) (integer:1): 1 to add the items to an existing Prebook with the same location, carrier, truck date, customer, and customer PO# and ship to (if applicable). Enter 0 to create a new Prebook. By default will be 0.
comments (optional)(string:200): special instructions or comments.
autoGeneratePOsfromPrebooks (optional)(integer:1): specify 1 if you want the system to automatically generate the purchase orders. Default = 0. If this value is 1, the vendor and costs must be specified. The orders created will be left as Approved.
autoAllocate (optional)(integer:1): specify 1 if you want the system to automatically allocate the prebook that was just created with products from the inventory. Default = 0. The system will apply the same rules that the Mass Allocations process has. Only products with ages between 0 and 5 days will be taken in account.
status (optional) (varchar:50): the status of the prebook. Only works when the Prebook Status setting is enabled.
companyLocationCode (required: if the company is Multi-Location)(string:20): Location code.
prebookItems: array of products:
identifier (optional)(string:30): use this field if you want to identify your lines and receive the same value in the response.
vendorId (optional)(integer:20): vendor or grower ID. You can obtain this value from vendor.list API method.
vendorCode (optional)(string:20): vendor or grower code, if vendorId is not given.
vendorName (optional)(string:200): vendor or grower name, if vendorId is not given.
productId (required: if productCode is not given)(integer:20): product ID. You can obtain this value from the product.list API method.
productCode (required: if productId is not given)(string:20): code of the product.
productDescription (required: if productId is not given)(string:200): description of the product.
orderSource (optional)(string:20): The source of the product.
itemType (string 3): the item type. Possible values: BOX or UN (unit). By default will be BOX.
boxTypeId (required if boxTypeCode is not given and the itemType is box)(integer:20): box type ID. You can obtain this value from the boxtype.list API method.
boxTypeCode (required: if boxTypeId is not given and the itemType is box)(string:3): code of the box type.
boxTypeDescription (required: if boxTypeId is not given and the itemType is box)(string:3): name of the box type.
boxes (required if the itemType is BOX) (integer:10): number of boxes.
totalUnits (required if the itemType is UN) (integer:10): number of units.
unitType (required) (string:5): stem or bunch are the unique valid values.
bunches (required if the itemType is BOX) (integer:10): number of bunches per box
stemsBunch (required if the itemType is box) (integer:10): stems per bunch. You can leave this field empty for mixed boxes.
price (optional) (decimal:10,2): weighted average unit price. When unitType is bunch you must use the bunch price. When unitType is stem you must use the stem price.
cost (optional) (decimal:10,2): weighted average unit cost. When unitType is bunch you must use the bunch cost. When unitType is stem you must use the stem cost. If the token used belongs to a vendor, this field will be accepted if the vendor has the Allow changing cost option enabled.
markCode (optional)(string:50): mark code for item.
notes (optional)(string:1000): any additional notes.
futureSalesPoNumber (optional)(string:7): future sales purchase order number where the product belongs from. E.g.: P057116. Please take in account that the PO # should be the exactly same number that the system has, this means the order 57116 is not the same order that P057116.
breakdowns (optional): array of product breakdowns:
productId (required: if productCode is not given) (integer:20): product ID. You can obtain this value from the product.list API method.
productCode (required: if productId is not given)(string:20): code of the product.
productDescription (required: if productId is not given)(string:200): description of the product.
bunches (required) (integer:10): bunches per box.
stemsBunch (required) (integer:10): stems for bunch.
cost (required)(decimal:10,2): when unitType is bunch you must use the bunch cost. When unitType is stem you must use the stem cost. If the token used belongs to a vendor, this field will be accepted if the vendor has the Allow changing cost option enabled.
price (required for tokens type company)(decimal:10,2): when unitType is bunch you must use the bunch price. When unitType is stem you must use the stem price.
You can only use customerId and customerCode, or customerName at a time. We recommend you to use the customerId which can be obtained from the customer.list API method.
You can use either carrierName and carrierId or carrierCode at a time. We recommend you to use the carrierId which can be obtained from the carrier.list API method.
Sample Request
{
"authenticationToken": "token_info_goes_here",
"customerId": 9999,
"customerPO": "PO4534",
"shipToId": 999,
"carrierId": 1878,
"shipDate": "2014-04-10",
"comments": "Comments or special instructions",
"prebookItems": [
{
"vendorId": 999,
"productId": 999,
"boxTypeId": 900,
"orderSource": "phone call",
"unitType": "Stem",
"boxes": 5,
"bunches": 10,
"stemsBunch": 2,
"cost": 0.7,
"price": 2.5,
"markCode": "text for mark code",
"notes": "text for notes",
"breakdowns": [
{
"productId": 999,
"bunches": 2,
"stemsBunch": 3,
"cost": 0.75,
"price": 1.5,
"identifier": "02343678"
}
]
}
]
}
Response
Output
status (integer:1): transaction status. 1 for success or 0 for failure.
message (string:500): description of the status of the transaction.
prebookId (integer:20): prebook ID.
prebookNumber (integer:10): prebook number.
purchaseOrderNumbers (string:200) PO numbers separated by commas, if autoGeneratePOsfromPrebooks is given.
items (array)
identifier (string:20). The value that identifies the line. This is the same value of the request, if it was given.
status: (integer:1): transaction status. 1 for success or 0 for failure.
message (string:500): description of the status of the transaction.
prebookItemId (integer:10) ID of the product line that was added to the order.
productId (integer:20) (if productId was given).
productCode (string:20) (if productCode was given).
futureSalesPoNumber (string:7) (if futureSalesPoNumber was given).
availableBoxes (integer:10): number of boxes that are available if futureSalesPoNumber was given.
Sample Response
{
"status": "1",
"message": "Prebook was successfully created.",
"prebookId": 2543545,
"prebookNumber": 4343,
"purchaseOrderNumbers": "",
"items": [
{
"productId": 999,
"status": 1,
"message": "Item successfully added to the order",
"prebookItemId": 3427612,
"identifier": "02343678"
}
]
}
Sample Response
{
"status": 1,
"message": "Prebook was successfully created. All the purchase orders were successfully created",
"prebookId": 1640006,
"prebookNumber": "010225",
"purchaseOrderNumbers": "P002989, P002990",
"items": [
{
"productId": 999,
"status": 1,
"prebookItemId": 3427612,
"message": "Item successfully added to the order"
},
{
"productCode": "RF567",
"status": 1,
"prebookItemId": 3427612,
"futureSalesPoNumber": "P012345",
"availableBoxes": 2,
"message": "Item successfully added to the order"
}
]
}
Valid Tokens: Company and Vendor.