docs: def get_price_id_list(self, package_keyname, item_keynames, core=None):
          """Converts a list of item keynames to a list of price IDs.
  
          This function is used to convert a list of item keynames into
          a list of price IDs that are used in the Product_Order verifyOrder()
          and placeOrder() functions.
  
          :param str package_keyname: The package associated with the prices
          :param list item_keynames: A list of item keyname strings
          :param str core: preset guest core capacity.
          :returns: A list of price IDs associated with the given item
                    keynames in the given package
  
          """
          mask = 'id, itemCategory, keyName, prices[categories]'
          items = self.list_items(package_keyname, mask=mask)
  
          prices = []
          category_dict = {"gpu0": -1, "pcie_slot0": -1}
  
          for item_keyname in item_keynames:
              try:
                  # Need to find the item in the package that has a matching
                  # keyName with the current item we are searching for
                  matching_item = [i for i in items
                                   if i['keyName'] == item_keyname][0]
              except IndexError:
                  raise exceptions.SoftLayerError(
                      "Item {} does not exist for package {}".format(item_keyname,
                                                                     package_keyname))
  
              # we want to get the price ID that has no location attached to it,
              # because that is the most generic price. verifyOrder/placeOrder
              # can take that ID and create the proper price for us in the location
              # in which the order is made
              item_category = matching_item['itemCategory']['categoryCode']
              if item_category not in category_dict:
                  price_id = self.get_item_price_id(core, matching_item['prices'])
              else:
                  # GPU and PCIe items has two generic prices and they are added to the list
                  # according to the number of items in the order.
                  category_dict[item_category] += 1
                  category_code = item_category[:-1] + str(category_dict[item_category])
                  price_id = [p['id'] for p in matching_item['prices']
                              if not p['locationGroupId']
                              and p['categories'][0]['categoryCode'] == category_code][0]
  
              prices.append(price_id)
  
          return prices