public static function getRealTimeRates(ShippingRateCalculator $handler, Shipment $shipment) { $rates = new ShippingRateSet(); $handler->setWeight($shipment->getChargeableWeight()); $order = $shipment->order->get(); if ($order->isMultiAddress->get()) { $address = $shipment->shippingAddress->get(); } else { $address = $order->shippingAddress->get(); } if (!$address) { return $rates; } $handler->setDestCountry($address->countryID->get()); $handler->setDestState($address->state->get() ? $address->state->get()->code->get() : $address->stateName->get()); $handler->setDestZip($address->postalCode->get()); $config = $shipment->getApplication()->getConfig(); $handler->setSourceCountry($config->get('STORE_COUNTRY')); $handler->setSourceZip($config->get('STORE_ZIP')); $handler->setSourceState($config->get('STORE_STATE')); foreach ($handler->getAllRates() as $k => $rate) { $newRate = new ShipmentDeliveryRate(); $newRate->setApplication($shipment->getApplication()); $newRate->setCost($rate->getCostAmount(), $rate->getCostCurrency()); $newRate->setServiceName($rate->getServiceName()); $newRate->setClassName($rate->getClassName()); $newRate->setProviderName($rate->getProviderName()); $newRate->setServiceId($rate->getClassName() . '_' . $k); $rates->add($newRate); } return $rates; }
public static function getRealTimeRates(ShippingRateCalculator $handler, Shipment $shipment) { $rates = new ShippingRateSet(); $handler->setWeight($shipment->getChargeableWeight()); $order = $shipment->order->get(); // TODO: fix issue when address has zip and country data, but are missing city, user and record id! // (now workround - get address id, if $address has no id, load address by id) if ($order->isMultiAddress->get()) { $address = $shipment->shippingAddress->get(); $arr = $shipment->toArray(); } else { $address = $order->shippingAddress->get(); $arr = $order->toArray(); } if (!$address->getID() && array_key_exists('shippingAddressID', $arr)) { $address = ActiveRecordModel::getInstanceByID('UserAddress', $arr['shippingAddressID'], true); } if (!$address) { return $rates; } $handler->setDestCountry($address->countryID->get()); $handler->setDestState($address->state->get() ? $address->state->get()->code->get() : $address->stateName->get()); $handler->setDestZip($address->postalCode->get()); $handler->setDestCity($address->city->get()); $config = $shipment->getApplication()->getConfig(); $handler->setSourceCountry($config->get('STORE_COUNTRY')); $handler->setSourceZip($config->get('STORE_ZIP')); $handler->setSourceState($config->get('STORE_STATE')); foreach ($handler->getAllRates() as $k => $rate) { $newRate = new ShipmentDeliveryRate(); $newRate->setApplication($shipment->getApplication()); $newRate->setCost($rate->getCostAmount(), $rate->getCostCurrency()); $newRate->setServiceName($rate->getServiceName()); $newRate->setClassName($rate->getClassName()); $newRate->setProviderName($rate->getProviderName()); $newRate->setServiceId($rate->getClassName() . '_' . $k); $rates->add($newRate); } return $rates; }
function uninstall($_ModuleConfigID = 0) { ShippingRateCalculator::uninstall($_ModuleConfigID); if (!count(modGetModuleConfigs(get_class($this)))) { //drop shipping rates table $sql = ' DROP TABLE IF EXISTS ' . CourierShippingModule2::_getDBName() . ' '; } else { $sql = ' DELETE FROM ' . CourierShippingModule2::_getDBName() . ' WHERE module_id="' . $_ModuleConfigID . '" '; } db_query($sql); }
function install() { $this->SettingsFields['CONF_SHIPPING_MODULE_FIXEDRATE_SHIPPINGRATE'] = array('settings_value' => '10', 'settings_title' => CSHIPPINGMODULEFIXED_CONF_SHIPPINGRATE_TITLE, 'settings_description' => CSHIPPINGMODULEFIXED_CONF_SHIPPINGRATE_DESCR, 'settings_html_function' => 'setting_TEXT_BOX(1,', 'sort_order' => 2); ShippingRateCalculator::install(); }
function uninstall($_ModuleConfigID = 0) { ShippingRateCalculator::uninstall($_ModuleConfigID); if (!count(modGetModuleConfigs(get_class($this)))) { //drop shipping rates table db_query('DROP TABLE IF EXISTS ' . CSHIPPINGMODULEBYCOUNTRYBYZONEPERCENT_TABLE); } else { $sql = ' DELETE FROM ' . CSHIPPINGMODULEBYCOUNTRYBYZONEPERCENT_TABLE . ' WHERE module_id="' . $this->ModuleConfigID . '" '; } }
function install() { $this->SettingsFields['CONF_SHIPPING_MODULE_FIXEDRATEXORPERCENT_FIXEDRATE'] = array('settings_value' => '0', 'settings_title' => CSHIPPINGMODULEFIXEDXORPERCENT_CONF_FIXEDRATE_TTL, 'settings_description' => CSHIPPINGMODULEFIXEDXORPERCENT_CONF_FIXEDRATE_DSCR, 'settings_html_function' => 'setting_TEXT_BOX(1,', 'sort_order' => 2); $this->SettingsFields['CONF_SHIPPING_MODULE_FIXEDRATEXORPERCENT_PERCENT'] = array('settings_value' => '0', 'settings_title' => CSHIPPINGMODULEFIXEDXORPERCENT_CONF_PERCENT_TTL, 'settings_description' => CSHIPPINGMODULEFIXEDXORPERCENT_CONF_PERCENT_DSCR, 'settings_html_function' => 'setting_TEXT_BOX(1,', 'sort_order' => 2); ShippingRateCalculator::install(); }