This is a Python wrapper for the Dominos Pizza API.
It's a port of the pizzapi node.js module written by RIAEvangelist.
First construct a Customer
object and set the customer's address.
>>> customer = Customer('Barack', 'Obama', '[email protected]', '2024561111', '700 Pennsylvania Avenue NW, Washington, DC, 20408')
>>> address = Address(*customer.address.split(','))
Then, find a store that will deliver to the address.
>>> store = address.closest_store()
Create an Order
object.
>>> order = Order(store, customer, address)
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.
>>> menu = store.get_menu()
>>> menu.search(Name='Pan Pizza', SizeCode='12')
P12IPAZA Medium (12") Handmade Pan Pizza $9.99
>>> order.add_item('P12IPAZA')
>>> menu.search(Name='Marinara')
PINBBLMM Italian Sausage Marinara BreadBowl Pasta $7.99
PINPASMM Italian Sausage Marinara Pasta $6.99
MARINARA Side Marinara Sauce Dipping Cup $0.75
>>> order.add_item('MARINARA')
>>> menu.search(Name='Coke')
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
>>> order.add_item('20BCOKE')
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)
Notes:
The first steps seem unnecessary. It seems more efficient to initalize Customer info and Address info seperately.
customer.address(...) has issues with the address coming across as a single string.
If you .split(',') you can pass it to Address as
address = Address(*customer.address.split(','))
to parse it properly.
From there you can dostore = Address.closes_store(address)
to get the nearest location.