Rules Dátum alapon

zedclans képe

Sziasztok! Sokszor voltatok már segítségemre, így most ismét a nagy guruk segítségét kérem, a napokban teljesen rákattantam a Rules modulra és szeretnék megvalósítani egy dátum alapú szabályt, de nem igen találok rá megfelelő segédletet a drupal.org-on. Szeretnék egy szabályt arra vonatkozóan, hogy a termékek rendelése időhöz legyen kötve, (egy online étel rendelésről van szó ) 1. lépésben ki kell kötnöm azt, hogy a kosárba délelőtt 10 órától este fél 9-ig lehet rendelni, ez a része még annyira nem is vészes, viszont itt jön a csavar. Ez a szabály csak hétköznaponként érvényes, tehát H,K,SZ,CS,P szombaton csak délután 3-ig érvényes a szabály, vasárnap, pedig egyáltalán nem lehet rendelni. Hát röviden erre kéne nekem valami kiinduló pont, hogy mégis merre tovább. Nem kérek konkrét kódot, elég ha tudtok nekem egy szájbarágós leírást, mégis hogyan merre, vagy egyáltalán megvalósítható-e.

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
wouhn képe

Azt nem írtad csak ide, hogy Ubercart vagy Drupal Commerce (esetleg valami más) az, amiben ez meg szeretnéd csinálni.

Én Drupal Commerce segítségével raktam már össze pizzarendelős oldalt, ahol szintén volt hasonló feladat, azzal a különbséggel, hogy minden nap ugyanaddig volt nyitva.

Én ezt csináltam:

EVENT:
Termék kosárhoz adása után

CONDITION:
VAGY
Adatok összehasonlítása
Paraméter: Összehasonlítandó adatok: [site:current-date], Művelet: kisebb, mint, Adat: 11:00:00

Adatok összehasonlítása
Paraméter: Összehasonlítandó adatok: [site:current-date], Művelet: nagyobb mint, Adat: 21:30:00

ACTION:
Egy megrendelésből minden termék eltávolítása
Paraméter: Kiüríteni kívánt megrendelés: [commerce_order]

Üzenet megjelenítése a weboldalon
Paraméter: Üzenet: Üzletünk jelenleg..., Üzenet típusa: Hiba

Magyarul fogtam egy szabályt aminek az volt az eseményei, hogy valaki a kosárba rakott egy terméket. Ekkor a rendszer a feltételekben megjelöltek szerint megnézte, hogy mennyi az idő és ha elmúlt 21:30 vagy korábban volt, mint 11:00 akkor ürítette a kosarat és dobott egy üzenetet a kedves vásárlónak, hogy mikor próbálkozzon legközelebb.

0
0
zedclans képe

Valóban, elfelejtettem írni miről van szó, commerce alapon nyugszik az oldal. Köszönöm a segítséget, ki is próbáltam, viszont úgy néz ki, hogy nem veszi figyelembe a szabályt valamiért, nyugodtan tudok fizetni, rendelni, nem állít meg a szabály (direkt nem adminként bejelentkezve teszteltem) Mit ronthattam el? esetleg valami felülbírálja a szabályt?

0
0
wouhn képe

Azt nem gondolnám, hogy valami felülbírálja a szabályt, bár nem tudom milyen modulokat használsz. A dolog elve elég egyszerű. Amikor berakod a kosárba a terméket a szabály megnézi, hogy igaz-e rá a feltétel. Ha igen, akkor csinál valamit. Én a feltétel részt nézegetném meg elsősorban.

0
0
zedclans képe

Mellékelem a szabályt, lehet valami apro dolgon csúszok el,

  1. { "rules_store_hours" : {
  2. "LABEL" : "Nyitvatar\u00e1s Figyel\u0151",
  3. "PLUGIN" : "reaction rule",
  4. "WEIGHT" : "-10",
  5. "OWNER" : "rules",
  6. "REQUIRES" : [ "rules", "commerce_cart" ],
  7. "ON" : { "commerce_cart_product_add" : [] },
  8. "IF" : [
  9. { "data_is" : {
  10. "data" : [ "site:current-date" ],
  11. "op" : "\u003C",
  12. "value" : "10:30:00"
  13. }
  14. },
  15. { "data_is" : {
  16. "data" : [ "site:current-date" ],
  17. "op" : "\u003E",
  18. "value" : "20:30:00"
  19. }
  20. }
  21. ],
  22. "DO" : [
  23. { "commerce_cart_empty" : { "commerce_order" : [ "commerce_order" ] } },
  24. { "drupal_message" : {
  25. "message" : "Sajn\u00e1ljuk, de jelenleg \u00e9tterm\u00fcnk z\u00e1rva tart, k\u00e9rj\u00fck pr\u00f3b\u00e1lja meg holnapi napon 10:30-t\u0151l.",
  26. "type" : "error"
  27. }
  28. }
  29. ]
  30. }
  31. }
