Jump to content

Welcome, Guest!

By registering with us, you'll be able to discuss, share and private message with other members of our community.


  • Content Count

  • Joined

  • Last visited

  • Days Won


Pedalman last won the day on August 9

Pedalman had the most liked content!

Community Reputation

54 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I added today two collumns to oder overview I need and like to see in the overview: 1.) invoice no. 2.) date of order status update These were more than easy to add since Thirtybees uses a bootstrap admin template and columns fit more or less when you add some. You will find the additions in the added code snippet. However, I need a third collumn and this is the most important one for me 3.) If order status history contains payment option "pay via invoice" & not order status ID "payed" then show date of delivery (order status date of deliverstatus ID) and add e.g. 14 days to it and color it red. Else do not show or string 'OK' in green ­čÖé You dig it. I use a 'private' payment option that allow customers to buy via inhouse invoice. After 14 days they should have paid the order. Thing is I very much often forget those orders and have problems to controll them. Ok, well, I have an extra order status for them saying "waiting for payment of invoice" but I also forget some time to set this one. So, this collumn could be handy to me since I would see at a glance which orders were checked out via "my inhouse invoice payment" and where I have not set the status "payment received". PS: Best, or an enhancement would be to to add function to invoice payment module to set a certain status automatically (could check via cron). Actually, my pretty old invoice payment options claims to have this functions but it never worked ­čś× Advantage of this approach is that I can bundle order status with reminder email for customer. /override/controllers/admin/AdminOrdersController.php <?php class AdminOrdersController extends AdminOrdersControllerCore { // @codingStandardsIgnoreStart /** @var string $toolbar_title */ public $toolbar_title; /** @var array $statuses_array */ protected $statuses_array = []; // @codingStandardsIgnoreEnd /** * AdminOrdersControllerCore constructor. * * @since 1.0.0 */ public function __construct() { /*echo "__construct() OVERRIDE BORIS WORKING"; */ $this->bootstrap = true; $this->table = 'order'; $this->className = 'Order'; $this->lang = false; $this->addRowAction('view'); $this->explicitSelect = true; $this->allow_export = true; $this->deleted = false; $this->context = Context::getContext(); $this->_select = ' a.id_currency, a.id_order AS id_pdf, /* Boris add invoice and update date 2019.12*/ a.invoice_number, a.date_upd, /* //Boris add invoice and update date 2019.12*/ CONCAT(LEFT(c.`firstname`, 1), \'. \', c.`lastname`) AS `customer`, osl.`name` AS `osname`, os.`color`, IF((SELECT so.id_order FROM `'._DB_PREFIX_.'orders` so WHERE so.id_customer = a.id_customer AND so.id_order < a.id_order LIMIT 1) > 0, 0, 1) as new, country_lang.name as cname, IF(a.valid, 1, 0) badge_success'; $this->_join = ' LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = a.`id_customer`) LEFT JOIN `'._DB_PREFIX_.'address` address ON address.id_address = a.id_address_delivery LEFT JOIN `'._DB_PREFIX_.'country` country ON address.id_country = country.id_country LEFT JOIN `'._DB_PREFIX_.'country_lang` country_lang ON (country.`id_country` = country_lang.`id_country` AND country_lang.`id_lang` = '.(int) $this->context->language->id.') LEFT JOIN `'._DB_PREFIX_.'order_state` os ON (os.`id_order_state` = a.`current_state`) LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int) $this->context->language->id.')'; $this->_orderBy = 'id_order'; $this->_orderWay = 'DESC'; $this->_use_found_rows = true; $statuses = OrderState::getOrderStates((int) $this->context->language->id); foreach ($statuses as $status) { $this->statuses_array[$status['id_order_state']] = $status['name']; } $this->fields_list = [ 'id_order' => [ 'title' => $this->l('ID'), 'align' => 'text-center', 'class' => 'fixed-width-xs', ], 'reference' => [ 'title' => $this->l('Reference'), ], 'new' => [ 'title' => $this->l('New client'), 'align' => 'text-center', 'type' => 'bool', 'tmpTableFilter' => true, 'orderby' => false, 'callback' => 'printNewCustomer', ], 'customer' => [ 'title' => $this->l('Customer'), 'havingFilter' => true, ], ]; if (Configuration::get('PS_B2B_ENABLE')) { $this->fields_list = array_merge( $this->fields_list, [ 'company' => [ 'title' => $this->l('Company'), 'filter_key' => 'c!company', ], ] ); } $this->fields_list = array_merge( $this->fields_list, [ 'total_paid_tax_incl' => [ 'title' => $this->l('Total'), 'align' => 'text-right', 'type' => 'price', 'currency' => true, 'callback' => 'setOrderCurrency', 'badge_success' => true, ], 'payment' => [ 'title' => $this->l('Payment'), ], 'osname' => [ 'title' => $this->l('Status'), 'type' => 'select', 'color' => 'color', 'list' => $this->statuses_array, 'filter_key' => 'os!id_order_state', 'filter_type' => 'int', 'order_key' => 'osname', ], 'date_add' => [ 'title' => $this->l('Date'), 'align' => 'text-right', 'type' => 'datetime', 'filter_key' => 'a!date_add', ], /*BORIS 2019.12 'invoice_date' => [ 'title' => $this->l('Invoice Date'), 'align' => 'text-right', 'type' => 'datetime', 'filter_key' => 'a!invoice_date' ],*/ 'invoice_number' => [ 'title' => $this->l('Invoice No'), 'align' => 'text-right', 'type' => 'int', 'filter_key' => 'a!invoice_number' ], 'date_upd' => [ 'title' => $this->l('Update OS'), 'align' => 'text-right', 'type' => 'datetime', 'filter_key' => 'a!date_upd' ], /* //BORIS 2019.12*/ 'id_pdf' => [ 'title' => $this->l('PDF'), 'align' => 'text-center', 'callback' => 'printPDFIcons', 'orderby' => false, 'search' => false, 'remove_onclick' => true, ], ] ); if (Country::isCurrentlyUsed('country', true)) { $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS( ' SELECT DISTINCT c.id_country, cl.`name` FROM `'._DB_PREFIX_.'orders` o '.Shop::addSqlAssociation('orders', 'o').' INNER JOIN `'._DB_PREFIX_.'address` a ON a.id_address = o.id_address_delivery INNER JOIN `'._DB_PREFIX_.'country` c ON a.id_country = c.id_country INNER JOIN `'._DB_PREFIX_.'country_lang` cl ON (c.`id_country` = cl.`id_country` AND cl.`id_lang` = '.(int) $this->context->language->id.') ORDER BY cl.name ASC' ); $countryArray = []; foreach ($result as $row) { $countryArray[$row['id_country']] = $row['name']; } $part1 = array_slice($this->fields_list, 0, 3); $part2 = array_slice($this->fields_list, 3); $part1['cname'] = [ 'title' => $this->l('Delivery'), 'type' => 'select', 'list' => $countryArray, 'filter_key' => 'country!id_country', 'filter_type' => 'int', 'order_key' => 'cname', ]; $this->fields_list = array_merge($part1, $part2); } $this->shopLinkType = 'shop'; $this->shopShareDatas = Shop::SHARE_ORDER; if (Tools::isSubmit('id_order')) { // Save context (in order to apply cart rule) $order = new Order((int) Tools::getValue('id_order')); $this->context->cart = new Cart($order->id_cart); $this->context->customer = new Customer($order->id_customer); } $this->bulk_actions = [ 'updateOrderStatus' => ['text' => $this->l('Change Order Status'), 'icon' => 'icon-refresh'], ]; parent::__construct(); } }
  2. I would give it another try since I see it as Rampage suggested. I had his problem often in the last 8 years and always it was related to caching problems. (These are not only the settings you set in your BO but also those used by your ' host'. In my case I I had issues some times in the past with php additions like APC and OPcache. Also with activated mod_pagespeed I had issues. But all this is not my domain but if you know those terms and know where to de-/activate them you could give it a try.) Make also sure that in your performance settings cache (APC etc.) and full page caching (both more at the bottom part of performance settings) are disabled for testing your problem. I had excactly the same problems as said and sometimes a translations appeared correctly literally the next day on front/back.
  3. I try to clean up my product descriptiond and meta data from old html tags like span and div. I did export my data via Datakick module and also via csv export from /bo/catalog. I openend the data in my two favorite tools VisualCode and Scalc and did some search and replace routines. Regex does help here immensely but I am all than used to regex. So I wonder if iht would not be nice to have all in one place, namely Thirtybees. Would be great to expand its export capabilities with some cleaning functions. I do not know but assume that the HtmlPurifier does something like this and perhaps it is quickly doable to habe a product/categorie data export feature with splitscreen (left real data/right preview). I think data shold be presented in tables like Scalc does. Anyhow, how do you groom your product data?
  4. I am sorry about me complaining too early. My issue was related to my local db set up. The override works fine. As always you have to delete class_index.php in /cache/ to make override work. If it is ok please delete my posts here since they are obsolete. Thanks
  5. Oh, that is good to hear. I will check my other installations. ! update: I did so and no problems at all on my live server with the override. All I had to to as always with overrides was to delete the class_index.php file in /cache/ ( Absolutely my fault. The problem I faced is realted to the way I set up my local database. I could not get it working with a clone of my live shop. This clone runs local on Xampp. With debug on I could not get the export beining generated due to the errow message shown: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' a.`reference`, NULL AS features, NULL AS tags, supplier.`name` AS supplier_name' at line 3 in file classes/db/Db.php at line 488 With debug off I could generate the csv ! very nice but else than expected it contained only the 'header line' without any articles. These I had checked in product list. )
  6. Moreover, crucial things like invoices and credit slips should work. If merchants notice irregualarities or even bugs I assume it'd be appropriate if a team leader shows he took notice of it and does all a fix is introduced. Merchants use live shops and no test shops ­čÖé So, I am asking for help here for a proper order-slip.total-tab.tpl
  7. looking for way to sort invoice articles via article ref
  8. I triesd the override but it reported to be incompatible with latest TB (debug on). Could please someone capable check, cause I like this override and'd be very handy.
  9. solved. see next post (Ehm, I made the experience using this override that it reports to be incompatible with TB (latest stable). It would be very great if some one capable could test it.)
  10. Theo, thanks for the advice on the link but ! please delete it in your citation, too!

    Thank you

    1. Theo



      Somehow the link was deleted from the citation as well ­čÖé

  11. Da hatte ich wohl was falsch in Erinnerung. Ich dachte immer, "Setze Bestellung auf "Bezahlt"" sorgt f├╝r mind. zwei Dinge: a) Rechnung wird generiert b) Statistik im Dashbooard arbeitet richtig Sieht so aus, dass ich die Rechnung auch mit dem "Download der PDF Rechnung erlauben" generieren kann. Damit w├Ąre das gekl├Ąrt. Danke f├╝r den Screenshot!
  12. I bought some years ago a module called: PrestaVaultMalware | Virus | Trojan Protection by prestashopaddons.prestaheroes.com . What I bought was the Prestaversion. Since ca. two years he or they support also THIRTYBEES ! Sad for me is he wanted me to buy the module again extra for Thirtybees. I denied and use since years the Presta version on my Thirtybees shop. Thing is it seems to work. If I could I would enhance the module with the function to show also who used the back office and when. You can see this of course in logs but I 'd like to have it in once place. File monitoring (size and date) that is what the module does and also a view for backoffice use times. Best would be a detailed view that could break down if files where changes when xzy was logged into bo. Best would be if you could also implement FTP connection via server log ­čÖé Oh, and btw the module seems to do its job via doing a backup of all files, storing some hash in db with the original files (your table for the module will grow very big in db ­čśë ) and the do a comparrison check. In a nutshell you got also a back up you can restore from module gui. All in all a very fine module that is worth its price!
  13. Wie in alten Zeiten occam ­čÖé Wir reden an einander vorbei. Aber ist meine Schuld. ... " muss ich 'einen' Status haben, der auf bezahlt steht. " damit meinte ich, einen Status, der die Bestellung als bezahlt=1 setzt in der db. Oder wie auch immer, Du hast es treffend ausgedr├╝ckt und geholfen. Danke sehr.
  14. Ich bin gl├╝cklicher Chex Kunde, aber diese erweiterten Merkmale werden bei mir auch nicht angezeigt. Ich hoffe ehrlich, dass dieses bei unseren Artikeln auch unn├Âtig ist, da es den checkout un├╝bersichtlich gestalten w├╝rden (mobilview).
  15. Als ich schrieb " Aber um eine Rechnung aus zu drucken, muss die Order auf "bezahlt" stehen. ", da meinte ich es generell, also nicht w├Ârtlich. Ich wollte damit sagen, wenn ich eine Rechnung generieren und ausdrucken will, so muss ich 'einen' Status haben, der auf bezahlt steht. Unsere Kunden, die auf Rechnung kaufen, bekommen ja auch eine Rechnung beigelegt... Und somit habe ich nat├╝rlich auch immer mal wieder Rechnungen im Sytem (inkrementelle RE-Nr...), f├╝r die kein Geld geflossen ist.* Und somit sollte es auch richtig sein, dass ich diese dann ebenfalls via Teil-/R├╝ckerstattung, welches ja f├╝r die Generierung des R├╝ckerstattungsdokuments n├Âtig ist, aufhebe. F├╝r diesen Vorgang brauche ich nicht das RMA System in TB aktivieren und eigentlich auch den Bestellstatus 'storniert' nicht. *) entweder, weil der Kunde vor Versand vom Kauf zur├╝cktritt, oder nach erhalt der Ware sich entscheidet zu Widerrufen oder M├Ąngel feststellt und nicht zahlen will
  • Create New...