1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

Click Shop Drukowanie zbiorcze zamówień - zmiana formatu dokumentu

Dyskusja w 'Sugestie i zgłoszenia' rozpoczęta przez użytkownika Kail, 6 Maj 2016.

  1. Kail

    Kail Nowy użytkownik

    Wiadomości:
    2
    Docenione treści:
    1
    Witam serdecznie,
    Zaznaczam wybrane zamówienia, wybieram opcję drukuj, generuje się mi plik pdf i mam gotowe zamówienia do druku w formie graficznej.

    Chciałbym zmienić formę graficzną, która generuje się mi w postaci pliku pdf, ze względu na to że jest tam dużo zbędnych informacji na które idą duże ilości papieru.

    Chciałbym przerobić szatę graficzną w pdf do swoich własnych potrzeb. Czy można to wykonać ?

    Pozdrawiam.
     
  2. Grzesiek

    Grzesiek Centrum Pomocy home.pl

    Wiadomości:
    3 660
    Docenione treści:
    333
    Nie, taka edycja nie jest możliwa. Zgłosiliśmy pomysł do twórców aplikacji, czy taka zmiana była by możliwa do wdrożenia, a przede wszystkim czy potrzebna (czy w ogóle są zgłoszenia w tym zakresie). Dokument ten zawiera i tak minimum informacji, niezbędnych do wykorzystania dokumentu wewnątrz firmy. W chwili obecnej sugeruję po prostu pobranie pliku i jego edycję np. w Wordzie.
     
  3. Kail

    Kail Nowy użytkownik

    Wiadomości:
    2
    Docenione treści:
    1
    W momencie kiedy drukujemy zamówienia zbiorcze, bardzo dużo tracimy papieru, jedno zamówienie na 1 sztukę to 1 kartka A4, w naszym przypadku na 1 kartkę A4 moglibyśmy "wsadzić" 3-4 zamówienia. 100 zamówień to 100 kartek, kupa makulatury, moglibyśmy ograniczyć papier o 60% minimum. Format danych w pdf jest bardzo rozwleczony, jest bardzo dużo wolnego miejsca, dużo informacji jest nam zbędnych, czcionki są w pewnych miejscach za małe, w innych niepotrzebne lub za duże. W naszym przypadku możliwość modyfikacji tego pliku byłaby bardzo ogromnym ułatwieniem oraz zaoszczędzilibyśmy bardzo dużo na kosztach papieru.
     
    Dominik lubi to.
  4. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    da się wymagany efekt osiągnąć używając zewnętrznego skryptu i API.
    Czy masz jakiekolwiek doświadczenie z programowaniem?
     
  5. TheL

    TheL @Lider VIP Beta-tester

    Wiadomości:
    2 403
    Docenione treści:
    535
    czy taki efekt Będzie Ci odpowiadał?
    zamowienia.png

    Jeśli tak to należy:
    zalogować się na serwer ftp sklepu (najlepiej zrobić sobie katalog na hasło) i wrzucić do niego plik o nazwie np: zamowienia.php mającego treść:
    Kod:
    <style>
    table {
    
    font-family:verdana;
    font-size:11px;
    }
    </style>
    <?php
    function login($c, $login, $password) {
      $params = Array(
      "method" => "login",
      "params" => Array($login, $password)
      );
      curl_setopt($c, CURLOPT_POSTFIELDS, "json=" . json_encode($params));
      $result = (Array) json_decode(curl_exec($c));
      if (isset($result['error'])) {
      return null;
      } else {
      return $result[0];
      }
    }
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, 'http://ADRES_SKLEPU/webapi/json/');
    curl_setopt($c, CURLOPT_POST, true);
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    // zalogowanie użytkownika i pobranie identyfikatora sesji
    $session = login($c, "UZYTKOWNIK_API", "HASLO_UZYTKOWNIKA_API");
    if ($session != null) {
         for($i = $_GET["od"]; $i <= $_GET["do"]; $i++)
    
    {
      $params = Array(
      "method" => "call",
      "params" => Array($session, "order.info",
      Array($i, true) // id zamówienia, produkty
      )
      );
      // zakodowanie parametrów dla metody POST
      $postParams = "json=" . json_encode($params);
      curl_setopt($c, CURLOPT_POSTFIELDS, $postParams);
      // dekodowanie rezultatu w formacie JSON do tablicy result
      $data = curl_exec($c);
      $result = (Array)json_decode($data);
      // sprawdzenie, czy wystąpił błąd
      if (isset($result['error'])) {
      echo "Wystąpił błąd: " . $result['error'] . ", kod: " . $result['code'];
      } else {
    echo "<table><tr><td>";
      echo "<table bgcolor=#dddddd><tr><td><b>ID zamówienia:</b> " . $result['order_id'] . "</td>";
      echo "<td><b>Wartość zamówienia:</b> " . $result['sum'] . "</td>";
      echo "<td><b>Data złożenia:</b> " . $result['date'] . "</td></tr></table>";
      // itp.
    echo "<table width=100%><tr><td>";
      echo "<br><b>Adres bilingowy:</b><br>";
      $billingAddress = (Array)$result['billingAddress'];
      echo "Imię: " . $billingAddress['firstname'] . " ";
      echo "Nazwisko: " . $billingAddress['lastname'] . "<br>";
      echo "Miejscowość: " . $billingAddress['city'] . "<br>";
      echo "Adres: " . $billingAddress['street1'] . " ";
      echo $billingAddress['street2'] . "<br>";
      // itp.
    echo "</td><td>";
      echo "<br><b>Adres dostawy:</b><br>";
      $deliveryAddress = (Array)$result['billingAddress'];
      echo "Imię: " . $deliveryAddress['firstname'] . " ";
      echo "Nazwisko: " . $deliveryAddress['lastname'] . "<br>";
      echo "Miejscowość: " . $deliveryAddress['city'] . "<br>";
      echo "Adres: " . $deliveryAddress['street1'] . " ";
      echo $deliveryAddress['street2'] . "<br>";
      // itp.
    echo "</td></tr></table>";
      echo "<br><b>Produkty:</b><br>";
      echo "<table bgcolor=#eeeeee width=100%><tr><td>Nazwa</td><td>KOD</td><td>WARIANT</td></tr>";
         $products = (Array)$result['products'];
      foreach ($products as $p) {
      $product = (Array)$p;
      echo "<tr><td>" . $product['name'] . "</td>";
      echo "<td>" . $product['code'] . "</td>";
      echo "<td>" . $product['option'] . "</td></tr>";
      // itp.
      }
         echo "</table></table>";
    };
       };
    } else {
      echo "Wystąpił błąd logowania";
    }
    curl_close($c);
    ?>
    
    Tworzymy w sklepie użytkownika mającego dostęp do webapi i wpisujemy jego dane w miejsca opisane
    W miejsce opisane wpisujemy również adres sklepu.
    Jak to działa?
    Po wejściu przez przeglądarkę na adres: http://naszadresdopliku.pl/zamowienia.php?od=1&do=2
    Wpisujemy za od= numer zamówienia od którego chcemy zacząć wyświetlanie, a za do= numer zamówienia do którego chcemy wyświetlić zamówienia :)

    Trochę zawikłane, ale działa :)

    napisane na podstawie kodu dostępnego w dokumentacji do API sklepu
     
    Grzesiek i Mariusz lubią to.

Poleć forum znajomym