As you all know, Magento comes packaged with the Fedex rate quoting extension built-in. What this extension does not do is ask for dimensions. Therefore, the shippping rates returned are based solely on weight and nothing else.
For $299 I can get the super fancy WebShoppeApp, but I'm trying to avoid paying for that when all I lack is a few lines in, for example, this file...
Inside this file, I can clearly see that an XML request is being created.
Line 315 $r = $this->_rawRequest; $ratesRequest = array( 'WebAuthenticationDetail' => array( ..... 'RateRequestTypes' => 'LIST', 'PackageCount' => '1', 'PackageDetail' => 'INDIVIDUAL_PACKAGES', 'RequestedPackageLineItems' => array( '0' => array( 'Weight' => array( 'Value' => (float)$r->getWeight(), 'Units' => $this->getConfigData('unit_of_measure') ), 'GroupPackageCount' => 1, ) )
As you can see, there is no defining of dimensions here. This makes it very difficult to ship something that is 12 ft long, or longer.
My first instinct, being a relatively advanced PHP programmer, was to add the Dimension key to the above XML Request... and insert custom attributes from the product into this.
'RequestedPackageLineItems' => array( '0' => array( 'Weight' => array( 'Value' => (float)$r->getWeight(), 'Units' => $this->getConfigData('unit_of_measure') ), 'Dimensions' => array( 'Width' => ?, 'Height' => ?, 'Length' => ? ), 'GroupPackageCount' => 1, )
Then, it occurred to me that I have no clue how this works with the products, especially multiple ones. In other words, I'm not exactly sure how to go about grabbing those custom attributes and knowing that a shopping cart full of differently sized products will be requested accordingly, accurately, appropriately.
To me, this look like one single package item. It has been hard-coded in.
Besides dropping $300 for an extension, is there a solution to my problem?