Commerce pricing attributes - Tι είναι και πως λειτουργεί

Commerce pricing attributes

Στις αρχές του 2011 ο κόσμος άλλαξε! Και αυτό γιατί εμφανίστηκε στη ζωή μας το Drupal 7 και μαζί με αυτό ήρθε ένα ολοκαίνουριο εργαλείο για την δημιουργία online καταστημάτων, το Drupal Commerce. Γρήγορα το Drupal Commerce έχτισε γύρω του μία μικρή υποκοινότητα στο Drupal.org και δημιουργήθηκαν πολλά modules που επέκτειναν τις δυνατότητές του. Μάλιστα στη Netstudio συνεισφέραμε στο οικοσύστημα του Drupal Commerce, τόσο με extra modules, όσο και με ένα Drupal Distribution βασισμένο σε αυτό, το Open Deals. Το Drupal Commerce γενικά έχει αποκτήσει μεγάλη αποδοχή και ορμή και κατάφερε μέχρι τον Αύγουστο του 2012 και το Drupal Con του Λονδίνου να καλύψει σχεδόν όλες τις δυνατότητες του Ubercart, το οποίο μέχρι τότε ήταν ο κυρίαρχος στο e-commerce για το Drupal.

Το πρόβλημα

Αν και το Drupal Commerce κάλυψε το 99% των δυνατοτήτων του Ubercart, κατά την χρήση του εμφάνισε μία δυσλειτουργία που δημιούργησε πολλά προβλήματα στους προγραμματιστές που ήθελαν να το χρησιμοποιήσουν στα online καταστήματά τους. Το πρόβλημα έχει να κάνει με τα πολλαπλά χαρακτηριστικά ανά προϊόν που επηρεάζουν την τελική τιμή του. Ένα τέτοιο παράδειγμα είναι το προϊόν “Πίτσα”. Μία πιτσαρία θέλει να δίνει την δυνατότητα στους πελάτες της να επιλέγουν τα υλικά που θα χρησιμοποιηθούν για την παρασκευή της και αναλόγως να χρεώνονται. Με την μέχρι τώρα λειτουργικότητα του Commerce για να γίνει αυτό πρέπει να δημιουργηθούν από πριν όλες οι παραλλαγές χαρακτηριστικών που θα διατίθενται στους πελάτες. Αν υποθέσουμε ότι το προϊόν “πίτσα” έχει 5 διαφορετικά είδη τυριών, 5 είδη αλλαντικών, 5 σάλτσες και 5 είδη λαχανικών τότε θα πρέπει να δημιουργηθούν 5*5*5*5=625 παραλλαγές! Κάθε επιπλέον χαρακτηριστικό αυξάνει κατά πολύ τον αριθμό των προϊόντων που πρέπει να δημιουργηθούν και να συντηρηθούν. Αυτός είναι ο λόγος που ακόμα και σήμερα πολλά online καταστήματα γίνονται σε Ubercart και όχι σε Drupal Commerce.

Η λύση της κοινότητας

Έχουν γίνει αρκετές προσπάθειες να δοθεί λύση στο πρόβλημα από την κοινότητα του Drupal Commerce. Το module Commerce Option δημιούργησε την έννοια των product options και έδωσε την δυνατότητα της επιλογής χαρακτηριστικών των προϊόντων χωρίς προηγουμένως να έχει δημιουργηθεί ο συνδυασμός αυτών των χαρακτηριστικών από τον διαχειριστή. Με αυτόν τον τρόπο ο διαχειριστής μπορεί πλέον να συντηρεί μόνο ένα προϊόν και ο πελάτης να επιλέγει διαφορετικά χαρακτηριστικά γι’ αυτό το προϊόν. Δυστυχώς, ακόμα και με το Commerce Option υπήρχαν δύο ακόμη άλυτα προβλήματα. Έλειπε η δυνατότητα διαφορετικών χαρακτηριστικών για κάθε προϊόν (πχ. Μερικές πίτσες να έχουν όλους τους τύπους των τυριών ένω κάποιες άλλες να έχουν μόνο δύο). Επίσης, δεν υπήρχε η δυνατότητα αλλαγής της τιμής του προϊόντος με βάση τα χαρακτηριστικά που έχουν επιλεγεί.

