Pokazywanie postów oznaczonych etykietą Drupal Commerce. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Drupal Commerce. Pokaż wszystkie posty

czwartek, 5 czerwca 2014

Drupal Commerce: Kupony rabatowe dla całego zamówienia ( Drupal coupons for the order during checkout process)

Zastanawiałem się jak w miarę szybko w moim sklepie uruchomić kody rabatowe. Przeczytałem, że nie potrzeba instalować żadnych dodatkowych modułów:
Tutorial "Discounts and Coupons"

Niestety w tym tutorialu kod rabatowy jest przypisany do produktu. Ja chciałem mieć rabat na całe zamówienie. Co prawda jest napisane:
Using Drupal Commerce Core, it is very possible to allow users to add coupons via line item (when someone clicks an add to cart link) or via Checkout. To do the checkout method, you can follow the same principles as outlined in our "Simple Coupon" exercise, however you will need to add the field to your Order type via code and expose it on the checkout pane using Commerce Fieldgroup Panes.
 Niestety, o ile dodanie nowego pola do zamówienia jest proste, to skonstruowanie dobrej reguły jest już problematyczne. Mimo różnych prób nie udało mi się uzyskać właściwego działania.

Ponadto bardzo prosty mechanizm kuponów jest rozwiązaniem doraźnym. W dalszej perspektywie dobrze mieć np. możliwość użycia tego samego kodu rabatowego określoną liczbę razy, definiować typy rabatów, w jednym miejscu trzymać ewidencję kodów itp.

W celu rozwiązania mojego problemu zdecydowałem się w końcu na zainstalowanie modułu Commerce Coupon. Jak się potem przekonałem była to dobra decyzja.

Instalują się tak naprawdę dwa moduły: Commerce Coupon i Commerce Coupon UI.
W dokumentacji modułu znalazłem przykład, który okazał się rozwiązaniem mojego problemu (brakowało jeszcze modułu Commerce Coupon Percentage - musiałem go doinstalować):

1) Install modules

   Install:
   - Commerce Coupon
   - Commerce Coupon UI
   - Commerce coupon percentage

2) Create a 'Percentage coupon' coupon

   Go to: Home > Administration > Store > Coupons

   Click 'Create Coupon'

   Choose 'Create Percentage coupon'
   (if you have no other coupon types clicking 'Create Coupon' will redirect to
    the 'Create Percentage coupon' form)

   Create a percentage coupon with the following:

   - Coupon Code: 10%OFF
   - Number of Uses: 1 (change as necessary)
   - Percentage Amount: 10
   - Active: Yes

   Save

3) Enable the 'Coupons' area on one of your Commerce checkout panes

   Go to: Home > Administration > Store > Configuration > Checkout settings

   Move the 'Coupons' item into one of the checkout panes

   Save

4) Test it!





czwartek, 6 lutego 2014

Drupal Commerce: Własny atrybut zamówienia (moduł Commerce Fieldgroup Panes)

Polecam moduł rozszerzający zamówienie (order). Nowy atrybut może być używany podczas procesu zamawiania (checkout) i wykorzystywany w widokach.

Moduł Commerce Fieldgroup Panes (drupal.org):
https://drupal.org/project/commerce_fieldgroup_panes

Tutorial:
http://commerceguys.com/blog/commerce-module-tuesday-commerce-fieldgroup-panes-screencast

Drupal Commerce: tłumaczenie dla "Order total", "Billing information" i innych

Powszechny problem Drupal Commerce polega na tym, że nie można przetłumaczyć niektórych  etykiet (pól). Pół biedy jeszcze z formularzami - tutaj można napisać hak. Gorzej np. z podglądem zamówień. Po wielu dniach poszukiwać znalazłem rozwiązanie.

Najpierw natknąłem się na wątek:
http://www.drupalcommerce.org/discussions/2730/how-translate-order-total-checkout

Który doprowadził mnie do satysfakcjonującego rozwiązania:
https://drupal.org/node/1451132#comment-5984944

wtorek, 31 grudnia 2013

Przetłumaczenie etykiety Order total w podsumowaniu zamówienia

Żeby było możliwe przetłumaczenie tej etykiety za pomocą standardowej funkcji Drupala Tłumaczenia, to niestety trzeba dopisać odpowiedni hak. Należy odnaleźć plik template.php w katalogu ze skórką naszej strony i dodać taki kod:

function NAZWA_SKORKI_form_alter(&$form, &$form_state, $form_id)

{   

    // Fix order total translation

    if (isset($form['cart_contents']))

    {

        $form['cart_contents']['cart_contents_view']['#markup'] = str_replace('Order total', t('Order total'), $form['cart_contents']['cart_contents_view']['#markup']);

    }

} 

Gdy teraz dodamy tłumaczenie dla tekstu "Order total" to będzie ono efektywne.

wtorek, 26 listopada 2013

Drupal Commerce - ostrożnie z własnym kodem PHP

Wstawiłem taki kawałek kodu, aby zrobić przekierowanie:

<?php
 /* This will give an error. Note the output
  * above, which is before the header() call */
 

