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.