{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-rest/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"POS Integrations","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"pos-integrations","__idx":0},"children":["POS Integrations"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"planning-your-pos-integration","__idx":1},"children":["Planning Your POS Integration"]},{"$$mdtype":"Tag","name":"details","attributes":{"id":"PosIntegr-Methods"},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[" Integration Methods (API, file transfer, etc.)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This document focuses on Yellow Dog's Fetch API as a means to integrate your own POS"," ","with Yellow Dog's Inventory system."," ","You may also wish to consider the following alternatives to the Fetch API approach:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["There are tools to exchange data via CSV files. For example, ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/sales-file/home"},"children":["Yellow Dog's Sales Sync"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If you have your own API, Yellow Dog may be able to build a custom integration for your POS."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Contact ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"mailto:sales@yellowdogsoftware.com"},"children":["sales@yellowdogsoftware.com"]}," to discuss your options."]}]},{"$$mdtype":"Tag","name":"details","attributes":{"id":"PosIntegr-Types"},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[" Integration Types (one-way vs. two-way) "]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All POS integrations need to submit sales to Yellow Dog so that their impact"," ","on inventory can be computed."," ","The difference between one-way and two-way integration is how the POS and inventory"," ","system come to agree on which inventory items are affected by each sales transaction."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In one-way integrations, the client tells the POS what items are for sale and the"," ","inventory system finds out about those items as they appear in sales transactions."," ","Every time a new item appears in a transaction, the inventory system adds it to a list"," ","of unconfirmed items and the client must manually confirm whether it should be treated"," ","as a new item or mapped to an item or recipe that it already knows about."," ","See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#about-item-mapping-in-one-way-pos-integrations"},"children":["About Item Mapping ..."]}," below."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In two-way integrations, the POS asks the inventory system for all relevant item data"," ","before it is made available for sale."," ","The POS can then refer to those items using the inventory system's own identifiers thus"," ","saving the client from some of the manual labor involved in a one-way integration."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-to-integrate-your-pos-via-the-fetch-api","__idx":2},"children":["How to Integrate Your POS via the Fetch API"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"submit-sales","__idx":3},"children":["Submit Sales"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Both One-Way and Two-Way POS integrations submit sales transactions to Yellow Dog"," ","for computing the impact of sales on inventory."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/rest/user-guide/05-pos-integrations/submit-sales"},"children":["How to submit sales to Yellow Dog via the Fetch API"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pull-items","__idx":4},"children":["Pull Items"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Two-Way POS integrations assume that Yellow Dog will serve as the source of truth for item data."," ","When a POS pulls item data from Yellow Dog, it will be able to refer to items using"," ","Yellow Dog's item identifiers such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sku"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["upc"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["item.id"]},"."," ","The POS may also define item annotation requirements to add POS specific"," ","information to the item data."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/rest/user-guide/05-pos-integrations/pull-items"},"children":["How to pull item data from Yellow Dog via the Fetch API"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/rest/user-guide/05-pos-integrations/item-annotation"},"children":["How to include POS specific item annotations"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"about-item-mapping-in-one-way-pos-integrations","__idx":5},"children":["About Item Mapping in One-Way POS Integrations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Since One-Way POS integrations do not pull item data from Yellow Dog, they cannot rely"," ","on the inventory system to serve as the source of truth for this information."," ","Instead, the customer will enter their item descriptions directly into the POS system"," ","and rely on the POS to generate its own unique codes to identify the items."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Later, when items are sold and the sales transactions are submitted to Yellow Dog,"," ","the inventory system can either apply a matching process to map sold items to the"," ","items it knows about or generate new item records for any items it does not"," ","recognize."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Yellow Dog maintains something called an Item Mapping Table as a place to record"," ","the POS generated item identifiers in an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["itemNumber"]}," field and associate it with"," ","either a Yellow Dog item record or recipe. The workflow for accepting unrecognized"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["itemNumber"]}," values from sales transactions and approving new item records or creating"," ","links to existing items or recipes is a manual process for the customer."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["While useful to understand how the Yellow Dog Item Mapping process works, the POS"," ","does not have any direct responsibility with it other than to maintain consistent"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["itemNumber"]}," values for items referenced in sales transactions."]}]},"headings":[{"value":"POS Integrations","id":"pos-integrations","depth":1},{"value":"Planning Your POS Integration","id":"planning-your-pos-integration","depth":2},{"value":"How to Integrate Your POS via the Fetch API","id":"how-to-integrate-your-pos-via-the-fetch-api","depth":2},{"value":"Submit Sales","id":"submit-sales","depth":3},{"value":"Pull Items","id":"pull-items","depth":3},{"value":"About Item Mapping in One-Way POS Integrations","id":"about-item-mapping-in-one-way-pos-integrations","depth":3}],"frontmatter":{"seo":{"title":"POS Integrations"}},"lastModified":"2026-04-14T14:31:09.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/rest/user-guide/05-pos-integrations","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}