header('Location: http://www.example.com/');
exit;
 

?>

Drupal zaczął bardzo dziwnie się zachowywać. Długo mi zeszło zanim się zorientowałem, że to właśnie ten fragment kodu psuje aplikację...

sobota, 23 listopada 2013

Niewidoczne pole (custom field) podczas tworzenia Pricing rule dla custom Line item type

Dodawanie reguły wyliczania ceny pokazuje bardzo fajny screencast:

http://www.drupalcommerce.org/videos/tutorials/customizable-products-pizza-store

Wydawało mi się, że robię wszystko jak na tym filmiku, ale u mnie wciąż nie pojawiało się pole (custom field) z mojego line item type w selektorach. Okazuje się, że przeoczyłem jeden ważny krok w tym tutorialu. Nowe pole we własnym line item type musi mieć koniecznie typ "Odnośnik do terminu". Musimy utworzyć w kategoriach (taxonomy) słownik z parametrami, które będą wyświetlane w formatce "Add to Cart". Nie możemy wybrać innego typu, np. Lista (numeryczna) itp. To jest ograniczenie Drupal Commerce, które pewnie w przyszłości będzie poprawione.

środa, 20 listopada 2013

Sklep internetowy w Drupal 7 i moduł Drupal Commerce

Podjąłem się zbudowania sklepu internetowego za pomocą Drupala w wersji 7. Rozważałem różne moduły, aż w końcu zdecydowałem się na moduł Drupal Commerce (http://www.drupalcommerce.org/) i CRM Core  (https://drupal.org/project/crm_core). Dodatkowo zainstalowałem wiele mniejszych.

Lista zainstalowanych modułów:
1. CRM Core
https://drupal.org/project/crm_core

Moduły wymagane:
1.1 Entityreference
https://drupal.org/project/entityreference
1.2 Entity API
https://drupal.org/project/entity
1.3 Field group
https://drupal.org/project/field_group
1.4 Date (Date_api , Date , Date_popup , Date_views)
http://ftp.drupal.org/files/projects/date-7.x-2.6.tar.gz
1.5 Relation
https://drupal.org/project/relation
1.6 Name Field
https://drupal.org/project/name
1.7 Views Bulk Operations (VBO)
https://drupal.org/project/views_bulk_operations
1.8 Token (można zainstalować gdyż w core jest on ograniczony)
http://ftp.drupal.org/files/projects/token-7.x-1.5.tar.gz

2. Drupal Commerce
https://drupal.org/project/commerce

2.1 Rules
https://drupal.org/project/rules
2.2 Address Field
https://drupal.org/project/addressfield

3. CRM Core Profile
https://drupal.org/project/crm_core_profile

4. CRM Core Profile Commerce Items
https://drupal.org/project/crm_core_profile_commerce_items
(Połączenie między modułem CRM Core i Drupal Commerce)

5. Commerce Customizable Products
https://drupal.org/project/commerce_custom_product
(bez tego modułu nie można dodawać własnych Line Item Types)

6. Commerce Repair
(naprawia błąd modułu Drupal Commerce)

7. Site Disclaimer
https://drupal.org/project/site_disclaimer
(każdy sklep posiada regulamin, który trzeba zaakceptować przy rejestracji)

8. Commerce Message
https://drupal.org/project/commerce_message
http://www.drupalcommerce.org/extensions/module/project/commerce-message
(możliwość dodawania wiadomości do zamówień i historia wiadomości)

Wymaga: Message ( https://drupal.org/project/message ) i Message Notify ( https://drupal.org/project/message_notify )

9. Commerce Custom Order Status
https://drupal.org/project/commerce_custom_order_status
(statusy zamówienia)

10. Commerce Checkout Progress
https://drupal.org/project/commerce_checkout_progress
(kroki zamówienia)

11. Commerce Checkout Pages
https://drupal.org/project/dc_co_pages
http://www.drupalcommerce.org/blog/8004/commerce-module-tuesday-commerce-checkout-pages
(dodatkowe kroki w procesie zamówienia)

12. Commerce extra panes
https://drupal.org/project/commerce_extra_panes
http://commerceguys.com/blog/commerce-module-tuesday-commerce-extra-panes
(dodatkowa zawartość kroków zamówienia)

13. Commerce Checkout Buttons
https://drupal.org/project/commerce_checkout_buttons
(ustawienie nazw dla przycisków w procesie zamówienia)
Uwaga: Zmienia przyciski tylko na standardowych stronach zamówienia. Dodane za pomocą modułu Commerce Checkout Pages mają stare przyciski.

14. Commerce Addressbook
https://drupal.org/project/commerce_addressbook
(adresy, które są zarówno widoczne w Moje konto oraz podczas zamówienia produktów w sklepie)
Problem: Nie wczytują się poprawnie inne adresy niż domyślny.
 
15. Commerce Invoice Receipt
https://drupal.org/project/commerce_invoice_receipt
(zakładka Fakruty w zamówieniach)

Moduł wymagany:
15.1 Emogrifier
https://drupal.org/project/emogrifier