code: def place_order(self, package_keyname, location, item_keynames, complex_type=None,
                      hourly=True, preset_keyname=None, extras=None, quantity=1):
          
          order = self.generate_order(package_keyname, location, item_keynames,
                                      complex_type=complex_type, hourly=hourly,
                                      preset_keyname=preset_keyname,
                                      extras=extras, quantity=quantity)
          return self.order_svc.placeOrder(order)
docs: Places an order with the given package and prices.
  
          This function takes in parameters needed for an order and places the order.
  
          :param str package_keyname: The keyname for the package being ordered
          :param str location: The datacenter location string for ordering (Ex: DALLAS13)
          :param list item_keynames: The list of item keyname strings to order. To see list of
                                     possible keynames for a package, use list_items()
                                     (or `slcli order item-list`)
          :param str complex_type: The complex type to send with the order. Typically begins
                                   with `SoftLayer_Container_Product_Order_`.
          :param bool hourly: If true, uses hourly billing, otherwise uses monthly billing
          :param string preset_keyname: If needed, specifies a preset to use for that package.
                                        To see a list of possible keynames for a package, use
                                        list_preset() (or `slcli order preset-list`)
          :param dict extras: The extra data for the order in dictionary format.
                              Example: A VSI order requires hostname and domain to be set, so
                              extras will look like the following:
                              {'virtualGuests': [{'hostname': 'test', domain': 'softlayer.com'}]}
          :param int quantity: The number of resources to order