Η λύση της Netstudio

Στην εταιρεία μας βρεθήκαμε πολλές φορές τον τελευταίο χρόνο μπροστά σε project τέτοιου είδους και αντιμετωπίσαμε όλα τα παραπάνω προβλήματα. Κάποιες φορές καταφύγαμε στην λύση του Ubercart ενώ κάποιες άλλες φτιάξαμε custom μηχανισμούς για να χειριστούμε την λειτουργικότητα που απαιτούνταν. Τελικά αποφασίσαμε να κάνουμε μια πιο οργανωμένη προσπάθεια και να φτιάξουμε τη δική μας ολοκληρωμένη λύση. Έτσι γεννήθηκε το Commerce Pricing Attributes. Το module αυτό καλύπτει όλες τις περιπτώσεις πολλαπλών χαρακτηριστικών προϊόντων. Κάθε προϊόν μπορεί πλέον να έχει τα δικά του χαρακτηριστικά και τις δικές του τιμές ανά χαρακτηριστικό. Πετύχαμε δηλαδή την απόλυτη ευελιξία όσον αφορά τα χαρακτηριστικά προϊόντων ενώ παράλληλα βελτιώθηκε η διαχείρισή τους. Δεν απαιτείται πλέον η συντήρηση εκατοντάδων ή και χιλιάδων παραλλαγών! Το module έχει αποσπάσει θετικά σχόλια μέχρι τώρα και έχουμε συλλέξει πολλές ιδέες για να το βελτιώσουμε επιπλέον. Μπορείτε να επισκεφθείτε το project στο https://www.drupal.org/project/commerce_pricing_attributes. Σας προτρέπουμε να το δοκιμάσετε και να μας στείλετε τις παρατηρήσεις ή τα σχόλιά σας προς βελτίωση. Ακολουθεί ένα σύντομο βίντεο παρουσίασης του Commerce Pricing Attributes με οδηγίες εγκατάστασης και παραμετροποίησης:

Νίκος

Γράφει ο Νίκος

Technical Director

Σχόλια
avatar

03/03/2013 - 00:36

Θανάσης

Καλησπέρα George, πολύ έξυπνο και μας γλιτώνει από αρκετή δουλειά στην καταχώριση. Παρακάτω σας δίνω μία σκέψη-πρόταση βελτίωσης. Στο σημείο που επιλέγουμε εάν η τιμή της παραμέτρου θα επηρεάσει αρνητικά η θετικά την τελική τιμή του προϊόντος, θα μπορούσε να υπάρχει και μία επιλογή = (ίσον) που θα αντικαθιστούσε την τιμή του προϊόντος. Φυσικά αν επιλέξουμε το (=) πάνω από μία φορά στο ίδιο προϊόν τότε θα υπάρξει "πρόβλημα απόφασης" αλλά όλο και κάποιος τρόπος θα υπάρχει!

Νίκος

06/03/2013 - 13:02

Νίκος

Θανάση, η σκέψη σου πέρασε και από το δικό μας μυαλό. Καταλήξαμε και εμείς ότι δεν γίνεται να έχουμε την επιλογή = (ίσον) γιατί δεν θα δουλεύει στην περίπτωση πολλαπλών χαρακτηριστικών. Μπορείς όμως να θέσεις την τιμή του προϊόντος σε μηδέν με αποτέλεσμα το προϊόν να παίρνει την τιμή του κάθε χαρακτηριστικού. Αν έχεις κάποια ιδέα για το πώς μπορούμε να υλοποιήσουμε αυτό που προτείνεις, μπορείς να μας το πεις για να το φτιάξουμε.

avatar

07/03/2013 - 13:55

ΛΑΖΑΡΟΣ ΦΕΛΟΥΣ

Μπορούμε να δίνουμε επιλογή πολλαπλής αγοράς με παράλληλη ενεργοποίηση εκπτωτικών κουπονιών ανά κατώφλι ποσού;

Γιάννης

16/03/2013 - 21:28

Γιάννης

Λάζαρε, θα μπορούσες να κάνεις το συγκεκριμένο με τη χρήση των rules;

Σχολιάστε το άρθρο