Jump to content

Χονδρική & λιανική τιμή


Messolongi

Recommended Posts

Καλησπέρα παιδια,

Υπαρχει τρόπος να διαχωρίζουμε τις λιανικές τιμές προϊόντος, που εμφανίζονται για τους πελάτες λιανικής, από αυτές τις χονδρικής πώλησης?
Επειδή έχουμε πελάτες χονδρικής, πως μπορούν να βλέπουν τις ειδικές τιμές που τους κάνουμε, χωρίς οι πελάτες λιανικής να έχουν πρόσβαση.

Είναι εφικτό?

Ευχαριστώ

  • Like 1
Link to comment
Share on other sites

Γι' αυτό το λόγο ζητώ τα στοιχεία για πελάτες χονδρικής, ώστε να τους στέλνω την εκπτωτική πολιτική με email ή fax, αναλόγως των περιπτώσεων. Τι άλλο μπορώ να κάνω? Δεν μπορούμε να βάλουμε στην ίδια θέση τη χονδρική με τη λιανική πώληση!!!

Link to comment
Share on other sites

κοίτα επειδή γενικά δεν έχω τόσο χρόνο να ασχοληθώ,αλλα σήμερα μου ήρθε μια ιδέα.
Πάμε και κάνουμε μια εγγραφη με ena test χρηστη.
μετά πάμε στους customers/groups και φτιάχνουμε ένα group που θα το λέμε χονδρική.
Συνδέουμε το test χρηστη στο group χονδρικής.
Όταν πάμε στο group χονδρικής θα δεις κάπου λέει ότι θέλουμε η τιμές να είναι με F.P.A και χωρίς.
επιλέγουμε το χωρίς και μας το δείχνει κανονικά.
Θα ψάξω το κώδικα και εκεί που βάζεις το χωρίς φπα να διαβάζει τη τιμή χονδρικής του προϊόντος..το πεδίο αυτό το έχουν τα προϊόντα..οποτε θα κάνει αυτό που θέλουμε.

Link to comment
Share on other sites

επειδή το προηγούμενο που ανέβασα είναι λίγο πολύπλοκο και θέλει και επεμβασει στη βάση.
μπορούμε να αλλάξουμε μέσα στο classes/products.php γραμμή 1361 με αυτό :