0
0
wouhn képe

Nekem Így néz ki a szabályom:

  1. { "rules_nyitvatart_s" : {
  2. "LABEL" : "Nyitvatart\u00e1s",
  3. "PLUGIN" : "reaction rule",
  4. "REQUIRES" : [ "rules", "commerce_cart" ],
  5. "ON" : [ "commerce_cart_product_add" ],
  6. "IF" : [
  7. { "OR" : [
  8. { "data_is" : {
  9. "data" : [ "site:current-date" ],
  10. "op" : "\u003C",
  11. "value" : "11:00:00"
  12. }
  13. },
  14. { "data_is" : {
  15. "data" : [ "site:current-date" ],
  16. "op" : "\u003E",
  17. "value" : "21:30:00"
  18. }
  19. }
  20. ]
  21. }
  22. ],
  23. "DO" : [
  24. { "commerce_cart_empty" : { "commerce_order" : [ "commerce_order" ] } },
  25. { "drupal_message" : {
  26. "message" : "\u003Cb\u003E\u00dczlet\u00fcnk jelenleg z\u00e1rva tart!\u003C\/b\u003E",
  27. "type" : "error"
  28. }
  29. }
  30. ]
  31. }
  32. }

Gondolom azt figyelembe vetted, hogy a rendelés akkor fog blokkolódni, ha a szabály igaz. Tehát ha jelen pillanatban akarod tesztelni és egyébként most lehet rendelni, akkor nem lesz jó a teszted.

0
0
wouhn képe

zedclans képe

Köszönöm, ezt olvastam, sőt ez alapján teszteltem is ezt a szabályt, de ezzel is hasonló a problémám, nem működik, mintha ott se lenne a szabály.

Néztem a Rules, hátha dob valami "Broken-t" vagy hibát a naplóba, de semmi. Tehát elvileg minden nagyon szép, de mégsem.

0
0
vikicica22 képe

Ezt én is észrevettem, hogy valamikor működik valamikor meg nem :(

0
0
zedclans képe

Ohhh, megvan a kis csintalan :) az én szabályomból a VAGY hiányzik, tesztelve a te szabályod, máris működik! Szuper, köszönöm! Most akkor léphetek tovább, hogy hogyan is kössem neki ki a napokat, van erre is esetleg ötlet?

0
0
vikicica22 képe

Régebben és is elkezdtem gondolkozni ezen a témán de nem találtam megoldást rá.

Így indultam neki (nem működik valamiért):

  1. { "rules_store_hours" : {
  2. "LABEL" : "Store Hours",
  3. "PLUGIN" : "reaction rule",
  4. "OWNER" : "rules",
  5. "REQUIRES" : [ "rules", "commerce_cart" ],
  6. "ON" : { "commerce_cart_product_add" : [] },
  7. "IF" : [
  8. { "data_is" : {
  9. "data" : [ "site:current-date" ],
  10. "op" : "\u003E",
  11. "value" : "Monday 21:00:00"
  12. }
  13. },
  14. { "data_is" : {
  15. "data" : [ "site:current-date" ],
  16. "op" : "\u003C",
  17. "value" : "Monday 10:00:00"
  18. }
  19. },
  20. { "data_is" : {
  21. "data" : [ "site:current-date" ],
  22. "op" : "\u003E",
  23. "value" : "Tuesday 21:00:00"
  24. }
  25. },
  26. { "data_is" : {
  27. "data" : [ "site:current-date" ],
  28. "op" : "\u003C",
  29. "value" : "Tuesday 10:00:00"
  30. }
  31. },
  32. { "data_is" : {
  33. "data" : [ "site:current-date" ],
  34. "op" : "\u003E",
  35. "value" : "Wednesday 02:00:00"
  36. }
  37. },
  38. { "data_is" : {
  39. "data" : [ "site:current-date" ],
  40. "op" : "\u003C",
  41. "value" : "Wednesday 10:00:00"
  42. }
  43. },
  44. { "data_is" : {
  45. "data" : [ "site:current-date" ],
  46. "op" : "\u003E",
  47. "value" : "Thursday 21:00:00"
  48. }
  49. },
  50. { "data_is" : {
  51. "data" : [ "site:current-date" ],
  52. "op" : "\u003C",
  53. "value" : "Thursday 10:00:00"
  54. }
  55. },
  56. { "data_is" : {
  57. "data" : [ "site:current-date" ],
  58. "op" : "\u003E",
  59. "value" : "Friday 02:00:00"
  60. }
  61. },
  62. { "data_is" : {
  63. "data" : [ "site:current-date" ],
  64. "op" : "\u003C",
  65. "value" : "Friday 10:00:00"
  66. }
  67. },
  68. { "data_is" : {
  69. "data" : [ "site:current-date" ],
  70. "op" : "\u003E",
  71. "value" : "Saturday 02:00:00"
  72. }
  73. },
  74. { "data_is" : {
  75. "data" : [ "site:current-date" ],
  76. "op" : "\u003C",
  77. "value" : "Saturday 10:00:00"
  78. }
  79. },
  80. { "data_is" : {
  81. "data" : [ "site:current-date" ],
  82. "op" : "\u003E",
  83. "value" : "Sunday 21:00:00"
  84. }
  85. },
  86. { "data_is" : {
  87. "data" : [ "site:current-date" ],
  88. "op" : "\u003C",
  89. "value" : "Sunday 11:00:00"
  90. }
  91. }
  92. ],
  93. "DO" : [
  94. { "drupal_message" : {
  95. "message" : "We\u0027re sorry but we are currently closed, your item has been removed from the cart. Online ordering has been disabled until 9:00 tomorrow morning.",
  96. "type" : "warning"
  97. }
  98. },
  99. { "commerce_cart_empty" : { "commerce_order" : [ "site:current-cart-order" ] } }
  100. ]
  101. }
  102. }
0
0
zedclans képe

Pedig nem rossz a megközelítés, én is hasonlóan vágtam bele, és jelenleg úgy néz ki, hogy működik a szabály, igaz én nem egy szabályban oldottam meg, hanem 3 külön szabály figyeli, az 1. a hétköznapokat, a 2. a szombatot, illetve a 3. a vasárnapot. Tudom, hogy logikusabb lett volna egy szabályba rakni mindent, de nekem így tűnt, megfelelőnek.

Hétköznapra így írtam meg (teszt alapján most szépen működik)

  1. { "rules_store_hours" : {
  2. "LABEL" : "Nyitvatar\u00e1s Figyel\u0151",
  3. "PLUGIN" : "reaction rule",
  4. "OWNER" : "rules",
  5. "REQUIRES" : [ "rules", "commerce_cart" ],
  6. "ON" : { "commerce_cart_product_add" : [] },
  7. "IF" : [
  8. { "OR" : [
  9. { "data_is" : {
  10. "data" : [ "site:current-date" ],
  11. "op" : "\u003C",
  12. "value" : "10:30:00"
  13. }
  14. },
  15. { "data_is" : {
  16. "data" : [ "site:current-date" ],
  17. "op" : "\u003E",
  18. "value" : "20:30:00"
  19. }
  20. }
  21. ]
  22. },
  23. { "AND" : [
  24. { "OR" : [
  25. { "data_is" : { "data" : [ "site:current-date" ], "op" : "\u003E", "value" : "Sunday" } },
  26. { "data_is" : {
  27. "data" : [ "site:current-date" ],
  28. "op" : "\u003C",
  29. "value" : "Saturday"
  30. }
  31. }
  32. ]
  33. }
  34. ]
  35. }
  36. ],
  37. "DO" : [
  38. { "commerce_cart_empty" : { "commerce_order" : [ "commerce_order" ] } },
  39. { "drupal_message" : {
  40. "message" : "Sajn\u00e1ljuk, de jelenleg \u00e9tterm\u00fcnk z\u00e1rva tart, k\u00e9rj\u00fck pr\u00f3b\u00e1lja meg holnapi napon 10:30-t\u0151l.",
  41. "type" : "error"
  42. }
  43. }
  44. ]
  45. }
  46. }
0
0