Γενική Υποστήριξη
#5543 από slumdog
04 Ιαν 2019, 12:37
Καλησπέρα και καλή χρονιά!!!
Εχω ένα θέμα που με προβληματίζει!

Προσπαθώ να περάσω μαζικά πόντους ανταμοιβής σε όλα τα προϊόντα για μία ομάδα πελατών!

Δοκίμασα τροποποιώντας το παρακάτω όμως κολλάω σε μία περίπτωση!
Για τα προϊόντα με κανονική τιμή οι πόντοι θα είναι είναι επι 10 π.χ 10€ = 100πόντοι αντανοιβής.
Όμως στα προϊόντα που έχουν special_price, οι πόντοι θα είναι 33.33 πχ 10€ = 33 πόντοι ανταμοιβής

Καμια ιδέα;


Κώδικας: Επιλογή όλωνTRUNCATE TABLE  `product_reward`;

INSERT INTO `product_reward` (product_id) SELECT product.product_id AS product_id FROM `product`;

UPDATE `product_reward` pr LEFT JOIN `product` p ON (pr.product_id = p.product_id) SET pr.customer_group_id = '8', pr.points = ROUND(p.price * 5)
#5544 από Opencart-Hellas
04 Ιαν 2019, 18:20
Καλησπέρα και καλή χρονιά

Αφού έχεις τρέξει τα queries που αναφέρει το post και έχεις κάνει populate τα tables με τιμές δοκίμασε να δώσεις το παρακάτω που θα περάσει τις τιμές των specials:

Κώδικας: Επιλογή όλωνUPDATE `oc_product_reward` pr LEFT JOIN `oc_product` p ON (pr.product_id = p.product_id)
INNER JOIN (SELECT * FROM `oc_product_special` ps WHERE ps.customer_group_id = '8' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC) AS sp ON (p.product_id = sp.product_id)
SET pr.customer_group_id = '8', pr.points =  ROUND(sp.price * 0.33)


Εννοείται ότι κάνεις πρώτα backup και προσαρμόζεις τα prefixes, το group και τον τύπο της τιμής που θα προσαρμοστεί.

Υ.Γ. Το ερώτημα σου έχει απαντηθεί και στο group προγραμματιστών, αλλά για περαιτέρω υποστήριξη είναι καλύτερα από εδώ για να έχει πρόσβαση περισσότερος κόσμος.
#5545 από slumdog
05 Ιαν 2019, 14:52
Επειδή το έκανα και δούλεψε, σημειώνω παρακάτω ακριβώς τι ήθελα να κάνω και ποια queries εκανα για κάθε βήμα!

1. Ήθελα σε κάθε προϊον να βάλω πόντους ανταμοιβής Χ 10 της αρχικής τιμής για την default ομάδα πελατών! Το query ήταν το παρακάτω:

Κώδικας: Επιλογή όλωνTRUNCATE TABLE  `oc_product_reward`;

INSERT INTO `oc_product_reward` (product_id) SELECT oc_product.product_id AS product_id FROM `oc_product`;

UPDATE `oc_product_reward` pr LEFT JOIN `oc_product` p ON (pr.product_id = p.product_id) SET pr.customer_group_id = '1', pr.points = ROUND(p.price * 10);


2. Σε δεύτερη φάση ήθελα στα προϊόντα που είχαν special price οι πόντοι να είναι το 1/3 της special price!
Οπότε το query ήταν το παρακάτω:

Κώδικας: Επιλογή όλωνUPDATE `oc_product_reward` pr LEFT JOIN `oc_product` p ON (pr.product_id = p.product_id)
INNER JOIN (SELECT * FROM `oc_product_special` ps WHERE ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC) AS sp ON (p.product_id = sp.product_id)
SET pr.customer_group_id = '1', pr.points = ROUND(sp.price * 3.33)

ΣΥΝΔΕΔΕΜΕΝΑ ΜΕΛΗ

Μέλη σε αυτό το φόρουμ: Δεν υπάρχουν εγγεγραμμένα μέλη και 24 επισκέπτες