public static function getPriceStatic($id_product, $usetax = true, $id_product_attribute = NULL, $decimals = 6, $divisor = NULL, $only_reduc = false, $usereduc = true, $quantity = 1, $forceAssociatedTax = false)
{
   global $cookie;

   // Get id_customer if exists
   $id_customer = ((isset($cookie) AND get_class($cookie) == 'Cookie' AND isset($cookie->id_customer) AND $cookie->id_customer)
       ? intval($cookie->id_customer) : null);

   $customer = new Customer($id_customer);
   $wholesaler = $customer->isMemberOfGroup(2);

   if (!Validate::isBool($usetax) OR !Validate::isUnsignedId($id_product))
       die(Tools::displayError());

   // Caching system
   $cacheId = $id_product.'-'.($usetax?'1':'0').'-'.$id_product_attribute.'-'.$decimals.'-'.$divisor.'-'.($only_reduc?'1':'0').'-'.($usereduc?'1':'0').'-'.$quantity.'-'.($wholesaler?'1':'0');
   if (isset(self::$_prices[$cacheId]))
       return self::$_prices[$cacheId];

   // Getting price
   $result = Db::getInstance()->getRow('
   SELECT p.`price`, p.`wholesale_price`, p.`reduction_price`, p.`reduction_percent`, p.`reduction_from`, p.`reduction_to`, p.`id_tax`, t.`rate`, 
   '.($id_product_attribute ? 'pa.`price`' : 'IFNULL((SELECT ' . ($wholesaler ? 'pa.wholesale_price' : 'pa.price') . ' FROM `'._DB_PREFIX_.'product_attribute` pa WHERE id_product = '.intval($id_product).' AND default_on = 1), 0)').' AS attribute_price
   FROM `'._DB_PREFIX_.'product` p
   '.($id_product_attribute ? 'LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON pa.`id_product_attribute` = '.intval($id_product_attribute) : '').'
   LEFT JOIN `'._DB_PREFIX_.'tax` AS t ON t.`id_tax` = p.`id_tax`
   WHERE p.`id_product` = '.intval($id_product));
   $price = $wholesaler ? $result['wholesale_price'] : $result['price'];

   // Exclude tax
   $tax = floatval(Tax::getApplicableTax(intval($result['id_tax']), floatval($result['rate'])));
   if ($forceAssociatedTax)
       $tax = floatval($result['rate']);
   if (Tax::excludeTaxeOption() OR !$tax)
       $usetax = false;
   if ($usetax)
       $price *= (1 + ($tax / 100));

   // Attribute price
   $attribute_price = $usetax ? $result['attribute_price'] : ($result['attribute_price'] / (1 + (($tax ? $tax : $result['rate']) / 100)));
   if (isset($result['attribute_price']))
       $price += $attribute_price;
   if (!$wholesaler)
       $reduc = self::getReductionValue($result['reduction_price'], $result['reduction_percent'], $result['reduction_from'], $result['reduction_to'],
           $price, $usetax, floatval($result['rate']));

   // Only reduction
   if ($only_reduc)
       return $reduc;

   // Reduction
   if ($usereduc)
       $price -= $reduc;

   // Quantity discount
   if (!$wholesaler AND $quantity > 1 AND ($qtyD = QuantityDiscount::getDiscountFromQuantity($id_product, $quantity)))
       $price -= QuantityDiscount::getValue($price, $qtyD->id_discount_type, $qtyD->value);

   // Group reduction
   if ($id_customer)
       $price *= ((100 - Group::getReduction($id_customer))/100);

   self::$_prices[$cacheId] = ($divisor AND $divisor != 'NULL') ? number_format($price/$divisor, $decimals, '.', '') : number_format($price, $decimals, '.', '');

   return self::$_prices[$cacheId];
}



δουλεύει μια χαρά και περνει την τιμή χονδρικής που έχει το κάθε προϊόν.

απλά πρέπει μέσα στα groups να φτιάξετε μια ομάδα που να την ονομάζετε wholesaler

Link to comment
Share on other sites

επειδή το προηγούμενο που ανέβασα είναι λίγο πολύπλοκο και θέλει και επεμβασει στη βάση.
μπορούμε να αλλάξουμε μέσα στο classes/products.php γραμμή 1361 με αυτό :


public static function getPriceStatic($id_product, $usetax = true, $id_product_attribute = NULL, $decimals = 6, $divisor = NULL, $only_reduc = false, $usereduc = true, $quantity = 1, $forceAssociatedTax = false)
{
   global $cookie;

   // Get id_customer if exists
   $id_customer = ((isset($cookie) AND get_class($cookie) == 'Cookie' AND isset($cookie->id_customer) AND $cookie->id_customer)
       ? intval($cookie->id_customer) : null);

   $customer = new Customer($id_customer);
   $wholesaler = $customer->isMemberOfGroup(2);

   if (!Validate::isBool($usetax) OR !Validate::isUnsignedId($id_product))
       die(Tools::displayError());

   // Caching system
   $cacheId = $id_product.'-'.($usetax?'1':'0').'-'.$id_product_attribute.'-'.$decimals.'-'.$divisor.'-'.($only_reduc?'1':'0').'-'.($usereduc?'1':'0').'-'.$quantity.'-'.($wholesaler?'1':'0');
   if (isset(self::$_prices[$cacheId]))
       return self::$_prices[$cacheId];

   // Getting price
   $result = Db::getInstance()->getRow('
   SELECT p.`price`, p.`wholesale_price`, p.`reduction_price`, p.`reduction_percent`, p.`reduction_from`, p.`reduction_to`, p.`id_tax`, t.`rate`, 
   '.($id_product_attribute ? 'pa.`price`' : 'IFNULL((SELECT ' . ($wholesaler ? 'pa.wholesale_price' : 'pa.price') . ' FROM `'._DB_PREFIX_.'product_attribute` pa WHERE id_product = '.intval($id_product).' AND default_on = 1), 0)').' AS attribute_price
   FROM `'._DB_PREFIX_.'product` p
   '.($id_product_attribute ? 'LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON pa.`id_product_attribute` = '.intval($id_product_attribute) : '').'
   LEFT JOIN `'._DB_PREFIX_.'tax` AS t ON t.`id_tax` = p.`id_tax`
   WHERE p.`id_product` = '.intval($id_product));
   $price = $wholesaler ? $result['wholesale_price'] : $result['price'];

   // Exclude tax
   $tax = floatval(Tax::getApplicableTax(intval($result['id_tax']), floatval($result['rate'])));
   if ($forceAssociatedTax)
       $tax = floatval($result['rate']);
   if (Tax::excludeTaxeOption() OR !$tax)
       $usetax = false;
   if ($usetax)
       $price *= (1 + ($tax / 100));

   // Attribute price
   $attribute_price = $usetax ? $result['attribute_price'] : ($result['attribute_price'] / (1 + (($tax ? $tax : $result['rate']) / 100)));
   if (isset($result['attribute_price']))
       $price += $attribute_price;
   if (!$wholesaler)
       $reduc = self::getReductionValue($result['reduction_price'], $result['reduction_percent'], $result['reduction_from'], $result['reduction_to'],
           $price, $usetax, floatval($result['rate']));

   // Only reduction
   if ($only_reduc)
       return $reduc;

   // Reduction
   if ($usereduc)
       $price -= $reduc;

   // Quantity discount
   if (!$wholesaler AND $quantity > 1 AND ($qtyD = QuantityDiscount::getDiscountFromQuantity($id_product, $quantity)))
       $price -= QuantityDiscount::getValue($price, $qtyD->id_discount_type, $qtyD->value);

   // Group reduction
   if ($id_customer)
       $price *= ((100 - Group::getReduction($id_customer))/100);

   self::$_prices[$cacheId] = ($divisor AND $divisor != 'NULL') ? number_format($price/$divisor, $decimals, '.', '') : number_format($price, $decimals, '.', '');

   return self::$_prices[$cacheId];
}



δουλεύει μια χαρά και περνει την τιμή χονδρικής που έχει το κάθε προϊόν.

απλά πρέπει μέσα στα groups να φτιάξετε μια ομάδα που να την ονομάζετε wholesaler






Καλησπέρα, έκανα copy paste τον κώδικα στο classes/products.php στη γραμμή 1361, με έκδοση 1.3. Μου εξαφάνισε όλο το template απο το front office & στο back office μου εξαφάνισε τα προϊόντα. Το δοκίμασα επίσης & τοπικά & συνέβη το ίδιο.

Μήπως το πρόβλημα, τελικά, είναι εντελώς προσωπικό?
Link to comment
Share on other sites

καλημέρα

και εγώ που έκανα κάποιες δοκιμες σε διαφορες εκδόσεις,μπορεί να παρουσιάσει αυτό το πρόβλημα.
Το έψαξα αλλα δεν βρήκα κάτι και έτσι έκανα αυτό:
έκανα εγκατάσταση τους πίνακες και όλα τα αρχεία από το post που έβαλα πιο πάνω,και μετά στη product.php που έχει το post πιο πάνω πρόσθεσα το κομμάτι του κώδικα που έβαλα.μου δουλεύει μια χαρά χωρίς να έχω προβλήματα στο back office.
Αυτό το έκανα γιατί ο κώδικας που έβαλα υπολογίζει τη χοντρική μου χωρίς την έκπτωση στη λιανική,ενώ ο κώδικας που έχει μέσα το πρώτο post αφαιρεί την έκπτωση και στη χονδρική.
εγώ έχω έκδοση 1.3.1.1

Link to comment
Share on other sites

  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...