Perfecto, ese es un buen primer paso.
Ahora, como está estructurada la información de las tarifas y las zonas?
Si no me equivoco tendrás cinco variables:
-Peso del paquete (Kg)
-Volumen del paquete (cm3)
-Tipo de servicio (Next day, Express, o algo así...)
-Zona del remitente
-Zona del destinatario
Para las primeras 2, debes darte cuenta que cada producto sobre el que quieras calcular el envío deberás tener registrado dentro de su descripción el peso y el volúmen del empaque final.
Para la tercera, deberás decidir si permitirás que el usuario escoja una opción o si solo manejarás un tipo de servicio pre-establecido por ti.
Para la Zona del remitente no creo que tengas problema, pues en teoría tendrás solo una zona de salida, tu almacén. A menos que tengas diversos puntos de salida.
Para la Zona del Cliente (Destinatario) deberás contar con algúna tabla para determinar la zona. Ló más lógico me parece una tabla que relacione Códigos Postales (O ciudades) con una zona determinada. De tal forma que el Cliente, al indicar su domicilio (o ciudad o C.P.) te estará indicando su Zona.
Una vez que tengas todo eso calculado, solo necesitarás comparar los valores obtenidos contra la tabla de los costos de DHL que ya tienes.
Aunque probablemente, más que una tabla, se trate de algún tabulador por rangos de valores, para lo cual necesitarás crear una función que lo calcule.
Por que no posteas cuales de estos datos ya tienes, y en que formatos, para poder darte una idea más específica?