The item_codes table stores all item identifiers, both local and foreign. If you truncated the table you have empty item selector in Sales module. This table is required to keep in the same place both local (stock) and foreign codes (like barcodes printed on packages). This way all the codes can be used in sales invoice entry. No need to have each item in stock_master also in item_codes, but uncheck the Edit Description for the Items.

  • The long_description in stock_master is only for internal use.
  • If you have a description with is_foreign set (in the Foreign Item Code), this one will be used, otherwise the stock_master table's field description will be shown.
  • Forum Post: As of now, the foreign codes are used only in sales entry as aliases for the stock_id. Foreign item codes has been introduced to enable EAN codes instead of internal codes during counter sale. This is auxiliary numbering which is less useful on purchase side, where purchase staff use company item codes, which eventually should be translated to supplier codes (this is not implemented yet).


  • select item using item code or choosing from drop down list
  • fill in the form
  • click Add New

Tips and Tricks

Foreign item codes will appear on drop down list in sales invoice together with other items. When selecting a Foreign Item Code on an invoice, Sales Order or Quotation the code is replaced by associated item.