Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

dominos

Package Overview
Dependencies
Maintainers
5
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dominos

node js API for Domino's pizza

  • 2.1.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
172
increased by132.43%
Maintainers
5
Weekly downloads
 
Created
Source

Domino's Pizza API

This is a node.js API for integrating with the Domino's pizza APIs. See the pretty Domino's Pizza API documentation

Important updates coming

v3.x is nearly complete and will be released sometime soon. It will have breaking changes, and will be heavy on the latest ES6 features and modules.

PAYMENT-SUPPORTED-MODULE This module will pass payment information directly from the customer to Domino's Pizza for Domino's Pizza to process.

npm dominos info : See npm trends and stats for dominos
Package Quality
dominos npm version supported node version for dominos api total npm downloads for dominos monthly npm downloads for dominos npm licence for dominos

RIAEvangelist

GitHub info : node-dominos-pizza-api GitHub Release GitHub license node-dominos-pizza-api license open issues for node-dominos-pizza-api on GitHub


Special thanks to : @madelinecameron, a major contributor to this repo.


This work is licenced via the DBAD Public Licence. It is a derivative work from Dominos API.

Install the Dominos pizza api

npm i dominos or npm i --save dominos

Contributing

  1. Pull or Fork code.
  2. from the cloned directory run npm install (this will install required dependancies, depending on your system may require)
  3. be awesome!

Examples

You can run the domino's pizza command line interface from your terminal just by running npm start! See the example in the examples directory.

See the examples directory for simple apps and demonstrations on using the basic functionality.

Testing

Simply run npm test if you have issues with this you may want to try installing mocha globally like this : npm install -g mocha

-OR for manual testing-

  1. Install mocha npm install -g mocha
  2. Run the tests mocha

For Canada

Set the urls.json file to be:

{
  "referer":"https://order.dominos.ca/en/pages/order/",
  "sourceUri":"order.dominos.ca",
  "store": {
    "find": "https://order.dominos.ca/power/store-locator?s=${line1}&c=${line2}&type=${type}",
    "info": "https://order.dominos.ca/power/store/${storeID}/profile",
    "menu": "https://order.dominos.ca/power/store/${storeID}/menu?lang=${lang}&structured=true"
  },
  "order": {
    "validate": "https://order.dominos.ca/power/validate-order",
    "price": "https://order.dominos.ca/power/price-order",
    "place": "https://order.dominos.ca/power/place-order"
  },
  "track": "https://trkweb.dominos.ca/orderstorage/GetTrackerData?"
}

Finding Stores

argumenttypedefaultrequired
addressfull or partial address stringnulltrue
typeDelivery, Carryout, allalltrue
callbackfunction to pass the api result tonulltrue

Note: the 'address' parameter is passed to the Address class. This means any formatting that works for Address will work being passed here. This means you can pass JSON, array or string.

By Postal Code

this yields the least accurate information


var pizzapi = require('dominos');

pizzapi.Util.findNearbyStores(
    '63102',
    'Delivery',
    function(storeData){
        console.log(storeData);
    }
);

By City and Postal Code

this yields less accurate information but is better than just using the postal code


  var pizzapi = require('dominos');

  pizzapi.Util.findNearbyStores(
      'St. Louis, MO, 63102',
      'Delivery',
      function(storeData){
          console.log(storeData);
      }
  );

Using Full or Nearly Full Address

this yields the best information and sorts stores by actual distance


  var pizzapi = require('dominos'); 

  pizzapi.Util.findNearbyStores(
      '700 Clark Ave, St. Louis, MO, 63102',
      'Delivery',
      function(storeData){
          console.log(storeData);
      }
  );


Store

argumenttypedefaultrequired
IDIntegernulltrue

  //Get Store Info for Store #4336
  var pizzapi = require('dominos');
  var myStore = new pizzapi.Store();
  myStore.ID=4336;

  myStore.getInfo(
      function(storeData){
          console.log(storeData);
      }
  );

Store menu

argumenttypedefaultrequired
callbackfunctionnulltrue

  //Get Menu for Store #4336
  var pizzapi = require('dominos'); 
  var myStore = new pizzapi.Store();
  myStore.ID = 4336;

  myStore.getMenu(
      function(storeData){
          console.log(storeData);
      }
  );

Store info

argumenttypedefaultrequired
callbackfunctionnulltrue

  //Get Info for Store #4336
  var pizzapi = require('dominos');
  var myStore = new pizzapi.Store();
  myStore.ID = 4336;

  myStore.getInfo(
      function(storeData){
          console.log(storeData);
      }
  );

Friendly menu list

argumenttypedefaultrequired
callbackfunctionnulltrue

