/pizzapi

A Python wrapper for the Dominos Pizza API

Primary LanguagePythonMIT LicenseMIT

pizzapi

Description

This is a Python wrapper for the Dominos Pizza API.

It's a port of the pizzapi node.js module written by RIAEvangelist.

Quick Start

First construct a Customer object and set the customer's address:

customer = Customer('Barack', 'Obama', 'barack@whitehouse.gov', '2024561111', '700 Pennsylvania Avenue NW, Washington, DC, 20408')
address = Address('700 Pennsylvania Avenue NW', 'Washington', 'DC', '20408')
# or Address(*customer.address.split(',')) if you're lazy

Then, find a store that will deliver to the address.

store = address.closest_store()

In order to add items to your order, you'll need the items' product codes. To find the codes, get the menu from the store, then search for items you want to add. You can do this by asking your Store object for its Menu.

menu = store.get_menu()

Then search menu with menu.search. For example, running this command:

menu.search(Name='Coke')

Should print this to the console:

20BCOKE    20oz Bottle Coke®        $1.89
20BDCOKE   20oz Bottle Diet Coke®   $1.89
D20BZRO    20oz Bottle Coke Zero™   $1.89
2LDCOKE    2-Liter Diet Coke®       $2.99
2LCOKE     2-Liter Coke®            $2.99

After you've found your items' product codes, you can create an Order object add add your items:

order = Order(store, customer, address)
order.add_item('P12IPAZA') # add a 12-inch pan pizza
order.add_item('MARINARA') # with an extra marinara cup
order.add_item('20BCOKE')  # and a 20oz bottle of coke

You can remove items as well!

order.remove_item('20BCOKE')

Wrap your credit card information in a PaymentObject:

card = PaymentObject('4100123422343234', '0115', '777', '90210')

And that's it! Now you can place your order.

order.place(card)

Or if you're just testing and don't want to actually order something, use .pay_with.

order.pay_with(card)