wdrożenia PrestaShop

Potwierdzenie zamówienia, wysyłka a odbiór osobisty

  • 7 Odpowiedzi
  • 5689 Wyświetleń

0 użytkowników i 3 Gości przegląda ten wątek.

*

Offline delix

  • Stały użytkownik
  • ***
  • 65
  • 0
Potwierdzenie zamówienia, wysyłka a odbiór osobisty
« dnia: Luty 22, 2012, 07:46:43 pm »
Witam,

Czy jest możliwość zróżnicowania maila potwierdzającego złożenie zamówienia w zależności od wyboru dostawcy?

Trochę mylące jest otrzymanie informacji w mailu:

Wysyłka
Odbiór osobisty...
Adres dostawyAdres faktury
Jan KowalskiJan Kowalski

O ile w przypadku Wysyłki można wpisać: Wysyłka/Odbiór osobisty
o tyle w przypadku adresu dostawy trudno jest uzasadnić podanie adresu klienta skoro ma przyjść do sklepu. Pod adresem dostawy powinien pojawić się albo adres sklepu, albo lepiej, powinna się zmienić w ogóle tabela opisująca Wysyłkę i Dane dostawy.


*

Offline sower

  • Mieszkaniec
  • *****
  • 1,016
  • 3
    • I Love PrestaShop
  • PrestaShop: PS
  • Status: Programista
Odp: Potwierdzenie zamówienia, wysyłka a odbiór osobisty
« Odpowiedź #1 dnia: Luty 22, 2012, 07:56:23 pm »
da sie - trochę zabawy z tym jest ;)
musisz przerobić trochę moduł, dorobić do niego odpowiedni szablon w ustawić w sklepie odpowiednie statusy zamówienia
SZYBKA POMOC TECHNICZNA : gg 45116037
SKLEPY | MODUŁY | INTEGRACJE | POMOC TECHNICZNA

*

Offline delix

  • Stały użytkownik
  • ***
  • 65
  • 0
Odp: Potwierdzenie zamówienia, wysyłka a odbiór osobisty
« Odpowiedź #2 dnia: Luty 22, 2012, 10:42:38 pm »
Ale który moduł? Szukam i nie widzę miejsca gdzie jest generowana wysyłka maila potwierdzającego.
Znalazłem mailalerts, ale z tego co widzę to potwierdzenia dla obsługi, a mi chodzi o tego maila dla klienta.
:(

*

Offline sower

  • Mieszkaniec
  • *****
  • 1,016
  • 3
    • I Love PrestaShop
  • PrestaShop: PS
  • Status: Programista
Odp: Potwierdzenie zamówienia, wysyłka a odbiór osobisty
« Odpowiedź #3 dnia: Luty 22, 2012, 10:55:50 pm »
Moduł to COD  tzn odbiór osobisty należy ten moduł przerobić, stworzyć dla niego status oraz szablon email
SZYBKA POMOC TECHNICZNA : gg 45116037
SKLEPY | MODUŁY | INTEGRACJE | POMOC TECHNICZNA

*

Offline delix

  • Stały użytkownik
  • ***
  • 65
  • 0
Odp: Potwierdzenie zamówienia, wysyłka a odbiór osobisty
« Odpowiedź #4 dnia: Luty 22, 2012, 11:11:04 pm »
A możesz nieco przybliżyć co mam zrobić i gdzie? Tzn. chociaż które pliki mam modyfikować..
Bo na razie nie jestem zbyt biegły w php a już w szczególności w smarty, a nie widzę miejsca gdzie jest generowana komenda do wysłania maila potwierdzającego zamówienie.

*

Offline delix

  • Stały użytkownik
  • ***
  • 65
  • 0
Odp: Potwierdzenie zamówienia, wysyłka a odbiór osobisty
« Odpowiedź #5 dnia: Luty 24, 2012, 11:29:25 am »
Dzięki za naprowadzenie na właściwy trop.
Problem rozwiąże przy użyciu shiptopay i kopii cashondelivery, a jak skończę to się podzielę wrażeniami.

*

Offline sower

  • Mieszkaniec
  • *****
  • 1,016
  • 3
    • I Love PrestaShop
  • PrestaShop: PS
  • Status: Programista
Odp: Potwierdzenie zamówienia, wysyłka a odbiór osobisty
« Odpowiedź #6 dnia: Luty 24, 2012, 11:38:42 am »
akurat ship2pay nie ma nic do rzeczy ;)
SZYBKA POMOC TECHNICZNA : gg 45116037
SKLEPY | MODUŁY | INTEGRACJE | POMOC TECHNICZNA

