Skip to main content

Purchase Orders

The Purchase Orders module provides access to contextual information about the current purchase order when a widget is rendered within supported purchase order–related pages. Widgets can retrieve purchase order identifiers, vendor details, and fulfillment-related metadata for use in validations, conditional logic, and UI extensions.

Methods

Get Purchaseorder Details

Retrieves data related to the current context. This method allows your widget to fetch record details, field values, or metadata required for rendering or processing logic.

Commonly used for :
  • Fetch record information
  • Read field values
  • Access contextual module data
Supported Locations :
purchaseorder.creation.sidebarpurchaseorder.details.sidebarpurchaseorder.lineitem.addpurchaseorder.details.button
Sample Code :
REQUEST DETAILS
window.onload = function () {
  ZFAPPS.extension.init().then(function(App) {
    ZFAPPS.get('purchaseorder').then(function (data) {
     //response Handling
    }).catch(function (err) {
     //error Handling
    });
  });
}
Supported Input Keys :
PropertyRequest
autonumbergenerationgroup_idpurchaseorder.autonumbergenerationgroup_id
location_idpurchaseorder.location_id
vendor_idpurchaseorder.vendor_id
contact_personspurchaseorder.contact_persons
purchaseorder_numberpurchaseorder.purchaseorder_number
adjustmentpurchaseorder.adjustment
adjustment_descriptionpurchaseorder.adjustment_description
reference_numberpurchaseorder.reference_number
datepurchaseorder.date
delivery_datepurchaseorder.delivery_date
Show More Supported Input Keys
PropertyRequest
exchange_ratepurchaseorder.exchange_rate
discountpurchaseorder.discount
discount_account_idpurchaseorder.discount_account_id
is_discount_before_taxpurchaseorder.is_discount_before_tax
discount_typepurchaseorder.discount_type
custom_fieldspurchaseorder.custom_fields
ship_viapurchaseorder.ship_via
line_itemspurchaseorder.line_items
notespurchaseorder.notes
notes_defaultpurchaseorder.notes_default
is_backorderpurchaseorder.is_backorder
termspurchaseorder.terms
pricebook_idpurchaseorder.pricebook_id
next_actionpurchaseorder.next_action
terms_defaultpurchaseorder.terms_default
delivery_org_address_idpurchaseorder.delivery_org_address_id
delivery_customer_idpurchaseorder.delivery_customer_id
delivery_customer_address_idpurchaseorder.delivery_customer_address_id
salesorder_idpurchaseorder.salesorder_id
is_drop_shipmentpurchaseorder.is_drop_shipment
tax_reg_nopurchaseorder.tax_reg_no
taxespurchaseorder.taxes
tax_overridepurchaseorder.tax_override
tax_override_preferencepurchaseorder.tax_override_preference
tds_override_preferencepurchaseorder.tds_override_preference
tds_taxespurchaseorder.tds_taxes
template_idpurchaseorder.template_id
is_update_customerpurchaseorder.is_update_customer
is_inclusive_taxpurchaseorder.is_inclusive_tax
crm_owner_idpurchaseorder.crm_owner_id
billing_address_idpurchaseorder.billing_address_id
shipping_address_idpurchaseorder.shipping_address_id
documentspurchaseorder.documents
gst_treatmentpurchaseorder.gst_treatment
gst_nopurchaseorder.gst_no
source_of_supplypurchaseorder.source_of_supply
destination_of_supplypurchaseorder.destination_of_supply
tax_treatmentpurchaseorder.tax_treatment
place_of_supplypurchaseorder.place_of_supply
payment_termspurchaseorder.payment_terms
payment_terms_labelpurchaseorder.payment_terms_label
tds_tax_idpurchaseorder.tds_tax_id
tds_amountpurchaseorder.tds_amount
is_tds_amount_in_percentpurchaseorder.is_tds_amount_in_percent
tcs_tax_idpurchaseorder.tcs_tax_id
tcs_amountpurchaseorder.tcs_amount
is_tcs_amount_in_percentpurchaseorder.is_tcs_amount_in_percent
is_adv_tracking_in_receivepurchaseorder.is_adv_tracking_in_receive

Set Purchaseorder Details

Updates or sets data within the current context. This method allows your widget to modify field values, update state, or pass data back to the host application.

Commonly used for :
  • Update field values
  • Set widget or module state
  • Pass data to the parent application
Supported Locations :
purchaseorder.creation.sidebarpurchaseorder.lineitem.add
Sample Code :
REQUEST DETAILS
window.onload = function () {
  ZFAPPS.extension.init().then(function(App) {
    ZFAPPS.set('purchaseorder.name', <value>).then(function (data) {
     //response Handling
    }).catch(function (err) {
     //error Handling
    });
  });
}
Supported Input Keys :
PropertyRequest
autonumbergenerationgroup_idpurchaseorder.autonumbergenerationgroup_id
location_idpurchaseorder.location_id
vendor_idpurchaseorder.vendor_id
contact_personspurchaseorder.contact_persons
purchaseorder_numberpurchaseorder.purchaseorder_number
adjustmentpurchaseorder.adjustment
adjustment_descriptionpurchaseorder.adjustment_description
reference_numberpurchaseorder.reference_number
datepurchaseorder.date
delivery_datepurchaseorder.delivery_date
Show More Supported Input Keys
PropertyRequest
exchange_ratepurchaseorder.exchange_rate
discountpurchaseorder.discount
discount_account_idpurchaseorder.discount_account_id
is_discount_before_taxpurchaseorder.is_discount_before_tax
discount_typepurchaseorder.discount_type
custom_fieldspurchaseorder.custom_fields
ship_viapurchaseorder.ship_via
line_itemspurchaseorder.line_items
notespurchaseorder.notes
notes_defaultpurchaseorder.notes_default
is_backorderpurchaseorder.is_backorder
termspurchaseorder.terms
pricebook_idpurchaseorder.pricebook_id
next_actionpurchaseorder.next_action
terms_defaultpurchaseorder.terms_default
delivery_org_address_idpurchaseorder.delivery_org_address_id
delivery_customer_idpurchaseorder.delivery_customer_id
delivery_customer_address_idpurchaseorder.delivery_customer_address_id
salesorder_idpurchaseorder.salesorder_id
is_drop_shipmentpurchaseorder.is_drop_shipment
tax_reg_nopurchaseorder.tax_reg_no
taxespurchaseorder.taxes
tax_overridepurchaseorder.tax_override
tax_override_preferencepurchaseorder.tax_override_preference
tds_override_preferencepurchaseorder.tds_override_preference
tds_taxespurchaseorder.tds_taxes
template_idpurchaseorder.template_id
is_update_customerpurchaseorder.is_update_customer
is_inclusive_taxpurchaseorder.is_inclusive_tax
crm_owner_idpurchaseorder.crm_owner_id
billing_address_idpurchaseorder.billing_address_id
shipping_address_idpurchaseorder.shipping_address_id
documentspurchaseorder.documents
gst_treatmentpurchaseorder.gst_treatment
gst_nopurchaseorder.gst_no
source_of_supplypurchaseorder.source_of_supply
destination_of_supplypurchaseorder.destination_of_supply
tax_treatmentpurchaseorder.tax_treatment
place_of_supplypurchaseorder.place_of_supply
payment_termspurchaseorder.payment_terms
payment_terms_labelpurchaseorder.payment_terms_label
tds_tax_idpurchaseorder.tds_tax_id
tds_amountpurchaseorder.tds_amount
is_tds_amount_in_percentpurchaseorder.is_tds_amount_in_percent
tcs_tax_idpurchaseorder.tcs_tax_id
tcs_amountpurchaseorder.tcs_amount
is_tcs_amount_in_percentpurchaseorder.is_tcs_amount_in_percent
is_adv_tracking_in_receivepurchaseorder.is_adv_tracking_in_receive

Set Purchaseorder customfields

Specifically designed to update custom field values within the current context. This method allows your widget to target and modify custom fields without affecting standard fields, ensuring precise data management.

Commonly used for :
  • Update custom field values
  • Manage user-defined data points
  • Ensure targeted updates to specific fields
Supported Locations :
purchaseorder.creation.sidebar
Sample Code :
REQUEST DETAILS
window.onload = function () {
  ZFAPPS.extension.init().then(function(App) {
    ZFAPPS.set('purchaseorder.<custom_field_api_name>',<value>).then(function (data) {
     //response Handling
    }).catch(function (err) {
     //error Handling
    });
  });
}

Get Line Items

This method allows you to retrieve the line items associated with the current purchase order. It can be used to fetch details such as product information, quantity, rate, and total for each line item. This is particularly useful when you want to display or utilize the purchase order's line item details within your widget or extension.