Returns a list of all items the store offers in an JSON array, formatted {Code: Friendly Name}


  //Get friendly name menu for Store #4336
  var pizzapi = require('dominos'); 
  var myStore = new pizzapi.Store();
  myStore.ID = 4336;

  myStore.getFriendlyNames(
      function(storeData){
          console.log(storeData);
      }
  );


Address

When creating a new Address object, there are many ways to instantiate the object!

The following are examples of the methods:

From string note the commas

  var fullAddress = new Address('900 Clark Ave, St. Louis, MO, 63102');

  //or

  var partAddress = new Address('St. Louis, MO, 63102');

  //or

  var stateAndZip = new Address('St. Louis, 63102');

  //or

  var cityAndZip = new Address('St. Louis, 63102');

  //only zip

  var onlyZip = new Address('63102');

From JSON

  var jsonAddress = new Address(
      {
          Street: '900 Clark Ave',
          City: 'St. Louis',
          Region: 'MO',
          PostalCode: 63102
      }
  );

From array

  var arrayAddress = new Address(['900 Clark Ave', 'St. Louis', 'MO', '63102']);


Customer

argumenttypedefault
addressAddressnull
firstNameString''
lastNameString''
emailString''
phoneString''


  var customer = new Customer(
      {
          address: someAddressObj,
          firstName: 'Barack',
          lastName: 'Obama',
          phone: '1-800-The-White-House',
          email: 'br'
      }
  )


Item

You can get the codes from one of the menu requests.

argumenttypedefault
codeStringnull
quantityInteger1
optionsArray[]

  var newItem = new Item(
    {
        code: '14SCREEN'
    }
  );
  //and so on...


Order

This is the class that every other class feeds into.

argumenttypedefault
codeStringnull
quantityInteger1
optionsArray[]

creating an order


  var pizzapi = require('dominos');

  var thePresident = new pizzapi.Customer(
      {
          firstName: 'Barack',
          lastName: 'Obama',
          address: '1600 Pennsylvania Avenue, Washington, DC',
          email: 'barack@whitehouse.gov'
      }
  );

  var order = new pizzapi.Order(
      {
          customer: thePresident,

          //optional set the store ID right away
          storeID: myStore.ID,

          deliveryMethod: 'Delivery' //(or 'Carryout')
      }
  );

  //or

  var order = new pizzapi.Order();

  order.FirstName = data;
  order.LastName = data;
  order.Email = data;
  order.Phone = data;

  //and if you want to update the store id just :

  order.StoreID = myStore.ID;

duplicating an order


  var anotherIdenticalOrder = new pizzapi.Order(
      {
          order:order
          //or
          //Order:order
          //because domino's pizza web API returns pascal case...
      }
  );

  //or create a duplicate order WITH different customer params

  var order = new pizzapi.Order(
      {
          customer: thePresident,
          deliveryMethod: 'Delivery' //(or 'Carryout')
      }
  );

Adding a product to the order :


  order.addItem(
      new pizzapi.Item(
          {
              code: '14SCREEN',
              options: [],
              quantity: 1
          }
      )
  );

Validating an Order

This step is Strongly recommended


  order.validate(
      function(result) {
          console.log("We did it!");
      }
  );

Price an Order


  order.price(
      function(result) {
          console.log("Price!")
      }
  );

Place an Order

At least one item must've been added to place an order.

with payment allowed

You don't have to do anything for the payment, Domino's Pizza will handle all transactions.


  var pizzapi = require('dominos');

  var cardNumber = '4100123422343234';

  var cardInfo = new order.PaymentObject();
  cardInfo.Amount = order.Amounts.Customer;
  cardInfo.Number = cardNumber;
  cardInfo.CardType = order.validateCC(cardNumber);
  cardInfo.Expiration = '0115';//  01/15 just the numbers "01/15".replace(/\D/g,'');
  cardInfo.SecurityCode = '777';
  cardInfo.PostalCode = '90210'; // Billing Zipcode

  order.Payments.push(cardInfo);

  order.place(
      function(result) {
          console.log("Order placed!");
      }
  );


Tracking

By Phone

argumenttypedefaultrequired
phonePhone number string or intnulltrue
callbackfunction to pass the api result tonulltrue

  var pizzapi = require('dominos'); 

  pizzapi.Track.byPhone(
      2024561111,
      function(pizzaData){
          console.log(pizzaData);
      }
  );

By orderKey

argumenttypedefaultrequired
orderKeystring or intnulltrue
storeIDsting or intnulltrue
callbackfunction to pass the api result tonulltrue

  var pizzapi = require('dominos'); 

  pizzapi.Track.byId(
      123456,
      12345,
      function(pizzaData){
          console.log(pizzaData)
      }
  );

Code, Order, Eat, Be Happy!

Keywords

FAQs

Package last updated on 18 Feb 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc