本文整理汇总了PHP中osC_Product::getID方法的典型用法代码示例。如果您正苦于以下问题:PHP osC_Product::getID方法的具体用法?PHP osC_Product::getID怎么用?PHP osC_Product::getID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osC_Product
的用法示例。
在下文中一共展示了osC_Product::getID方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: initialize
function initialize()
{
global $osC_Database, $osC_Cache, $osC_Language, $osC_Currencies, $osC_Image, $current_category_id;
$data = array();
if (MODULE_CONTENT_NEW_PRODUCTS_CACHE > 0 && $osC_Cache->read('new_products-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode() . '-' . $current_category_id, MODULE_CONTENT_NEW_PRODUCTS_CACHE)) {
$data = $osC_Cache->getCache();
} else {
if ($current_category_id < 1) {
$Qproducts = $osC_Database->query('select products_id from :table_products where products_status = :products_status and parent_id is null order by products_date_added desc limit :max_display_new_products');
} else {
$Qproducts = $osC_Database->query('select distinct p2c.products_id from :table_products p, :table_products_to_categories p2c, :table_categories c where c.parent_id = :category_parent_id and c.categories_id = p2c.categories_id and p2c.products_id = p.products_id and p.products_status = :products_status and p.parent_id is null order by p.products_date_added desc limit :max_display_new_products');
$Qproducts->bindTable(':table_products_to_categories', TABLE_PRODUCTS_TO_CATEGORIES);
$Qproducts->bindTable(':table_categories', TABLE_CATEGORIES);
$Qproducts->bindInt(':category_parent_id', $current_category_id);
}
$Qproducts->bindTable(':table_products', TABLE_PRODUCTS);
$Qproducts->bindInt(':products_status', 1);
$Qproducts->bindInt(':max_display_new_products', MODULE_CONTENT_NEW_PRODUCTS_MAX_DISPLAY);
$Qproducts->execute();
while ($Qproducts->next()) {
$osC_Product = new osC_Product($Qproducts->valueInt('products_id'));
$data[$osC_Product->getID()] = $osC_Product->getData();
$data[$osC_Product->getID()]['display_price'] = $osC_Product->getPriceFormated(true);
$data[$osC_Product->getID()]['display_image'] = $osC_Product->getImage();
}
$osC_Cache->write($data);
}
if (!empty($data)) {
$this->_content = '<div style="overflow: auto; height: 100%;">';
foreach ($data as $product) {
$this->_content .= '<span style="width: 33%; float: left; text-align: center;">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $product['keyword']), $osC_Image->show($product['display_image'], $product['name'])) . '<br />' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $product['keyword']), $product['name']) . '<br />' . $product['display_price'] . '</span>';
}
$this->_content .= '</div>';
}
}
示例2: execute
function execute()
{
global $osC_Database, $osC_Session, $osC_NavigationHistory, $osC_Customer;
if (!$osC_Customer->isLoggedOn()) {
$osC_NavigationHistory->setSnapshot();
osc_redirect(osc_href_link(FILENAME_ACCOUNT, 'login', 'SSL'));
return false;
}
$id = false;
foreach ($_GET as $key => $value) {
if ((ereg('^[0-9]+(#?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$', $key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
$id = $key;
}
break;
}
if ($id !== false && osC_Product::checkEntry($id)) {
$osC_Product = new osC_Product($id);
$Qcheck = $osC_Database->query('select products_id from :table_products_notifications where customers_id = :customers_id and products_id = :products_id limit 1');
$Qcheck->bindTable(':table_products_notifications', TABLE_PRODUCTS_NOTIFICATIONS);
$Qcheck->bindInt(':customers_id', $osC_Customer->getID());
$Qcheck->bindInt(':products_id', $osC_Product->getID());
$Qcheck->execute();
if ($Qcheck->numberOfRows() > 0) {
$Qn = $osC_Database->query('delete from :table_products_notifications where customers_id = :customers_id and products_id = :products_id');
$Qn->bindTable(':table_products_notifications', TABLE_PRODUCTS_NOTIFICATIONS);
$Qn->bindInt(':customers_id', $osC_Customer->getID());
$Qn->bindInt(':products_id', $osC_Product->getID());
$Qn->execute();
}
}
osc_redirect(osc_href_link(basename($_SERVER['SCRIPT_FILENAME']), osc_get_all_get_params(array('action'))));
}
示例3: execute
function execute()
{
global $osC_Session, $osC_ShoppingCart, $osC_Product, $osC_Language, $messageStack, $toC_Customization_Fields;
if (!isset($osC_Product)) {
$id = false;
foreach ($_GET as $key => $value) {
if ((ereg('^[0-9]+(_?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$', $key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
$id = $key;
}
break;
}
if (strpos($id, '_') !== false) {
$id = str_replace('_', '#', $id);
}
if ($id !== false && osC_Product::checkEntry($id)) {
$osC_Product = new osC_Product($id);
}
}
if (isset($osC_Product)) {
//customization fields check
if ($osC_Product->hasRequiredCustomizationFields()) {
if (!$toC_Customization_Fields->exists($osC_Product->getID())) {
$osC_Language->load('products');
$messageStack->add_session('products', $osC_Language->get('error_customization_fields_missing'), 'error');
osc_redirect(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getID()));
}
}
$variants = null;
if (isset($_POST['variants']) && is_array($_POST['variants'])) {
$variants = $_POST['variants'];
} else {
if (isset($_GET['variants']) && !empty($_GET['variants'])) {
$variants = osc_parse_variants_string($_GET['variants']);
}
}
$gift_certificate_data = null;
if ($osC_Product->isGiftCertificate() && isset($_POST['senders_name']) && isset($_POST['recipients_name']) && isset($_POST['message'])) {
if ($osC_Product->isEmailGiftCertificate()) {
$gift_certificate_data = array('senders_name' => $_POST['senders_name'], 'senders_email' => $_POST['senders_email'], 'recipients_name' => $_POST['recipients_name'], 'recipients_email' => $_POST['recipients_email'], 'message' => $_POST['message']);
} else {
$gift_certificate_data = array('senders_name' => $_POST['senders_name'], 'recipients_name' => $_POST['recipients_name'], 'message' => $_POST['message']);
}
if ($osC_Product->isOpenAmountGiftCertificate()) {
$gift_certificate_data['price'] = $_POST['gift_certificate_amount'];
}
$gift_certificate_data['type'] = $osC_Product->getGiftCertificateType();
}
$quantity = null;
if (isset($_POST['quantity']) && is_numeric($_POST['quantity'])) {
$quantity = $_POST['quantity'];
}
if ($osC_Product->isGiftCertificate() && $gift_certificate_data == null) {
osc_redirect(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getID()));
return false;
} else {
$osC_ShoppingCart->add($osC_Product->getID(), $variants, $quantity, $gift_certificate_data);
}
}
osc_redirect(osc_href_link(FILENAME_CHECKOUT));
}
示例4: execute
function execute()
{
global $osC_Session, $osC_Product, $toC_Customization_Fields, $osC_Language, $messageStack;
if (!isset($osC_Product)) {
$id = false;
foreach ($_GET as $key => $value) {
if ((ereg('^[0-9]+(#?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$', $key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
$id = $key;
}
break;
}
if ($id !== false && osC_Product::checkEntry($id)) {
$osC_Product = new osC_Product($id);
}
}
if (isset($osC_Product)) {
$errors = array();
$data = array();
$customizations = $osC_Product->getCustomizations();
foreach ($customizations as $field) {
$fields_id = $field['customization_fields_id'];
if ($field['type'] == CUSTOMIZATION_FIELD_TYPE_INPUT_TEXT) {
$value = isset($_POST['customizations'][$fields_id]) ? $_POST['customizations'][$fields_id] : null;
if ($field['is_required'] && $value == null) {
$messageStack->add_session('products_customizations', sprintf($osC_Language->get('error_customization_field_must_be_specified'), $field['name']), 'error');
} else {
if ($value != null) {
$data[$fields_id] = array('customization_fields_id' => $field['customization_fields_id'], 'customization_fields_name' => $field['name'], 'customization_type' => CUSTOMIZATION_FIELD_TYPE_INPUT_TEXT, 'customization_value' => $value);
}
}
} else {
$file = new upload('customizations_' . $fields_id, DIR_FS_CACHE . '/products_customizations/');
if ($field['is_required'] && !$file->exists() && !$toC_Customization_Fields->hasCustomizationField($osC_Product->getID(), $fields_id)) {
$messageStack->add_session('products', sprintf($osC_Language->get('error_customization_field_must_be_specified'), $field['name']), 'error');
} else {
if ($file->exists()) {
if ($file->parse() && $file->save()) {
$filename = $file->filename;
$cache_filename = md5($filename . time());
rename(DIR_FS_CACHE . '/products_customizations/' . $filename, DIR_FS_CACHE . '/products_customizations/' . $cache_filename);
$data[$fields_id] = array('customization_fields_id' => $field['customization_fields_id'], 'customization_fields_name' => $field['name'], 'customization_type' => CUSTOMIZATION_FIELD_TYPE_INPUT_FILE, 'customization_value' => $filename, 'cache_filename' => $cache_filename);
} else {
$messageStack->add_session('products_customizations', $file->getLastError(), 'error');
}
}
}
}
}
//var_dump($data);exit;
if ($messageStack->size('products_customizations') === 0) {
$toC_Customization_Fields->set($osC_Product->getID(), $data);
}
}
osc_redirect(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getID()));
}
示例5: execute
function execute()
{
global $osC_Session, $osC_ShoppingCart, $osC_Product;
if (!isset($osC_Product)) {
$id = false;
foreach ($_GET as $key => $value) {
if ((ereg('^[0-9]+(#?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$', $key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
$id = $key;
}
break;
}
if ($id !== false && osC_Product::checkEntry($id)) {
$osC_Product = new osC_Product($id);
}
}
if (isset($osC_Product)) {
$variants = null;
if (isset($_POST['variants']) && is_array($_POST['variants'])) {
$variants = $_POST['variants'];
} else {
if (isset($_GET['variants']) && !empty($_GET['variants'])) {
$variants = osc_parse_variants_string($_GET['variants']);
}
}
$gift_certificate_data = null;
if ($osC_Product->isGiftCertificate() && isset($_POST['senders_name']) && isset($_POST['recipients_name']) && isset($_POST['message'])) {
if ($osC_Product->isEmailGiftCertificate()) {
$gift_certificate_data = array('senders_name' => $_POST['senders_name'], 'senders_email' => $_POST['senders_email'], 'recipients_name' => $_POST['recipients_name'], 'recipients_email' => $_POST['recipients_email'], 'message' => $_POST['message']);
} else {
$gift_certificate_data = array('senders_name' => $_POST['senders_name'], 'recipients_name' => $_POST['recipients_name'], 'message' => $_POST['message']);
}
if ($osC_Product->isOpenAmountGiftCertificate()) {
$gift_certificate_data['price'] = $_POST['gift_certificate_amount'];
}
$gift_certificate_data['type'] = $osC_Product->getGiftCertificateType();
}
$quantity = null;
if (isset($_POST['quantity']) && is_numeric($_POST['quantity'])) {
$quantity = $_POST['quantity'];
}
if ($osC_Product->hasVariants() && empty($variants) || $osC_Product->isGiftCertificate() && $gift_certificate_data == null) {
osc_redirect(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getID()));
return false;
} else {
$osC_ShoppingCart->add($osC_Product->getID(), $variants, $quantity, $gift_certificate_data);
}
}
osc_redirect(osc_href_link(FILENAME_CHECKOUT));
}
示例6: execute
function execute()
{
global $osC_Session, $osC_ShoppingCart;
$id = false;
foreach ($_GET as $key => $value) {
if ((ereg('^[0-9]+(#?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$', $key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
$id = $key;
}
break;
}
if ($id !== false && osC_Product::checkEntry($id)) {
$osC_Product = new osC_Product($id);
$product_id = $osC_Product->getID();
//gift certificate use timestamp as variant
if ($osC_Product->isGiftCertificate()) {
$product_id .= '#' . $_GET['variants'];
} else {
if (isset($_GET['variants']) && ereg('^([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*$', $_GET['variants'])) {
$product_id .= '#' . $_GET['variants'];
}
}
$osC_ShoppingCart->remove($product_id);
}
osc_redirect(osc_href_link(FILENAME_CHECKOUT));
}
示例7: execute
function execute()
{
global $osC_Session, $osC_ShoppingCart, $osC_Product;
if (!isset($osC_Product)) {
$id = false;
foreach ($_GET as $key => $value) {
if ((is_numeric($key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
$id = $key;
}
break;
}
if ($id !== false && osC_Product::checkEntry($id)) {
$osC_Product = new osC_Product($id);
}
}
if (isset($osC_Product)) {
if ($osC_Product->hasVariants()) {
if (isset($_POST['variants']) && is_array($_POST['variants']) && !empty($_POST['variants'])) {
if ($osC_Product->variantExists($_POST['variants'])) {
$osC_ShoppingCart->add($osC_Product->getProductVariantID($_POST['variants']));
} else {
osc_redirect(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword()));
return false;
}
} else {
osc_redirect(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword()));
return false;
}
} else {
$osC_ShoppingCart->add($osC_Product->getID());
}
}
osc_redirect(osc_href_link(FILENAME_CHECKOUT));
}
示例8: execute
function execute()
{
global $osC_Session, $toC_Wishlist, $osC_Product;
$id = false;
foreach ($_GET as $key => $value) {
if ((ereg('^[0-9]+(_?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$', $key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
$id = $key;
}
break;
}
//change the variants in the product info page, then attach the wid param to represent the variant product
if (isset($_GET['wid']) && preg_match('/^[0-9]+(_?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$/', $_GET['wid'])) {
$id = $_GET['wid'];
}
if (strpos($id, '_') !== false) {
$id = str_replace('_', '#', $id);
}
if ($id !== false && osC_Product::checkEntry($id)) {
$osC_Product = new osC_Product($id);
}
if (isset($osC_Product)) {
$variants = null;
if (isset($_POST['variants']) && is_array($_POST['variants'])) {
$variants = $_POST['variants'];
} else {
if (isset($_GET['variants']) && !empty($_GET['variants'])) {
$variants = osc_parse_variants_string($_GET['variants']);
} else {
if (strpos($id, '#') !== false) {
$variants = osc_parse_variants_from_id_string($id);
}
}
}
if (!osc_empty($variants)) {
$toC_Wishlist->add($osC_Product->getID(), $variants);
} else {
$toC_Wishlist->add($osC_Product->getID());
}
}
osc_redirect(osc_href_link(FILENAME_ACCOUNT, 'wishlist'));
}
示例9: foreach
function osC_Products_Tell_a_friend()
{
global $osC_Services, $osC_Session, $osC_Language, $breadcrumb, $osC_Customer, $osC_NavigationHistory, $osC_Product;
if (ALLOW_GUEST_TO_TELL_A_FRIEND == '-1' && $osC_Customer->isLoggedOn() === false) {
$osC_NavigationHistory->setSnapshot();
osc_redirect(osc_href_link(FILENAME_ACCOUNT, 'login', 'SSL'));
}
$counter = 0;
foreach ($_GET as $key => $value) {
$counter++;
if ($counter < 2) {
continue;
}
if ((ereg('^[0-9]+(#?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$', $key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
if (osC_Product::checkEntry($key) === false) {
$this->_page_title = $osC_Language->get('product_not_found_heading');
$this->_page_contents = 'info_not_found.php';
} else {
$osC_Product = new osC_Product($key);
$this->_page_title = $osC_Product->getTitle();
if ($osC_Services->isStarted('breadcrumb')) {
$breadcrumb->add($osC_Product->getTitle(), osc_href_link(FILENAME_PRODUCTS, $osC_Product->getID()));
$breadcrumb->add($osC_Language->get('breadcrumb_tell_a_friend'), osc_href_link(FILENAME_PRODUCTS, $this->_module . '&' . $osC_Product->getID()));
}
if (isset($_GET['action']) && $_GET['action'] == 'process') {
$this->_process();
}
}
break;
}
}
if ($counter < 2) {
$this->_page_title = $osC_Language->get('product_not_found_heading');
$this->_page_contents = 'info_not_found.php';
}
}
示例10: execute
function execute()
{
global $osC_Database, $osC_Session, $osC_NavigationHistory, $osC_Customer;
if (!$osC_Customer->isLoggedOn()) {
$osC_NavigationHistory->setSnapshot();
osc_redirect(osc_href_link(FILENAME_ACCOUNT, 'login', 'SSL'));
return false;
}
$notifications = array();
if (isset($_GET['products']) && !empty($_GET['products'])) {
$products_array = explode(';', $_GET['products']);
foreach ($products_array as $product_id) {
if (is_numeric($product_id) && !in_array($product_id, $notifications)) {
$notifications[] = $product_id;
}
}
} else {
$id = false;
foreach ($_GET as $key => $value) {
if ((ereg('^[0-9]+(#?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$', $key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
$id = $key;
}
break;
}
if ($id !== false && osC_Product::checkEntry($id)) {
$osC_Product = new osC_Product($id);
$notifications[] = $osC_Product->getID();
}
}
if (!empty($notifications)) {
foreach ($notifications as $product_id) {
$Qcheck = $osC_Database->query('select products_id from :table_products_notifications where customers_id = :customers_id and products_id = :products_id limit 1');
$Qcheck->bindTable(':table_products_notifications', TABLE_PRODUCTS_NOTIFICATIONS);
$Qcheck->bindInt(':customers_id', $osC_Customer->getID());
$Qcheck->bindInt(':products_id', $product_id);
$Qcheck->execute();
if ($Qcheck->numberOfRows() < 1) {
$Qn = $osC_Database->query('insert into :table_products_notifications (products_id, customers_id, date_added) values (:products_id, :customers_id, :date_added)');
$Qn->bindTable(':table_products_notifications', TABLE_PRODUCTS_NOTIFICATIONS);
$Qn->bindInt(':products_id', $product_id);
$Qn->bindInt(':customers_id', $osC_Customer->getID());
$Qn->bindRaw(':date_added', 'now()');
$Qn->execute();
}
}
}
osc_redirect(osc_href_link(basename($_SERVER['SCRIPT_FILENAME']), osc_get_all_get_params(array('action'))));
}
示例11: execute
function execute()
{
global $osC_Session, $toC_Wishlist, $osC_Product;
if (!isset($osC_Product)) {
$id = false;
foreach ($_GET as $key => $value) {
if ((ereg('^[0-9]+(#?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$', $key) || ereg('^[a-zA-Z0-9 -_]*$', $key)) && $key != $osC_Session->getName()) {
$id = $key;
}
break;
}
if ($id !== false && osC_Product::checkEntry($id)) {
$osC_Product = new osC_Product($id);
}
}
if (isset($osC_Product)) {
$toC_Wishlist->add($osC_Product->getID());
}
osc_redirect(osc_href_link(FILENAME_ACCOUNT, 'wishlist'));
}
示例12: addProduct
function addProduct()
{
global $osC_ShoppingCart, $toC_Json, $osC_Language, $toC_Customization_Fields;
$osC_Language->load('products');
if (is_numeric($_REQUEST['pID']) && osC_Product::checkEntry($_REQUEST['pID'])) {
$osC_ShoppingCart->resetShippingMethod();
$osC_Product = new osC_Product($_REQUEST['pID']);
//gift certificate check
if ($osC_Product->isGiftCertificate() && !isset($_POST['senders_name'])) {
$response = array('success' => false, 'feedback' => $osC_Language->get('error_gift_certificate_data_missing'));
} else {
if ($osC_Product->hasRequiredCustomizationFields() && !$toC_Customization_Fields->exists($osC_Product->getID())) {
$response = array('success' => false, 'feedback' => $osC_Language->get('error_customization_fields_missing'));
} else {
$variants = null;
if (isset($_REQUEST['variants']) && !empty($_REQUEST['variants'])) {
$variants = osc_parse_variants_string($_REQUEST['variants']);
}
$gift_certificate_data = null;
if ($osC_Product->isGiftCertificate() && isset($_POST['senders_name']) && isset($_POST['recipients_name']) && isset($_POST['message'])) {
if ($osC_Product->isEmailGiftCertificate()) {
$gift_certificate_data = array('senders_name' => $_POST['senders_name'], 'senders_email' => $_POST['senders_email'], 'recipients_name' => $_POST['recipients_name'], 'recipients_email' => $_POST['recipients_email'], 'message' => $_POST['message']);
} else {
$gift_certificate_data = array('senders_name' => $_POST['senders_name'], 'recipients_name' => $_POST['recipients_name'], 'message' => $_POST['message']);
}
if ($osC_Product->isOpenAmountGiftCertificate()) {
$gift_certificate_data['price'] = $_POST['gift_certificate_amount'];
}
$gift_certificate_data['type'] = $osC_Product->getGiftCertificateType();
}
$osC_ShoppingCart->add($_REQUEST['pID'], $variants, $_REQUEST['pQty'], $gift_certificate_data);
$content = self::_getShoppingCart();
$response = array('success' => true, 'content' => $content);
}
}
} else {
$response = array('success' => false);
}
echo $toC_Json->encode($response);
}
示例13: getProducts
function getProducts()
{
$history = array();
if (isset($this->visits['products']) && empty($this->visits['products']) === false) {
$counter = 0;
foreach ($this->visits['products'] as $k => $v) {
$counter++;
$osC_Product = new osC_Product($v['id']);
$osC_Category = new osC_Category($osC_Product->getCategoryID());
if ($osC_Product->isValid() === true) {
$history[] = array('name' => $osC_Product->getTitle(), 'id' => $osC_Product->getID(), 'keyword' => $osC_Product->getKeyword(), 'price' => SERVICE_RECENTLY_VISITED_SHOW_PRODUCT_PRICES == '1' ? $osC_Product->getPriceFormated(true) : '', 'image' => $osC_Product->getImage(), 'category_name' => $osC_Category->getTitle(), 'category_path' => $osC_Category->getPath());
}
if ($counter == SERVICE_RECENTLY_VISITED_MAX_PRODUCTS) {
break;
}
}
}
return $history;
}
示例14: addProduct
function addProduct()
{
global $osC_ShoppingCart, $toC_Json, $osC_Language, $toC_Customization_Fields, $osC_Image, $osC_Currencies;
$osC_Language->load('products');
if (is_numeric($_POST['pID']) && osC_Product::checkEntry($_POST['pID'])) {
$osC_ShoppingCart->resetShippingMethod();
$osC_Product = new osC_Product($_POST['pID']);
//gift certificate check
if ($osC_Product->isGiftCertificate() && !isset($_POST['senders_name'])) {
$response = array('success' => false, 'feedback' => $osC_Language->get('error_gift_certificate_data_missing'));
} else {
if ($osC_Product->hasRequiredCustomizationFields() && !$toC_Customization_Fields->exists($osC_Product->getID())) {
$response = array('success' => false, 'feedback' => $osC_Language->get('error_customization_fields_missing'));
} else {
$variants = null;
if (isset($_POST['variants']) && !empty($_POST['variants'])) {
$variants = osc_parse_variants_string($_POST['variants']);
}
$gift_certificate_data = null;
if ($osC_Product->isGiftCertificate() && isset($_POST['senders_name']) && isset($_POST['recipients_name']) && isset($_POST['message'])) {
if ($osC_Product->isEmailGiftCertificate()) {
$gift_certificate_data = array('senders_name' => $_POST['senders_name'], 'senders_email' => $_POST['senders_email'], 'recipients_name' => $_POST['recipients_name'], 'recipients_email' => $_POST['recipients_email'], 'message' => $_POST['message']);
} else {
$gift_certificate_data = array('senders_name' => $_POST['senders_name'], 'recipients_name' => $_POST['recipients_name'], 'message' => $_POST['message']);
}
if ($osC_Product->isOpenAmountGiftCertificate()) {
$gift_certificate_data['price'] = $_POST['gift_certificate_amount'];
}
$gift_certificate_data['type'] = $osC_Product->getGiftCertificateType();
}
$osC_ShoppingCart->add($_POST['pID'], $variants, $_POST['pQty'], $gift_certificate_data);
$items = 0;
foreach ($osC_ShoppingCart->getProducts() as $products_id => $data) {
$items += $data['quantity'];
}
//build the content of the confirmation dialog
$product_id_string = osc_get_product_id_string($_POST['pID'], $variants);
//find the added product
$added_product = null;
foreach ($osC_ShoppingCart->getProducts() as $id_string => $product) {
if ($product_id_string == $id_string) {
$added_product = $product;
break;
}
}
//build the dialog
$confirm_dialog = null;
if ($added_product !== null) {
$confirm_dialog .= '<div class="dlgConfirm">' . '<div class="itemImage">' . $osC_Image->show($added_product['image'], $added_product['name'], '', 'thumbnail') . '</div>' . '<div class="itemDetail"><p>' . sprintf($osC_Language->get('add_to_cart_confirmation'), $added_product['quantity'] . ' x ' . osc_link_object(osc_href_link(FILENAME_CHECKOUT, null, 'SSL'), $added_product['name']));
//gift certificates
if ($added_product['type'] == PRODUCT_TYPE_GIFT_CERTIFICATE) {
$confirm_dialog .= '<br />- ' . $osC_Language->get('senders_name') . ': ' . $product['gc_data']['senders_name'];
if ($added_product['gc_data']['type'] == GIFT_CERTIFICATE_TYPE_EMAIL) {
$confirm_dialog .= '<br />- ' . $osC_Language->get('senders_email') . ': ' . $product['gc_data']['senders_email'];
}
$confirm_dialog .= '<br />- ' . $osC_Language->get('recipients_name') . ': ' . $product['gc_data']['recipients_name'];
if ($added_product['gc_data']['type'] == GIFT_CERTIFICATE_TYPE_EMAIL) {
$confirm_dialog .= '<br />- ' . $osC_Language->get('recipients_email') . ': ' . $product['gc_data']['recipients_email'];
}
$confirm_dialog .= '<br />- ' . $osC_Language->get('message') . ': ' . $product['gc_data']['message'];
}
$confirm_dialog .= '</p>';
//variants products
if ($osC_ShoppingCart->hasVariants($product['id'])) {
foreach ($osC_ShoppingCart->getVariants($product['id']) as $variants) {
$confirm_dialog .= '<div>';
$confirm_dialog .= '<strong>' . $variants['groups_name'] . ' - </strong><strong>' . $variants['values_name'] . '</strong></tr>';
$confirm_dialog .= '</div>';
}
}
$confirm_dialog .= '</div>';
//cart total
$confirm_dialog .= '<p><strong>' . $osC_ShoppingCart->numberOfItems() . ' ' . $osC_Language->get('text_items') . '</strong> - <strong>' . $osC_Currencies->format($osC_ShoppingCart->getTotal()) . '</strong></p>';
//bottom buttons
$confirm_dialog .= '<div class="btns">' . osc_link_object(osc_href_link(FILENAME_CHECKOUT, 'checkout', 'SSL'), osc_draw_image_button('button_checkout.gif', $osC_Language->get('button_checkout'))) . osc_link_object(osc_href_link(FILENAME_CHECKOUT, 'cart', 'SSL'), osc_draw_image_button('button_ajax_cart.png')) . osc_link_object(osc_href_link(FILENAME_DEFAULT), osc_draw_image_button('button_continue.gif'), 'id="btnContinue"') . '</div>';
$confirm_dialog .= '</div>';
}
$response = array('success' => true, 'items' => $items, 'confirm_dialog' => $confirm_dialog);
}
}
} else {
$response = array('success' => false);
}
echo $toC_Json->encode($response);
}
示例15: add
function add($products_id_string, $variants = null, $quantity = null, $gift_certificates_data = null, $action = 'add')
{
global $osC_Database, $osC_Services, $osC_Language, $osC_Customer, $osC_Image, $toC_Wishlist;
$products_id = osc_get_product_id($products_id_string);
$osC_Product = new osC_Product($products_id);
if ($osC_Product->isGiftCertificate()) {
if ($variants == null || empty($variants)) {
$products_id_string = $products_id . '#' . time();
} else {
$products_id_string = $products_id . '#' . $variants;
//set variants to null
$variants = null;
}
} else {
$products_id_string = osc_get_product_id_string($products_id_string, $variants);
}
if ($osC_Product->getID() > 0) {
if ($toC_Wishlist->hasProduct($products_id)) {
$toC_Wishlist->deleteProduct($products_id);
}
if ($this->exists($products_id_string)) {
if (!is_numeric($quantity)) {
$quantity = $this->getQuantity($products_id_string) + 1;
} else {
if (is_numeric($quantity) && $quantity == 0) {
$this->remove($products_id_string);
return;
} else {
if ($action == 'add') {
$quantity = $this->getQuantity($products_id_string) + $quantity;
} else {
if ($action == 'update') {
$quantity = $quantity;
}
}
}
}
if ($osC_Product->isGiftCertificate()) {
if ($quantity > 1) {
$quantity = 1;
$error = $osC_Language->get('error_gift_certificate_quantity_must_be_one');
}
}
//check minimum order quantity
$products_moq = $osC_Product->getMOQ();
if ($quantity < $products_moq) {
$quantity = $products_moq;
$error = sprintf($osC_Language->get('error_minimum_order_quantity'), $osC_Product->getTitle(), $products_moq);
}
//check maximum order quantity
$products_max_order_quantity = $osC_Product->getMaxOrderQuantity();
if ($products_max_order_quantity > 0) {
if ($quantity > $products_max_order_quantity) {
$quantity = $products_max_order_quantity;
$error = sprintf($osC_Language->get('error_maximum_order_quantity'), $osC_Product->getTitle(), $products_max_order_quantity);
}
}
//check order increment
$increment = $osC_Product->getOrderIncrement();
if (($quantity - $products_moq) % $increment != 0) {
$quantity = $products_moq + (floor(($quantity - $products_moq) / $increment) + 1) * $increment;
$error = sprintf($osC_Language->get('error_order_increment'), $osC_Product->getTitle(), $increment);
}
//set error to session
if (isset($error) && !empty($error)) {
$this->_contents[$products_id_string]['error'] = $error;
}
if ($osC_Product->isGiftCertificate() && $osC_Product->isOpenAmountGiftCertificate()) {
$price = $this->_contents[$products_id_string]['price'];
} else {
$price = $osC_Product->getPrice($variants, $quantity);
if ($osC_Services->isStarted('specials')) {
global $osC_Specials;
if ($new_price = $osC_Specials->getPrice($products_id)) {
$price = $new_price;
}
}
}
$this->_contents[$products_id_string]['quantity'] = $quantity;
$this->_contents[$products_id_string]['price'] = $price;
$this->_contents[$products_id_string]['final_price'] = $price;
// update database
if ($osC_Customer->isLoggedOn()) {
$Qupdate = $osC_Database->query('update :table_customers_basket set customers_basket_quantity = :customers_basket_quantity, gift_certificates_data = :gift_certificates_data where customers_id = :customers_id and products_id = :products_id');
$Qupdate->bindTable(':table_customers_basket', TABLE_CUSTOMERS_BASKET);
$Qupdate->bindInt(':customers_basket_quantity', $quantity);
if ($osC_Product->getProductType() == PRODUCT_TYPE_GIFT_CERTIFICATE) {
$Qupdate->bindValue(':gift_certificates_data', serialize($gift_certificates_data));
} else {
$Qupdate->bindRaw(':gift_certificates_data', 'null');
}
$Qupdate->bindInt(':customers_id', $osC_Customer->getID());
$Qupdate->bindValue(':products_id', $products_id_string);
$Qupdate->execute();
}
} else {
if (!is_numeric($quantity)) {
$quantity = 1;
}
if ($osC_Product->isGiftCertificate()) {
//.........这里部分代码省略.........