本文整理汇总了PHP中osC_Product::getMOQ方法的典型用法代码示例。如果您正苦于以下问题:PHP osC_Product::getMOQ方法的具体用法?PHP osC_Product::getMOQ怎么用?PHP osC_Product::getMOQ使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osC_Product
的用法示例。
在下文中一共展示了osC_Product::getMOQ方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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()) {
//.........这里部分代码省略.........