Jump to content
Messolongi

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

Recommended Posts

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

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

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

Ευχαριστώ

  • Like 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Ευχαριστώ πολύ Άγγελε (όνομα & πράγμα).
Θα το δοκιμάσω & τα λέμε σύντομα.

Πιστεύω να τα καταφέρω

Χαιρετισμούς,

Μάκης Ντρες

Share this post


Link to post
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 μου εξαφάνισε τα προϊόντα. Το δοκίμασα επίσης & τοπικά & συνέβη το ίδιο.

Μήπως το πρόβλημα, τελικά, είναι εντελώς προσωπικό?

Share this post


Link to post
Share on other sites

καλημέρα

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More