Overview

The integration with Shift4 Dine is a 1-Way interface where Yellow Dog Inventory pulls sales data and reduces inventory levels based on transactions from Shift4’s API using SyncYdiWithMicrosServices.

Sync Approach

This interface contains multiple elements:

  • The Yellow Dog API pulls sales transactions from the Shift4 API

  • The Yellow Dog Process sales application matches transactions, depletes inventory levels, and updates reporting

Sync Frequency

By default the sync will be scheduled hour but can be run at any frequency

Configuration Options

Sales from Shift4 Dine to Yellow Dog can be mapped as follows:

  • Recipes/Items can be mapped in POS Item Map

  • Yellow Dog SKUs/UPCs can be entered into Shift4 to allow transaction matching

  • Items can be mapped via the Balto Application

Responsibilities

Client

  • Install the Yellow Dog App in the Shift4 Admin with the YD Integration Installation Guide on a call

  • Authorize via Shift4 Dine Proxy Site

  • Work with the Yellow Dog implementation team to confirm how sales will be matched - via POS Item Map, Matching SKUs/UPCs, or Mapping via the Balto Application

  • Ensure that there is at least one recent transaction in each Shift4 Dine location - this allows Yellow Dog to capture LocationIDs

    • The client team will also need to confirm which LocationIDs from Shift4 Dine should be mapped to which stores in Yellow Dog

  • Confirm if concatenation will be used with modifiers

Yellow Dog

  • Create a user in Yellow Dog and grant is access to the Yellow Dog API

Shift4 Dine

  • Provide the SiteID

Data Exchange and Mapping

We pull in the following data from Shift4 Dine:

Shift4 Dine Field Yellow Dog Field
ticket.orderNumber TransactionNumber
linePosRef / mod.modifierRef TransactionLineNumber
ticket.closedAt CheckClosed
ticketItem.itemRef / mod.posRef ItemNumber
ticketItem.sku
  - ticketItem.upc if useUpcAsSku: true in the sync config
mod.modifierRef
  - when concatenating: {itemRef}_{modRef}
SKU
ticketItem.Name / mod.Name
  - when concatenating: {itemName} {modName}
Item
ticketItem.unitPrice / mod.unitPrice ItemRetail (always positive)
ticketItemDiscounts.discount.amount / quantity ItemDiscount (always negative)
ticketItemDiscounts.name DiscountDescription
ticketItem.quantity / mod.quantity Quantity
ticket.closedByEmployeeRef EmployeeNumber
ticket.closedByEmployee EmployeeName
"Shift4 Dine" Source
n/a Tender
n/a Reference
n/a RegisterNumber
n/a RegisterName
converted of the item being modified by the modifier line ParentNumber
n/a DateKey
n/a Fee
n/a TotalTaxOfTheLine
n/a Void
n/a Return
ticket.type
(sale, void, or refund)
Order Status
n/a TaxInclusive
ticket.orderNumber Order Number

Sales - General
Line Discounts supported
Check Discounts supported
Returns supported - results in negative quantity
Voids - Line Item supported - results in quantity=0
Voids - Entire check supported - results in quantity=0
Modifiers supported - ticketItemModifiers
- optionally concatenated
Tax ticketItem.tax
- only used by the sync to remove from the unit retail
Sales - TPTransaction Detail n/a

Additional Information

This integration supports the ability to map Unsold Menu items using the “Insert Unsold Menu Items” button in POS Item Mapping.

Limitations:

  • There is currently no way to retrieve Location IDs directly from the API. Location IDs can only be obtained by pulling the associated sales data.

  • It is possible for sales in SkyTab to exist without an associated revenue center. Yellow Dog’s sync supports these sales through the following mapping options:

    • If the sale does not include a revenue center and the OrderType is “Online Ordering,” the Online Ordering type can be mapped to a Yellow Dog Store.

    • If the sale does not include a revenue center and the OrderType is not “Online Ordering,” a dummy revenue center can be mapped to a Yellow Dog Store.