function updatePriceInfo($productCollectionID, &$basketInfo) { $shippingInfo = eZShippingManager::getShippingInfo($productCollectionID); $additionalShippingValues = eZShippingManager::vatPriceInfo($shippingInfo); $returnValue = false; foreach ($additionalShippingValues['shipping_vat_list'] as $vatValue => $additionalShippingValueArray) { $shippingExVAT = $additionalShippingValueArray['shipping_ex_vat']; $shippingIncVAT = $additionalShippingValueArray['shipping_inc_vat']; $shippingVat = $additionalShippingValueArray['shipping_vat']; if (!isset($basketInfo['price_info'][$vatValue]['total_price_ex_vat'])) { $basketInfo['price_info'][$vatValue]['total_price_ex_vat'] = $shippingExVAT; $basketInfo['price_info'][$vatValue]['total_price_inc_vat'] = $shippingIncVAT; $basketInfo['price_info'][$vatValue]['total_price_vat'] = $shippingVat; $basketInfo['total_price_info']['total_price_ex_vat'] = $shippingExVAT; $basketInfo['total_price_info']['total_price_inc_vat'] = $shippingIncVAT; $basketInfo['total_price_info']['total_price_vat'] = $shippingVat; } else { $basketInfo['price_info'][$vatValue]['total_price_ex_vat'] += $shippingExVAT; $basketInfo['price_info'][$vatValue]['total_price_inc_vat'] += $shippingIncVAT; $basketInfo['price_info'][$vatValue]['total_price_vat'] += $shippingVat; $basketInfo['total_price_info']['total_price_ex_vat'] += $shippingExVAT; $basketInfo['total_price_info']['total_price_inc_vat'] += $shippingIncVAT; $basketInfo['total_price_info']['total_price_vat'] += $shippingVat; } if (!isset($basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_ex_vat'])) { $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_ex_vat'] = $shippingExVAT; $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_inc_vat'] = $shippingIncVAT; $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_vat'] = $shippingIncVAT - $shippingExVAT; } else { $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_ex_vat'] += $shippingExVAT; $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_inc_vat'] += $shippingIncVAT; $basketInfo['additional_info']['shipping_items'][$vatValue]['total_price_vat'] += $shippingIncVAT - $shippingExVAT; } if (!isset($basketInfo['additional_info']['shipping_total']['total_price_ex_vat'])) { $basketInfo['additional_info']['shipping_total']['total_price_ex_vat'] = $shippingExVAT; $basketInfo['additional_info']['shipping_total']['total_price_inc_vat'] = $shippingIncVAT; $basketInfo['additional_info']['shipping_total']['total_price_vat'] = $shippingIncVAT - $shippingExVAT; } else { $basketInfo['additional_info']['shipping_total']['total_price_ex_vat'] += $shippingExVAT; $basketInfo['additional_info']['shipping_total']['total_price_inc_vat'] += $shippingIncVAT; $basketInfo['additional_info']['shipping_total']['total_price_vat'] += $shippingIncVAT - $shippingExVAT; } } if (count($additionalShippingValues['shipping_vat_list']) > 0) { $returnValue = true; } return $returnValue; }
function updatePrices() { $productCollection = $this->attribute('productcollection'); if ($productCollection) { $currencyCode = ''; $items = $this->items(); $db = eZDB::instance(); $db->begin(); foreach ($items as $itemArray) { $item = $itemArray['item_object']; $productContentObject = $item->attribute('contentobject'); $priceObj = null; $price = 0.0; $attributes = $productContentObject->contentObjectAttributes(); foreach ($attributes as $attribute) { $dataType = $attribute->dataType(); if (eZShopFunctions::isProductDatatype($dataType->isA())) { $priceObj = $attribute->content(); $price += $priceObj->attribute('price'); break; } } if (!is_object($priceObj)) { break; } $currency = $priceObj->attribute('currency'); $optionsPrice = $item->calculatePriceWithOptions($currency); $price += $optionsPrice; $item->setAttribute("price", $price); if ($priceObj->attribute('is_vat_included')) { $item->setAttribute("is_vat_inc", '1'); } else { $item->setAttribute("is_vat_inc", '0'); } $item->setAttribute("vat_value", $priceObj->VATPercent($productContentObject)); $item->setAttribute("discount", $priceObj->attribute('discount_percent')); $item->store(); $currencyCode = $priceObj->attribute('currency'); } $productCollection->setAttribute('currency_code', $currencyCode); $productCollection->store(); $db->commit(); // update prices that are related to shipping values. eZShippingManager::updateShippingInfo($productCollection->attribute('id')); } }
static function updatePriceInfo($productCollectionID, &$basketInfo) { $returnValue = false; if (is_object($handler = eZShippingManager::loadBasketInfoHandler())) { $returnValue = $handler->updatePriceInfo($productCollectionID, $basketInfo); } return $returnValue; }
/** * Removes all product collections based on a product collection ID list * Will also remove the product collection items. * * @param array $productCollectionIDList array of eZProductCollection IDs * * @return void */ static function cleanupList($productCollectionIDList) { $db = eZDB::instance(); $db->begin(); // Purge shipping information associated with product collections being removed. foreach ($productCollectionIDList as $productCollectionID) { eZShippingManager::purgeShippingInfo($productCollectionID); } eZProductCollectionItem::cleanupList($productCollectionIDList); $where = $db->generateSQLINStatement($productCollectionIDList, 'id', false, false, 'int'); $db->query("DELETE FROM ezproductcollection WHERE {$where}"); $db->commit(); }
function updateShippingInfo($objectID, $optionList) { $basket = eZBasket::currentBasket(); $shippingInfo = eZShippingManager::updateShippingInfo($basket->attribute('productcollection_id')); return array('status' => eZModuleOperationInfo::STATUS_CONTINUE); }
$basket = eZBasket::currentBasket(); $tpl = eZTemplate::factory(); if (isset($Params['Error'])) { $tpl->setVariable('error', $Params['Error']); if ($Params['Error'] == 'options') { $tpl->setVariable('error_data', $http->sessionVariable('BasketError')); $http->removeSessionVariable('BasketError'); } } $tpl->setVariable("removed_items", $removedItems); $tpl->setVariable("basket", $basket); $tpl->setVariable("module_name", 'shop'); $tpl->setVariable("vat_is_known", $basket->isVATKnown()); // Add shipping cost to the total items price and store the sum to corresponding template vars. $shippingInfo = eZShippingManager::getShippingInfo($basket->attribute('productcollection_id')); if ($shippingInfo !== null) { // to make backwards compability with old version, allways set the cost inclusive vat. if (isset($shippingInfo['is_vat_inc']) and $shippingInfo['is_vat_inc'] == 0 or !isset($shippingInfo['is_vat_inc'])) { $additionalShippingValues = eZShippingManager::vatPriceInfo($shippingInfo); $shippingInfo['cost'] = $additionalShippingValues['total_shipping_inc_vat']; $shippingInfo['is_vat_inc'] = 1; } $totalIncShippingExVat = $basket->attribute('total_ex_vat') + $shippingInfo['cost']; $totalIncShippingIncVat = $basket->attribute('total_inc_vat') + $shippingInfo['cost']; $tpl->setVariable('shipping_info', $shippingInfo); $tpl->setVariable('total_inc_shipping_ex_vat', $totalIncShippingExVat); $tpl->setVariable('total_inc_shipping_inc_vat', $totalIncShippingIncVat); } $Result = array(); $Result['content'] = $tpl->fetch("design:shop/basket.tpl"); $Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('kernel/shop', 'Basket')));