[TYPO3-commerce] VariableDeliveryCost and Typoscript
heiko oezaykut
demm2 at web.de
Mon Feb 4 00:15:35 CET 2008
Hi,
on http://wiki.typo3.org/index.php/Commerce/Tutorial/VariableDeliveryCost/#Pollish
you see an example VariableDeliveryCost in dependence to te price.
Now there is an example code:
//first ...
# basket
plugin.tx_commerce_pi2{
delivery {
freeDelivery {
// threshold in ct
thresholdAmount = 25000
belowThresholArticles = 5
aboveThresholArticles = 49
}
}
}
and...
require_once(PATH_tslib."class.tslib_pibase.php");
/**
* tx_commerce includes
*/
require_once(t3lib_extmgm::extPath('commerce').'lib/class.tx_commerce_product.php');
require_once(t3lib_extmgm::extPath('commerce').'lib/class.tx_commerce_basket.php');
require_once(t3lib_extmgm::extPath('commerce').'lib/class.tx_commerce_category.php');
require_once(t3lib_extmgm::extPath('commerce').'lib/class.tx_commerce_pibase.php');
class tx_commerce_costs {
function makeDelivery(&$parent, &$basket, &$deliveryContent) {
$parent->delProd = new tx_commerce_product($parent->conf['delProdId'],$GLOBALS['TSFE']->tmpl->setup['config.']['sys_language_uid']);
$parent->delProd->load_data();
$parent->delProd->load_articles();
// <customCode>
// sum in cent
$sum_gross = $basket->getArticleTypeSumGross(NORMALArticleType);
if ($parent->conf['delivery.']['freeDelivery.']['thresholdAmount']) {
$thresholdAmount = (int)$parent->conf['delivery.']['freeDelivery.']['thresholdAmount'];
if ($parent->conf['delivery.']['freeDelivery.']['aboveThresholdArticles']) {
$aboveThresholdArticles = t3lib_div::trimExplode(',', $parent->conf['delivery.']['freeDelivery.']['aboveThresholdArticles']);
}
if ($parent->conf['delivery.']['freeDelivery.']['belowThresholdArticles']) {
$belowThresholdArticles = t3lib_div::trimExplode(',', $parent->conf['delivery.']['freeDelivery.']['belowThresholdArticles']);
}
if($sum_gross >= $thresholdAmount){
if (count($aboveThresholdArticles)) {
foreach($parent->delProd->articles as $articleUid => $articleObj) {
if(!in_array($articleUid, $aboveThresholdArticles)) {
unset($parent->delProd->articles[$articleUid]);
}
}
}
}
else {
if (count($belowThresholdArticles)) {
foreach($parent->delProd->articles as $articleUid => $articleObj) {
if(!in_array($articleUid, $belowThresholdArticles)) {
unset($parent->delProd->articles[$articleUid]);
}
}
}
}
}
// </customCode>
$parent->basketDel = $parent->basket->get_articles_by_article_type_uid_asuidlist(DELIVERYArticleType);
$select = '<select name="'.$parent->prefixId.'[delArt]" onChange="this.form.submit()">';
if ($parent->conf['delivery.']['allowedArticles']) {
$allowedArticles = split(',',$parent->conf['delivery.']['allowedArticles']);
}
foreach ($parent->delProd->articles as $articleUid => $articleObj) {
if ((!is_array($allowedArticles)) || in_array($articleUid,$allowedArticles)) {
$select .= '<option value="'.$articleUid.'"';
if($articleUid==$parent->basketDel[0]){
$first = 1;
$select .= ' selected';
$price_net = tx_moneylib::format($articleObj->get_price_net(),$parent->currency);
$price_gross = tx_moneylib::format($articleObj->get_price_gross(),$parent->currency);
}elseif(!$first){
$price_net = tx_moneylib::format($articleObj->get_price_net(),$parent->currency);
$price_gross = tx_moneylib::format($articleObj->get_price_gross(),$parent->currency);
if(!is_array($parent->basketDel)||count($parent->basketDel)<1){
$parent->basket->add_article($articleUid);
$parent->basket->store_data();
}
$first = 1;
}
$select .= '>'.$articleObj->get_title().'</option>';
}
}
$select .= '</select>';
#debug($parent->delProd->articles);
#debug($allowedArticles);
#debug($parent->basket);
$basketArray['###DELIVERY_SELECT_BOX###'] = $select;
$basketArray['###DELIVERY_PRICE_GROSS###'] = $price_gross;
$basketArray['###DELIVERY_PRICE_NET###'] = $price_net;
$deliveryContent = $parent->cObj->substituteMarkerArrayCached($deliveryContent, $basketArray);
return $deliveryContent;
}
}
?>
there is doesn't work with typoscript
... but how include this items in ext_localconf.php or every other file og php?
What i forgotten in this example ?
regards
Heiko
_______________________________________________________________________
Jetzt neu! Schützen Sie Ihren PC mit McAfee und WEB.DE. 30 Tage
kostenlos testen. http://www.pc-sicherheit.web.de/startseite/?mc=022220
More information about the TYPO3-project-commerce
mailing list