*

Offline delix

  • Stały użytkownik
  • ***
  • 65
  • 0
Odp: Potwierdzenie zamówienia, wysyłka a odbiór osobisty
« Odpowiedź #7 dnia: Luty 29, 2012, 11:15:56 pm »
Przedstawiam swoje rozwiązanie problemu:

Do przeprowadzenia zmian potrzebujemy moduł: shiptopay oraz musimy utworzyć kopię modułu cashondelivery.
Tworząc kopię w module cashondelivery dokonujemy zmian wszystkich (bez wyjątku) wystąpień cashondelivery na np. cashondelivery_shop.To samo oczywiście z nazwami plików.
Po tej zamianie mamy niezależny duplikat modułu płatności, co pozwala np. na zmianę ikony dla modułu czy niezależne określenie sposobów płatności przy odbiorze dla kuriera (cashondelivery) i dla odbioru w sklepie (cashondelivery_shop) - czyli np. "Akceptujemy karty, gotówkę itp.."

Korzystając z ship2pay przydzielamy nowy moduł wyłącznie dla odbioru osobistego w sklepie.

Teraz najważniejsza sprawa, czyli mail potwierdzający:
W pliku validation.php zmieniamy:

/* Validate order */
if (Tools::getValue('confirm'))
{
$customer = new Customer((int)$cart->id_customer);
$total = $cart->getOrderTotal(true, Cart::BOTH);
$cashOnDelivery->validateOrder((int)$cart->id, Configuration::get('PS_OS_PREPARATION'), $total, $cashOnDelivery->displayName, NULL, array(), NULL, false, $customer->secure_key);
$order = new Order((int)$cashOnDelivery->currentOrder);
Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?key='.$customer->secure_key.'&id_cart='.(int)($cart->id).'&id_module='.(int)$cashOnDelivery->id.'&id_order='.(int)$cashOnDelivery->currentOrder);
}

na:

/* Validate order */
if (Tools::getValue('confirm'))
{
$customer = new Customer((int)$cart->id_customer);
$total = $cart->getOrderTotal(true, Cart::BOTH);

$conf = Configuration::getMultiple(array('PS_SHOP_NAME', 'PS_SHOP_ADDR1', 'PS_SHOP_ADDR2', 'PS_SHOP_CODE', 'PS_SHOP_CITY', 'PS_SHOP_COUNTRY', 'PS_SHOP_STATE', 'PS_SHOP_PHONE'));

$mailVars = array(
                '{delivery_company}' => $conf['PS_SHOP_NAME'],
'{delivery_firstname}' => '',
'{delivery_lastname}' => '',
'{delivery_address1}' => $conf['PS_SHOP_ADDR1'],
'{delivery_address2}' => $conf['PS_SHOP_ADDR2'],
'{delivery_city}' => $conf['PS_SHOP_CITY'],
'{delivery_postal_code}' => $conf['PS_SHOP_CODE'],
'{delivery_country}' => $conf['PS_SHOP_COUNTRY'],
'{delivery_state}' => '',
'{delivery_phone}' => $conf['PS_SHOP_PHONE']);

$cashOnDelivery_shop->validateOrder((int)$cart->id, Configuration::get('PS_OS_PREPARATION'), $total, $cashOnDelivery_shop->displayName, NULL, $mailVars , NULL, false, $customer->secure_key);
$order = new Order((int)$cashOnDelivery_shop->currentOrder);
Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?key='.$customer->secure_key.'&id_cart='.(int)($cart->id).'&id_module='.(int)$cashOnDelivery_shop->id.'&id_order='.(int)$cashOnDelivery_shop->currentOrder);
}

W ramach kosmetyki poprawiamy plik order_conf.html i .txt zmieniając nieprawidłowe tłumaczenie: "Wysyłka" na "Sposób dostawy". Usuwamy "Dostawca:" oraz zmieniamy "Adres dostawy" na "Adres dostawy/odbioru".

Koniec :)

W ten sposób uzyskaliśmy prawdziwy moduł "Płatność w sklepie" oraz logiczny mail potwierdzający złożenie zamówienia gdzie jako sposób dostawy pojawi się odbiór w sklepie, a w miejscu adresu dostawy/odbioru pojawi się adres sklepu a nie dane klienta.
Co najważniejsze, rozwiązanie to w żaden sposób nie narusza funkcjonowania dotychczasowych modułów, więc można je wprowadzić z marszu w niemal każdej instalacji.

Pozdrawiam.