Právě je 18 dub 2024 20:19

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 3 ] 
Autor Zpráva
 Předmět příspěvku: PrestaShop - Třídění položek objednávky
PříspěvekNapsal: 13 zář 2014 22:34 
C4 zákazník

Registrován:
13 zář 2014 22:24
Příspěvky:
2
Přeji dobrý den,

potřeboval bych v objednávce setřídit položky dle názvu a v tomto tvaru objednávku odeslat zákazníkovi i adminovi.
Hledám v kódu, zatím jsem příslušný SQL příkaz pro načtení objednávek včetně setřídění nenalezl ...

Verze 1.5.4.1

S pozdravem kbtm


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Třídění položek objednávky
PříspěvekNapsal: 16 zář 2014 12:57 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 09:14
Příspěvky:
8504
Dobrý den,

pro změnu řazení produktů v objednávce podle názvu musíte upravit v souboru classes/order/Order.php tuto část kódu:
Kód:
   public function getProductsDetail()
   {
      return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
      SELECT *
      FROM `'._DB_PREFIX_.'order_detail` od
      LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.id_product = od.product_id)
      LEFT JOIN `'._DB_PREFIX_.'product_shop` ps ON (ps.id_product = p.id_product AND ps.id_shop = od.id_shop)
      WHERE od.`id_order` = '.(int)($this->id));
   }

na tvar:
Kód:
  public function getProductsDetail()
   {
      return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
      SELECT *
      FROM `'._DB_PREFIX_.'order_detail` od
      LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.id_product = od.product_id)
      LEFT JOIN `'._DB_PREFIX_.'product_shop` ps ON (ps.id_product = p.id_product AND ps.id_shop = od.id_shop)
      WHERE od.`id_order` = '.(int)($this->id).' ORDER BY od.`product_name`');
   }

A pokud byste chtěl změnit řazení produktů i na faktuře, tak musíte upravit v souboru classes/order/OrderInvoice.php tuto část kódu:
Kód:
   public function getProductsDetail()
   {
      return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
      SELECT *
      FROM `'._DB_PREFIX_.'order_detail` od
      LEFT JOIN `'._DB_PREFIX_.'product` p
      ON p.id_product = od.product_id
      LEFT JOIN `'._DB_PREFIX_.'product_shop` ps ON (ps.id_product = p.id_product AND ps.id_shop = od.id_shop)
      WHERE od.`id_order` = '.(int)$this->id_order.'
      AND od.`id_order_invoice` = '.(int)$this->id);
   }

na tvar:
Kód:
  public function getProductsDetail()
   {
      return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
      SELECT *
      FROM `'._DB_PREFIX_.'order_detail` od
      LEFT JOIN `'._DB_PREFIX_.'product` p
      ON p.id_product = od.product_id
      LEFT JOIN `'._DB_PREFIX_.'product_shop` ps ON (ps.id_product = p.id_product AND ps.id_shop = od.id_shop)
      WHERE od.`id_order` = '.(int)$this->id_order.'
      AND od.`id_order_invoice` = '.(int)$this->id.' ORDER BY od.`product_name`');
   }

Ale pak se Vám samozřejmě budou řadit stejným způsobem i produkty ve starých a nově vytvořených objednávkách (příp. fakturách). Takže pokud chcete seřadit produkty pouze v jedné objednávce, tak jedinou možností je úprava přímo v databázi v tabulce ps_orders (příp. vasprefix_orders). Podle id objednávky si ve sloupečky id_order najdete všechny produkty v objednávce a prohodíte jim čísla ve sloupečku id_order_detail, pomocí kterých se standardně řadí produkty v objednávce a faktuře.

_________________
Radek Plašil
Webhosting C4
https://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Třídění položek objednávky
PříspěvekNapsal: 16 zář 2014 13:15 
C4 zákazník

Registrován:
13 zář 2014 22:24
Příspěvky:
2
Přeji dobrý den,

děkuji za odpověď, pracuje to tak, jak jsem očekával !
Objednávka je tak přehlednější pro přípravu položek (objednávky obsahují běžně desítky až stovky položek) a protože je zákazníci zpracovávají i několik hodin - tj. běžně přeskakují mezi skupinami a opět se vrací, setřídění dle názvu bude asi nejlepší.

Díky !

S pozdravem kbtm


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 3 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PrestaShop partneři

Seznam všech partnerů

PrestaShop Hosting
Návody pro C4

© 2009-2024 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz