Shipping methods

The shipping methods are defined via TypoScript for each shopping cart. The standard template already comes with a shipping method (standard) as shown below.

With the definition plugin.tx_cart.settings.allowedCountries the output of the selector in the shopping cart is defined. The options can also be translated by an own SelectViewhelper.

Configuration given by this extension

EXT:cart/Configuration/TypoScript/setup.typoscript
plugin.tx_cart {
    settings {
        countries {
            preset = 1
            options {
                1 {
                    code = de
                    label = Deutschland
                }
                2 {
                    code = at
                    label = Österreich
                }
                3 {
                    code = ch
                    label = Schweiz
                }
            }
        }
    }

    shippings {
        countries {
           de {
               preset = 1
               options {
                   1 {
                       title = Standard
                       extra = 0.00
                       taxClassId = 1
                       status = open
                   }
               }
           }
           at < .de
           ch < .de
        }
    }
}
Copied!

plugin.tx_cart.shippings.countries

shippings.countries.<country-code>.preset

shippings.countries.<country-code>.preset
Type

int

Defines which shipping method is selected by default if the user has not yet selected another shipping method.

If the shipping method is not defined when the destination country is changed, the shipping method defined here for the destination country is also selected.

shippings.countries.<country-code>.options.<n>

shippings.countries.<country-code>.options.<n>
Type

array

Default

options.1

You can configure n different shipping methods.

shippings.countries.<country-code>.options.<n>.title

shippings.countries.<country-code>.options.<n>.title
Type

string

Name of the shipping type (for example: Standard, Express).

shippings.countries.<country-code>.options.<n>.extra

shippings.countries.<country-code>.options.<n>.extra
Type

float

Default

0.00

Shipping costs that are to be billed to the customer (for example: 1.50). The currency depends on the standard configuration.

shippings.countries.<country-code>.options.<n>.taxClassId

shippings.countries.<country-code>.options.<n>.taxClassId
Type

int

ID of the tax class for this payment method. The taxClassId must either be assignable to a defined tax class.

However, the values -1 and -2 are also allowed here. These options can be used when the shop has products with multiple tax classes.

For example in Germany and Austria the shipping costs are an ancillary service of the order. Therefore the tax of the shipping costs needs to be calculated.

  • -1 → The products within the shopping cart are taken. Of those products the tax class with the highest value is then taken as tax class for the calculation of the shipping costs.
  • -2 → The products within the shopping cart are taken. The tax for the shipping costs is calculated as a percentage of the tax of those products.

shippings.countries.<country-code>.options.<n>.status

shippings.countries.<country-code>.options.<n>.status
Type

string

The status that the order with this shipping method should have by default.

Country Configuration

can be set in e.g. EXT:sitepackage/Configuration/TypoScript/setup.typoscript
plugin.tx_cart {
    shippings {
        countries {
           de {
               options {
                   2 {
                       free {
                           from = 50
                           until = 100
                       }
                       available {
                           from = 20
                           until = 200
                       }
                       fallBackId = 1
                   }
               }
           }
        }
    }
}
Copied!

plugin.tx_cart.shippings.countries

shippings.countries.<country-code>.options.<n>.free.from

shippings.countries.<country-code>.options.<n>.free.from
Type

float

If the gross price of the products is greater than or equal to the specified value, the price for the shipping method is 0.00. This can be used for free shipping from a defined order value.

shippings.countries.<country-code>.options.<n>.free.until

shippings.countries.<country-code>.options.<n>.free.until
Type

float

If the gross price of the products is less than or equal to the specified value, the price for the shipping method is 0.00.

shippings.countries.<country-code>.options.<n>.available.from

shippings.countries.<country-code>.options.<n>.available.from
Type

float

Only if the gross price of the products is greater than or equal to the specified value, this shipping method is available, otherwise the fallback shipping method will be used.

shippings.countries.<country-code>.options.<n>.available.until

shippings.countries.<country-code>.options.<n>.available.until
Type

float

Only if the gross price of the products is less than or equal to the specified value, this shipping method is available, otherwise the fallback shipping method will be used.

shippings.countries.<country-code>.options.<n>.fallBackId

shippings.countries.<country-code>.options.<n>.fallBackId
Type

int

If the shipping method is not available, the shipping method with this ID will be used.

Zone configuration

plugin.tx_cart.shippings.zones

If no individual country configuration can be found, it is also possible to work with zones in the TypoScript. This saves a lot of configuration work if you want to deliver to many countries.

plugin.tx_cart {
    shippings {
        zones {
            1 {
                preset = 1
                countries = de,at,ch
                options {
                    1 {
                        title = Standard
                        extra = 0.00
                        taxClassId = 1
                        status = open
                    }
                }
            }
        }
    }
}
Copied!

|

shippings.zones.<n>

shippings.zones.<n>
Type

int

You can configure up to n different zones.

shippings.zones.<n>.countries

shippings.zones.<n>.countries
Type

array

List of countries for which this configuration is valid.

Deactivate shipping methods

At the moment, the existence of a shipping method is required for the processing of an order. That means that at least one shipping method must be specified. In this case the selection block for the payment can be hidden.

plugin.tx_cart {
     settings {
         showCartAction {
             showPartials {
                shippingMethodForm = false
             }
         }
     }
}
Copied!

See plugin.tx_cart.settings.showCartAction.showPartials.shippingMethodForm