Interface Order.Service

  • All Superinterfaces:
    Maskable, ResultLimitable, Service
    Enclosing class:
    Order

    @ApiService("SoftLayer_Product_Order")
    public static interface Order.Service
    extends Service
    All orders (servers, virtual servers and services) pass through the [[SoftLayer_Product_Order]] service. This service provides the entry point for placing orders and quotes with SoftLayer. To place orders using these services, you must provide the appropriate container type as defined by [[SoftLayer_Container_Product_Order]]. For server orders, you would use [[SoftLayer_Container_Product_Order_Hardware_Server]]. For virtual server orders, you would use [[SoftLayer_Container_Product_Order_Virtual_Guest]]. For additional service orders, it will depend on the additional service (e.g., network attached storage, object storage, global load balancer) being purchased. See the data types documentation to get a list of all the available container types beginning with SoftLayer_Container_Product_Order_*.

    There are several main entry points associated with ordering:

    • [[SoftLayer_Product_Order/placeOrder|placeOrder]] - Order servers and services. Your credit card or PayPal account will get charged when successfully placed.
    • [[SoftLayer_Product_Order/verifyOrder|verifyOrder]] - Run verification on your order before it's actually placed to get additional information, like your total monthly or hourly recurring charges. You may also call this service to help ensure that your call to [[SoftLayer_Product_Order/placeOrder|placeOrder]] will succeed. This service is called internally, so it is not required to verify before you call placeOrder. No credit card or PayPal charges result from this call.
    • [[SoftLayer_Product_Order/placeQuote|placeQuote]] - Create a quote only. Subsequent orders may be placed from this quote. See [[SoftLayer_Billing_Order_Quote/placeOrder]] for details on how to order from a quote.
    • [[SoftLayer_Product_Order/getVlans|getVlans]] - Get a list of available VLANs that can be supplied when placing an order.


    While this service provides detailed customization for ordering, some customers may find the simplified ordering system sufficient for their needs. For more information, see the following:

    • [[SoftLayer_Virtual_Guest/createObject]] - Simplified virtual server ordering
    • [[SoftLayer_Hardware/createObject]] - Simplified bare metal server ordering
    See Also:
    SoftLayer_Product_Order
    • Method Detail

      • withNewMask

        Order.Mask withNewMask()
        Description copied from interface: Maskable
        Overwrite the existing mask on this service with a new one and return it
        Specified by:
        withNewMask in interface Maskable
      • withMask

        Order.Mask withMask()
        Description copied from interface: Maskable
        Use the existing mask on this service or create it if not present
        Specified by:
        withMask in interface Maskable
      • getNetworks

        @ApiMethod
        List<Network> getNetworks​(Long locationId,
                                  Long packageId,
                                  Long accountId)
        This method returns a collection of [[SoftLayer_Container_Product_Order_Network]] objects. This will contain the available networks that can be used when ordering services.

        If a location id is supplied, the list of networks will be trimmed down to only those that are available at that particular datacenter.

        If a package id is supplied, the list of public VLANs and subnets will be trimmed down to those that are available for that particular package.

        The account id is for internal use only and will be ignored when supplied by customers.
        See Also:
        SoftLayer_Product_Order::getNetworks
      • getTaxCalculationResult

        @ApiMethod
        Cache getTaxCalculationResult​(String orderHash)
        Sometimes taxes cannot be calculated immediately, so we start the calculations and let them run in the background. This method will return the current progress and information related to a specific tax calculation, which allows real-time progress updates on tax calculations.
        See Also:
        SoftLayer_Product_Order::getTaxCalculationResult
      • getVlans

        @ApiMethod
        Vlans getVlans​(Long locationId,
                       Long packageId,
                       String selectedItems,
                       List<Long> vlanIds,
                       List<Long> subnetIds,
                       Long accountId,
                       Order orderContainer,
                       Boolean hardwareFirewallOrderedFlag)
        Return collections of public and private VLANs that are available during ordering. If a location ID is provided, the resulting VLANs will be limited to that location. If the Virtual Server package id (46) is provided, the VLANs will be narrowed down to those locations that contain routers with the VIRTUAL_IMAGE_STORE data attribute.

        For the selectedItems parameter, this is a comma-separated string of category codes and item values. For example:

        • port_speed=10,guest_disk0=LOCAL_DISK
        • port_speed=100,disk0=SAN_DISK
        • port_speed=100,private_network_only=1,guest_disk0=LOCAL_DISK


        This parameter is used to narrow the available results down even further. It's not necessary when selecting a VLAN, but it will help avoid errors when attempting to place an order. The only acceptable category codes are:

        • port_speed
        • A disk category, such as guest_disk0 or disk0, with values of either LOCAL_DISK or SAN_DISK
        • private_network_only
        • dual_path_network


        For most customers, it's sufficient to only provide the first 2 parameters.
        See Also:
        SoftLayer_Product_Order::getVlans
      • placeOrder

        @ApiMethod
        Receipt placeOrder​(Order orderData,
                           Boolean saveAsQuote)

        Use this method to place bare metal server, virtual server and additional service orders with SoftLayer. Upon success, your credit card or PayPal account will incur charges for the monthly order total (or prorated value if ordered mid billing cycle). If all products on the order are only billed hourly, you will be charged on your billing anniversary date, which occurs monthly on the day you ordered your first service with SoftLayer. For new customers, you are required to provide billing information when you place an order. For existing customers, the credit card on file will be charged. If you're a PayPal customer, a URL will be returned from the call to [[SoftLayer_Product_Order/placeOrder|placeOrder]] which is to be used to finish the authorization process. This authorization tells PayPal that you indeed want to place an order with SoftLayer. From PayPal's web site, you will be redirected back to SoftLayer for your order receipt.




        When an order is placed, your order will be in a "pending approval" state. When all internal checks pass, your order will be automatically approved. For orders that may need extra attention, a Sales representative will review the order and contact you if necessary. Once the order is approved, your server or service will be provisioned and available to you shortly thereafter. Depending on the type of server or service ordered, provisioning times will vary.




        Order Containers




        When placing API orders, it's important to order your server and services on the appropriate [[SoftLayer_Container_Product_Order (type)|order container]]. Failing to provide the correct container may delay your server or service from being provisioned in a timely manner. Some common order containers are included below.




        Note: SoftLayer_Container_Product_Order_ has been removed from the containers in the table below for readability.


































































































































        Product Order container Package type
        Bare metal server by CPU [[SoftLayer_Container_Product_Order_Hardware_Server (type)|Hardware_Server]] BARE_METAL_CPU
        Bare metal server by core [[SoftLayer_Container_Product_Order_Hardware_Server (type)|Hardware_Server]] BARE_METAL_CORE
        Virtual server [[SoftLayer_Container_Product_Order_Virtual_Guest (type)|Virtual_Guest]] VIRTUAL_SERVER_INSTANCE
        DNS domain registration [[SoftLayer_Container_Product_Order_Dns_Domain_Registration (type)|Dns_Domain_Registration]] ADDITIONAL_SERVICES
        Local & dedicated load balancers [[SoftLayer_Container_Product_Order_Network_LoadBalancer (type)|Network_LoadBalancer]] ADDITIONAL_SERVICES_LOAD_BALANCER
        Content delivery network [[SoftLayer_Container_Product_Order_Network_ContentDelivery_Account (type)|Network_ContentDelivery_Account]] ADDITIONAL_SERVICES_CDN
        Content delivery network Addon [[SoftLayer_Container_Product_Order_Network_ContentDelivery_Account_Addon (type)|Network_ContentDelivery_Account_Addon]] ADDITIONAL_SERVICES_CDN_ADDON
        Hardware & software firewalls [[SoftLayer_Container_Product_Order_Network_Protection_Firewall (type)|Network_Protection_Firewall]] ADDITIONAL_SERVICES_FIREWALL
        Dedicated firewall [[SoftLayer_Container_Product_Order_Network_Protection_Firewall_Dedicated (type)|Network_Protection_Firewall_Dedicated]] ADDITIONAL_SERVICES_FIREWALL
        Object storage [[SoftLayer_Container_Product_Order_Network_Storage_Object (type)|Network_Storage_Object]] ADDITIONAL_SERVICES_OBJECT_STORAGE
        Object storage (hub) [[SoftLayer_Container_Product_Order_Network_Storage_Hub (type)|Network_Storage_Hub]] ADDITIONAL_SERVICES_OBJECT_STORAGE
        Network attached storage [[SoftLayer_Container_Product_Order_Network_Storage_Nas (type)|Network_Storage_Nas]] ADDITIONAL_SERVICES_NETWORK_ATTACHED_STORAGE
        Iscsi storage [[SoftLayer_Container_Product_Order_Network_Storage_Iscsi (type)|Network_Storage_Iscsi]] ADDITIONAL_SERVICES_ISCSI_STORAGE
        Evault [[SoftLayer_Container_Product_Order_Network_Storage_Backup_Evault_Vault (type)|Network_Storage_Backup_Evault_Vault]] ADDITIONAL_SERVICES
        Evault Plugin [[SoftLayer_Container_Product_Order_Network_Storage_Backup_Evault_Plugin (type)|Network_Storage_Backup_Evault_Plugin]] ADDITIONAL_SERVICES
        Application delivery appliance [[SoftLayer_Container_Product_Order_Network_Application_Delivery_Controller (type)|Network_Application_Delivery_Controller]] ADDITIONAL_SERVICES_APPLICATION_DELIVERY_APPLIANCE
        Network subnet [[SoftLayer_Container_Product_Order_Network_Subnet (type)|Network_Subnet]] ADDITIONAL_SERVICES
        Global IPv4 [[SoftLayer_Container_Product_Order_Network_Subnet (type)|Network_Subnet]] ADDITIONAL_SERVICES_GLOBAL_IP_ADDRESSES
        Global IPv6 [[SoftLayer_Container_Product_Order_Network_Subnet (type)|Network_Subnet]] ADDITIONAL_SERVICES_GLOBAL_IP_ADDRESSES
        Network VLAN [[SoftLayer_Container_Product_Order_Network_Vlan (type)|Network_Vlan]] ADDITIONAL_SERVICES_NETWORK_VLAN
        Portable storage [[SoftLayer_Container_Product_Order_Virtual_Disk_Image (type)|Virtual_Disk_Image]] ADDITIONAL_SERVICES_PORTABLE_STORAGE
        SSL certificate [[SoftLayer_Container_Product_Order_Security_Certificate (type)|Security_Certificate]] ADDITIONAL_SERVICES_SSL_CERTIFICATE
        External authentication [[SoftLayer_Container_Product_Order_User_Customer_External_Binding (type)|User_Customer_External_Binding]] ADDITIONAL_SERVICES
        Dedicated Host [[SoftLayer_Container_Product_Order_Virtual_DedicatedHost (type)|Virtual_DedicatedHosts]] DEDICATED_HOST



        Server example




        This example includes a single bare metal server being ordered with monthly billing.




        Warning: the price ids provided below may be outdated or unavailable, so you will need to determine the available prices from the bare metal server [[SoftLayer_Product_Package/getAllObjects|packages]], which have a [[SoftLayer_Product_Package_Type (type)|package type]] of '''BARE_METAL_CPU''' or '''BARE_METAL_CORE'''. You can get a full list of [[SoftLayer_Product_Package_Type/getAllObjects|package types]] to see other potentially available server packages.








        your username
        your api key







        example.com
        server1


        138124
        142


        58


        22337


        21189


        876


        57


        55


        21190


        36381


        21


        22013


        906


        420


        418


        342


        false










        Virtual server example




        This example includes 2 identical virtual servers (except for hostname) being ordered for hourly billing. It includes an optional image template id and VLAN data specified on the virtualGuest objects - primaryBackendNetworkComponent and primaryNetworkComponent.




        Warning: the price ids provided below may be outdated or unavailable, so you will need to determine the available prices from the virtual server [[SoftLayer_Product_Package/getAllObjects|package]], which has a [[SoftLayer_Product_Package_Type (type)|package type]] of '''VIRTUAL_SERVER_INSTANCE'''.








        your username
        your api key





        13251
        37473
        46


        2159


        55


        13754


        1641


        905


        1800


        58


        21


        1645


        272


        57


        418


        420


        2
        true


        example.com
        server1


        12345




        67890




        example.com
        server2


        12345




        67890














        VLAN example




        Warning: the price ids provided below may be outdated or unavailable, so you will need to determine the available prices from the additional services [[SoftLayer_Product_Package/getAllObjects|package]], which has a [[SoftLayer_Product_Package_Type (type)|package type]] of '''ADDITIONAL_SERVICES'''. You can get a full list of [[SoftLayer_Product_Package_Type/getAllObjects|package types]] to find other available additional service packages.








        your username
        your api key





        154820
        0


        2021


        2018


        true










        Multiple products example




        This example includes a combination of the above examples in a single order. Note that all the configuration options for each individual order container are the same as above, except now we encapsulate each one within the orderContainers property on the base [[SoftLayer_Container_Product_Order (type)|order container]].




        Warning: not all products are available to be ordered with other products. For example, since SSL certificates require validation from a 3rd party, the approval process may take days or even weeks, and this would not be acceptable when you need your hourly virtual server right now. To better accommodate customers, we restrict several products to be ordered individually.








        your username
        your api key







        ...


        ...


        ...









        See Also:
        SoftLayer_Product_Order::placeOrder
      • placeQuote

        @ApiMethod
        Receipt placeQuote​(Order orderData)
        Use this method for placing server quotes and additional services quotes. The same applies for this as with verifyOrder. Send in the SoftLayer_Container_Product_Order_Hardware_Server for server quotes. After placing the quote, you must go to this URL to finish the order process. After going to this URL, it will direct you back to a SoftLayer webpage that tells us you have finished the process. After this, it will go to sales for final approval.
        See Also:
        SoftLayer_Product_Order::placeQuote
      • processExternalPaymentAuthorization

        @ApiMethod
        Order processExternalPaymentAuthorization​(String token,
                                                  String payerId)
        This method simply finalizes an authorization from PayPal. It tells SoftLayer that the customer has completed the PayPal process. This is ONLY needed if you, the customer, have your own API into PayPal and wish to automate authorizations from PayPal and our system. For most, this method will not be needed. Once an order is placed using placeOrder() for PayPal customers, a URL is given back to the customer. In it is the token and PayerID. If you want to systematically pay with PayPal, do so then call this method with the token and PayerID.
        See Also:
        SoftLayer_Product_Order::processExternalPaymentAuthorization
      • verifyOrder

        @ApiMethod
        Order verifyOrder​(Order orderData)
        This service is used to verify that an order meets all the necessary requirements to purchase a server, virtual server or service from SoftLayer. It will verify that the products requested do not conflict. For example, you cannot order a Windows firewall with a Linux operating system. It will also check to make sure you have provided all the products that are required for the [[SoftLayer_Product_Package_Order_Configuration (type)|package configuration]] associated with the [[SoftLayer_Product_Package|package id]] on each of the [[SoftLayer_Container_Product_Order (type)|order containers]] specified.



        This service returns the same container that was provided, but with additional information that can be used for debugging or validation. It will also contain pricing information (prorated if applicable) for each of the products on the order. If an exception occurs during verification, a container with the SoftLayer_Exception_Order exception type will be specified in the result.



        verifyOrder accepts the same [[SoftLayer_Container_Product_Order (type)|container types]] as placeOrder, so see [[SoftLayer_Product_Order/placeOrder|placeOrder]] for more details.

        See Also:
        SoftLayer_Product_Order::verifyOrder