public static function getSpecificPrice($id_product, $id_shop, $id_currency, $id_country, $id_group, $quantity, $id_product_attribute = null, $id_customer = 0, $id_cart = 0, $real_quantity = 0) { $specific_price = parent::getSpecificPrice($id_product, $id_shop, $id_currency, $id_country, $id_group, $quantity, $id_product_attribute, $id_customer, $id_cart, $real_quantity); if (Module::isEnabled('loyaltydiscount')) { include_once _PS_MODULE_DIR_ . DIRECTORY_SEPARATOR . 'loyaltydiscount' . DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . 'LoyaltyDiscount.php'; LoyaltyDiscountModel::applyPossibleDiscount($id_product, $id_shop, $specific_price); } return $specific_price; }
public function delete() { if (parent::delete()) { // Flush cache when we deletind a new specific price self::$_specificPriceCache = array(); Product::flushPriceCache(); // Refresh cache of feature detachable Configuration::updateGlobalValue('PS_SPECIFIC_PRICE_FEATURE_ACTIVE', SpecificPrice::isCurrentlyUsed($this->def['table'])); return true; } return false; }
function set_price_rule($ProductId,$itemNumber,$list){ global $webService,$webservice_exi; $prices = SpecificPriceCore::getIdsByProductId($ProductId); $opt = array('resource' => 'specific_prices'); foreach ($prices as $price_rule_id){ $opt['id'] = (int)$price_rule_id['id_specific_price']; $xml = $webService->delete($opt); } $parameter = array("ItemNumber"=>$itemNumber, "List"=>$list, "key"=>"8770471727"); $price_details = $webservice_exi->GetPrice($parameter); $price_details = $price_details->GetPriceResult->PriceListResult; if(isset($price_details->Vol1)) savePriceRule($ProductId,$price_details->Vol1, $price_details->Price1,$price_details->LPrice); if(isset($price_details->Vol2)) savePriceRule($ProductId,$price_details->Vol2, $price_details->Price2,$price_details->LPrice); if(isset($price_details->Vol3)) savePriceRule($ProductId,$price_details->Vol3, $price_details->Price3,$price_details->LPrice); if(isset($price_details->Vol4)) savePriceRule($ProductId,$price_details->Vol4, $price_details->Price4,$price_details->LPrice); }
/** * Get price priority * * @param null|int $idProduct * * @return array */ public function getPricePriority($idProduct = null) { if (!$idProduct) { return [0 => "id_shop", 1 => "id_currency", 2 => "id_country", 3 => "id_group"]; } $specific_price_priorities = \SpecificPriceCore::getPriority((int) $idProduct); // Not use id_customer if ($specific_price_priorities[0] == 'id_customer') { unset($specific_price_priorities[0]); } return array_values($specific_price_priorities); }