ACC SHELL
<?php
include_once( 'class.crProduct.php' );
// get seesion var
if ( isset( $_SESSION['cart'] ) )
$sCart = $_SESSION['cart'];
else
$sCart = array();
//$sCart = array();
$productID = '';
$productAdd = '';
$productRemove = '';
$productRecount = '';
$sCartItemID = '';
$sCartItemVariationID = '';
$sCartItemVariationCount = '';
$productRemoveAll = '';
$recountCart = '';
$sCartTotalCount = 0;
$sCartTotalPrice = 0;
if ( isset( $_POST['productID'] ) ) $productID = htmlspecialchars( $_POST['productID'] );
if ( isset( $_POST['productAdd'] ) ) $productAdd = htmlspecialchars( $_POST['productAdd'] );
if ( isset( $_POST['productRemove'] ) ) $productRemove = htmlspecialchars( $_POST['productRemove'] );
if ( isset( $_POST['productRecount'] ) ) $productRecount = htmlspecialchars( $_POST['productRecount'] );
if ( isset( $_POST['cartItemID'] ) ) $sCartItemID = htmlspecialchars( $_POST['cartItemID'] );
if ( isset( $_POST['variationID'] ) ) $sCartItemVariationID = htmlspecialchars( $_POST['variationID'] );
if ( isset( $_POST['variationCount'] ) ) $sCartItemVariationCount = htmlspecialchars( $_POST['variationCount'] );
if ( isset( $_POST['productRemoveAll'] ) ) $productRemoveAll = htmlspecialchars( $_POST['productRemoveAll'] );
if ( isset( $_POST['recountCart'] ) ) $recountCart = htmlspecialchars( $_POST['recountCart'] );
// add product
if ( isset( $productID ) && ( $productAdd == 'productAdd' ) )
{
$added = false;
$productVariations = $db->getAllItems( 'productVariation', " WHERE `productID`=" . $productID . " ORDER BY `ID` ASC " );
if ( count( $sCart ) > 0 )
{
for ( $i=0; $i < count( $sCart ); $i++ )
{
for ( $vi = 0; $vi < count( $productVariations ); $vi++ )
{
$productVariation = $productVariations[ $vi ];
$variation = 'variation'.$productVariation['ID'];
if ( isset( $_POST[$variation] ) )
{
if ( $sCart[$i]['productID'] == $productID )
{
$sCart[$i][$variation] += $_POST[$variation];
$added = true;
}
}
}
}
}
if ( $added == false )
{
$newCartItem = array();
$newCartItem['productID'] = $productID;
for ( $i = 0; $i < count( $productVariations ); $i++ )
{
$productVariation = $productVariations[ $i ];
$variation = 'variation'.$productVariation['ID'];
if ( isset( $_POST[$variation] ) )
{
$newCartItem[$variation] = $_POST[$variation];
}
}
$sCart[] = $newCartItem;
}
}
// remove product
if ( isset( $sCart ) && isset( $sCartItemID ) && isset( $sCartItemVariationID ) &&
isset( $productRemove ) && ( $productRemove == 'productRemove' ) )
{
$cartItem = $sCart[ $sCartItemID ];
$cartItem[ $sCartItemVariationID ] = 0;
$sCart[ $sCartItemID ] = $cartItem;
}
// remove all products
if ( isset( $sCart ) && $productRemoveAll == 'productRemoveAll' )
{
unset( $sCart );
}
// recount product
if ( isset( $sCart ) && isset( $sCartItemID ) && isset( $sCartItemVariationID ) && isset( $sCartItemVariationCount ) && is_numeric( $sCartItemVariationCount ) &&
isset( $productRecount ) && ( $productRecount == 'productRecount' ) )
{
$cartItem = $sCart[ $sCartItemID ];
$cartItem[ $sCartItemVariationID ] = $sCartItemVariationCount;
$sCart[ $sCartItemID ] = $cartItem;
}
// remove product with no variation
$pageETScart = new stdClass();
if ( isset( $sCart ) && ( count( $sCart ) > 0 ) )
{
for ( $i = 0; $i < count( $sCart ); $i++ )
{
$sCartItem = $sCart[ $i ];
$sCartItemProduct = $db->getItem( 'product', $sCartItem['productID'] );
$product = new crProduct($db);
$product->loadByID( $sCartItem['productID'] );
$productData = $product->getData();
$noVariation = true;
$pageETScart->item[ $i ] = new stdClass();
$pageETScart->item[ $i ]->title = $product->getTitle();
$pageETScart->item[ $i ]->url = $product->getURL();
$pageETScart->item[ $i ]->count = 0;
$pageETScart->item[ $i ]->price = 0;
if ( $productData['image'] != '' )
{
$pageETScart->item[ $i ]->imgSrc = $productImageDir . '/small/' . $productData['image'];
}
else
$pageETScart->item[ $i ]->imgSrc = '';
$pageETScart->item[ $i ]->last = false;
if ( ( $i + 1 ) == count( $sCart ) )
{
$pageETScart->item[ $i ]->last = true;
}
$productVariations = $db->getAllItems( 'productVariation', " WHERE `productID`=" . $sCartItem['productID'] . " ORDER BY `ID` ASC " );
foreach ( $productVariations as $productVariation )
{
if ( isset( $sCartItem['variation'.$productVariation['ID']] ) )
{
if ( $sCartItem['variation'.$productVariation['ID']] > 0 )
{
$noVariation = false;
$pageETScart->item[ $i ]->count += $sCartItem['variation'.$productVariation['ID']];
$pageETScart->item[ $i ]->price += $sCartItem['variation'.$productVariation['ID']] * $product->getPriceInVAT();
}
$sCartTotalCount += $sCartItem['variation'.$productVariation['ID']];
$sCartTotalPrice += $sCartItem['variation'.$productVariation['ID']] * $product->getPriceInVAT();//$sCartItemProduct['price'];
}
}
if ( $noVariation )
{
unset( $sCart[ $i ] );
}
}
$sCart = array_values( $sCart );
}
// set session var
$_SESSION['cart'] = $sCart;
?>
ACC SHELL 2018