Supported Locations :
purchaseorder.creation.sidebarpurchaseorder.lineitem.add
Sample Code :
REQUEST DETAILS
window.onload = function () {
  ZFAPPS.extension.init().then(function(App) {
    ZFAPPS.get('purchaseorder.line_items').then(function (res) {
      console.log('purchaseorder line items : ', res);
    }).catch(function (err) {
      console.log('Error while fetching purchaseorder line items : ', err);
    });
  });
}
Supported Input Keys :
PropertyRequest
item_iditem_id
line_item_idline_item_id
account_idaccount_id
namename
descriptiondescription
item_custom_fieldsitem_custom_fields
item_orderitem_order
raterate
quantityquantity
tax_idtax_id
Show More Supported Input Keys
PropertyRequest
tax_exemption_codetax_exemption_code
tax_exemption_idtax_exemption_id
product_typeproduct_type
discountdiscount
discountsdiscounts
acquisition_tax_idacquisition_tax_id
reverse_charge_tax_idreverse_charge_tax_id
tagstags
hsn_or_sachsn_or_sac
warehouse_idwarehouse_id
location_idlocation_id
gst_treatment_codegst_treatment_code
tax_treatment_codetax_treatment_code
project_idproject_id
salesorder_item_idsalesorder_item_id
pricebook_idpricebook_id
header_nameheader_name
header_idheader_id
unitunit
unit_conversion_idunit_conversion_id
tds_tax_idtds_tax_id
purchase_request_itemspurchase_request_items
quote_awarded_item_linkquote_awarded_item_link
product_tax_categoryproduct_tax_category
replenishment_task_idreplenishment_task_id
tax_selection_modetax_selection_mode
line_item_taxesline_item_taxes
line_item_tdsline_item_tds

Set Line Items

This methods is to allowed for set a list of line items in the current purchase order. It can be used to set details such as product information, quantity, rate, and total for multiple line items. This is particularly useful when you want to update or set multiple line items details within your widget or extension.This methods is append the line items to the existing line items in the purchase order.

Supported Locations :
purchaseorder.creation.sidebarpurchaseorder.lineitem.add
Sample Code :
REQUEST DETAILS
window.onload = function () {
  ZFAPPS.extension.init().then(function(App) {
    var lineItemMetaData =[{'rate':'1000','description':'Table','name':'Table'},{'rate':'1000','description':'Monitor','name':'Monitor'}]
    ZFAPPS.set('purchaseorder.line_items',lineItemMetaData).then(function (res) {
      console.log('purchaseorder line items : ', res);
    }).catch(function (err) {
      console.log('Error while fetching purchaseorder line items : ', err);
    });
  });
}
Supported Input Keys :
PropertyRequest
item_iditem_id
line_item_idline_item_id
account_idaccount_id
namename
descriptiondescription
item_custom_fieldsitem_custom_fields
item_orderitem_order
raterate
quantityquantity
tax_idtax_id
Show More Supported Input Keys
PropertyRequest
tax_exemption_codetax_exemption_code
tax_exemption_idtax_exemption_id
product_typeproduct_type
discountdiscount
discountsdiscounts
acquisition_tax_idacquisition_tax_id
reverse_charge_tax_idreverse_charge_tax_id
tagstags
hsn_or_sachsn_or_sac
warehouse_idwarehouse_id
location_idlocation_id
gst_treatment_codegst_treatment_code
tax_treatment_codetax_treatment_code
project_idproject_id
salesorder_item_idsalesorder_item_id
pricebook_idpricebook_id
header_nameheader_name
header_idheader_id
unitunit
unit_conversion_idunit_conversion_id
tds_tax_idtds_tax_id
purchase_request_itemspurchase_request_items
quote_awarded_item_linkquote_awarded_item_link
product_tax_categoryproduct_tax_category
replenishment_task_idreplenishment_task_id
tax_selection_modetax_selection_mode
line_item_taxesline_item_taxes
line_item_tdsline_item_tds

Set Single Line Items

This methods is to allowed for setting/updating a single line item in the current purchase order. It can be used to set details such as product information, quantity, rate, and total for a single line item. This is particularly useful when you want to update or set a single line item details within your widget or extension.

Supported Locations :
purchaseorder.creation.sidebarpurchaseorder.lineitem.add
Sample Code :
REQUEST DETAILS
window.onload = function () {
  ZFAPPS.extension.init().then(function(App) {
    ZFAPPS.set('purchaseorder.line_items[0]',{'rate':'1000'}).then(function (res) {
      console.log('purchaseorder line item rate : ', res);
    }).catch(function (err) {
      console.log('Error while fetching purchaseorder line item rate : ', err);
    });
  });
}
Supported Input Keys :
PropertyRequest
item_iditem_id
line_item_idline_item_id
account_idaccount_id
namename
descriptiondescription
item_custom_fieldsitem_custom_fields
item_orderitem_order
raterate
quantityquantity
tax_idtax_id
Show More Supported Input Keys
PropertyRequest
tax_exemption_codetax_exemption_code
tax_exemption_idtax_exemption_id
product_typeproduct_type
discountdiscount
discountsdiscounts
acquisition_tax_idacquisition_tax_id
reverse_charge_tax_idreverse_charge_tax_id
tagstags
hsn_or_sachsn_or_sac
warehouse_idwarehouse_id
location_idlocation_id
gst_treatment_codegst_treatment_code
tax_treatment_codetax_treatment_code
project_idproject_id
salesorder_item_idsalesorder_item_id
pricebook_idpricebook_id
header_nameheader_name
header_idheader_id
unitunit
unit_conversion_idunit_conversion_id
tds_tax_idtds_tax_id
purchase_request_itemspurchase_request_items
quote_awarded_item_linkquote_awarded_item_link
product_tax_categoryproduct_tax_category
replenishment_task_idreplenishment_task_id
tax_selection_modetax_selection_mode
line_item_taxesline_item_taxes
line_item_tdsline_item_tds

Set Bulk Line Items

This methods is to allowed for replacing/updating all the existing line items in the current purchase order. It can be used to set details such as product information, quantity, rate, and total for multiple line items. This is particularly useful when you want to update or set multiple line items details within your widget or extension.

Supported Locations :
purchaseorder.creation.sidebarpurchaseorder.lineitem.add
Sample Code :
REQUEST DETAILS
window.onload = function () {
  ZFAPPS.extension.init().then(function(App) {
    var lineItemMetaData =[{'rate':'1000','description':'Table','name':'Table'},{'rate':'1000','description':'Monitor','name':'Monitor'}]
    ZFAPPS.set('purchaseorder.line_items.bulk_update',lineItemMetaData).then(function (res) {
      console.log('purchaseorder line items : ', res);
    }).catch(function (err) {
      console.log('Error while fetching purchaseorder line items : ', err);
    });
  });
}
Supported Input Keys :
PropertyRequest
item_iditem_id
line_item_idline_item_id
account_idaccount_id
namename
descriptiondescription
item_custom_fieldsitem_custom_fields
item_orderitem_order
raterate
quantityquantity
tax_idtax_id
Show More Supported Input Keys
PropertyRequest
tax_exemption_codetax_exemption_code
tax_exemption_idtax_exemption_id
product_typeproduct_type
discountdiscount
discountsdiscounts
acquisition_tax_idacquisition_tax_id
reverse_charge_tax_idreverse_charge_tax_id
tagstags
hsn_or_sachsn_or_sac
warehouse_idwarehouse_id
location_idlocation_id
gst_treatment_codegst_treatment_code
tax_treatment_codetax_treatment_code
project_idproject_id
salesorder_item_idsalesorder_item_id
pricebook_idpricebook_id
header_nameheader_name
header_idheader_id
unitunit
unit_conversion_idunit_conversion_id
tds_tax_idtds_tax_id
purchase_request_itemspurchase_request_items
quote_awarded_item_linkquote_awarded_item_link
product_tax_categoryproduct_tax_category
replenishment_task_idreplenishment_task_id
tax_selection_modetax_selection_mode
line_item_taxesline_item_taxes
line_item_tdsline_item_tds

Set Line Items Customfields

This method is allowed for setting/updating custom fields for line items in the purchase order. It can be used to set details such as product information, quantity, rate, total, and custom field values for multiple line items. This is particularly useful when you want to update or set multiple line items details along with their custom field values within your widget or extension.

Supported Locations :
purchaseorder.creation.sidebarpurchaseorder.lineitem.add
Sample Code :
REQUEST DETAILS
window.onload = function () {
  ZFAPPS.extension.init().then(function(App) {
    var lineItemMetaData =[{'rate':'1000','description':'Table','name':'Table','item_custom_fields':[{'api_name':'<line_item_custom_field_name>', 'value':'<value>'}]}]
    ZFAPPS.set('purchaseorder.line_items',lineItemMetaData).then(function (res) {
      console.log('purchaseorder line items : ', res);
    }).catch(function (err) {
      console.log('Error while fetching purchaseorder line items : ', err);
    });
  });
}
Supported Input Keys :
PropertyRequest
item_iditem_id
line_item_idline_item_id
account_idaccount_id
namename
descriptiondescription
item_custom_fieldsitem_custom_fields
item_orderitem_order
raterate
quantityquantity
tax_idtax_id
Show More Supported Input Keys
PropertyRequest
tax_exemption_codetax_exemption_code
tax_exemption_idtax_exemption_id
product_typeproduct_type
discountdiscount
discountsdiscounts
acquisition_tax_idacquisition_tax_id
reverse_charge_tax_idreverse_charge_tax_id
tagstags
hsn_or_sachsn_or_sac
warehouse_idwarehouse_id
location_idlocation_id
gst_treatment_codegst_treatment_code
tax_treatment_codetax_treatment_code
project_idproject_id
salesorder_item_idsalesorder_item_id
pricebook_idpricebook_id
header_nameheader_name
header_idheader_id
unitunit
unit_conversion_idunit_conversion_id
tds_tax_idtds_tax_id
purchase_request_itemspurchase_request_items
quote_awarded_item_linkquote_awarded_item_link
product_tax_categoryproduct_tax_category
replenishment_task_idreplenishment_task_id
tax_selection_modetax_selection_mode
line_item_taxesline_item_taxes
line_item_tdsline_item_tds