Přihlásit se

Výsledky hledání (Hledáno: multi vendor)

28. čvc 2022 13:30 - 28. čvc 2022 14:01
Odpověď od H13
Ahoj,

možná by chtělo vysvětlit, že Phoca Cart a Virtuemart jsou dva trochu odlišné koncepty a že asi nemá smysl vytvářet nějaký flame war.

Každopádně rozhodně bych dnes nepoužíval Joomlu 3 na nový projekt.

VM pro Joomlu 4 vypadá asi takto



Myslím, že kdo nainstaloval VM pro Joomlu 4, nemusí dále diskutovat. Jakákoliv diskuze na téma VM a J4 postrádá smysl.

Vrátím se k těm odlišným konceptům. Zatímco VM je obrovský moloch, kde je potřeba neustále dokola řešit nesrovnalosti, bugy, kompatibilitu, atd. a nezbývá moc času na modernizaci, v Phoca Cart se jde trochu jiným směrem. BTW já sám vím, o čem mluvím, protože jsem také spravoval jeden moloch - Phoca Gallery. A abych se netrápil jako VM projekt, radikálně jsem Phoca Gallery pro Joomlu 4 pročistil. Moderní web je dnes co nejjednodušší a to požadujeme i od komponent. Tedy, v Phoca Cart nejsou velké vlastnosti jako je např. Multivendor (mimochodem není doporučeno používat Multivendor ve VM, jsou tam obrovské chyby, např. prodejce mohl vidět zboží cizího prodejce, atd.). V Phoca Cart se jde cestou co nejjednoduššího prodeje v nějaké přijatelně moderní verzi.

Příklad, zatímco ve VM můžete najít tabulky a ikony, které mohly vzniknout i kolem roku 2004:



ve Phoca Cart zkoušíme plnit požadavky uživatelů, co se týče moderního webu:

- prvně jsme měli ikony Bootstrap, ale protože výstup Phoca Cart může být jak Bootstrapový, tak i např. UIkitový
- přidali jsme podporu pro Font Awesome 4
- potom i Font Awesome 5

Jenže moderní web se neustále vyvýjí, takže i font ikony už jsou přežité (načítat celý font např. kvůli 20 ikonám není dobré),
- takže jsme přidali podporu SVG ikon

Jenže uživatelé chtějí vlastní SVG,
- takže SVG soubor s definicemi jednotlivých ikon je možné přepsat v šabloně.



Výstup nás zajímá, protože je důležitý, takže výstup podporuje jak základní šablonu Cassiopeia, tak frameworky jako je Gantry, YOOtheme, Helix, T4, ...

To je jen příklad, a netýká se jen ikon a výstupu, je to i o kódu, ten je např. už teď kompatibilní s PHP 8.2

Jelikož se jedná o jednoduchý e-shop


Přesně tam Phoca Cart cílí. Jednoduchý e-shop - rychle, kvalitně a moderně.
 
27. srp 2021 18:14
Odpověď od Cony
No spíš je to jakási kombinace subscription a shop komponenty, tak spíš bych to viděl na rozšíření něčeho takového, nejspíš ale komplet vývoj na míru. To zobrazení galerie na tom bude asi to nejjednodušší.
Na zamyšlení
- kde se budou obrázky ve fotobance brát? Autoři sami přidávají? Pak přibývá jakýsi multivendor, nutnost vyplácení provizí apod.
- IPTC data - data se budou muset extrahovat při importu fotek do databáze, aby je bylo možné prohledávat. Budou ale vždy v pořádku? Umí každý fotograf data správně doplnit? Spíš by se asi data měla předvyplnit, a nabídnout k editaci.
- copyright - budete prodávat fotky a ještě do nich doplňovat copyright? Copyright je asi ten nejmenší problém, jen nechápu ten byznys plán...

Obecně myslím, že 20 tisíc na toto stačit rozhodně nebude, navíc je to poměrně velká specialita u které nelze očekávat nějaké velké prodeje případně hotového řešení, ale možná se mýlím...
21. lis 2020 21:47
Odpověď od xunil
Multivarianta je divná. Pokud již mám potomky, a ve vlastní ch polích přidám multivariantu, tak u produktu je vybran rodič (který záměrně nejde zakoupit. To ale může být pro lidi matoucí.

Dle návodu na:
docs.virtuemart.net/tutorials/product-cr...21-multivariant.html
se píše:
The first row in the table is the parent. When the parent has a valid selection that means all dropdowns have a valid value, then the parent is orderable, but if not, then the parent is not orderable and the dropdown will show something like "Choose an option"
To ale vyhodí tuhle chybu:
vmError: VmTableData Jméno v záznamu chybí! Nelze uložit záznam bez Jméno.
vmError: You are not an administrator or the correct vendor, storing of product cancelled

Pokud si vytvořím rodiče bez ceny. a Přidám multivariantu a pomocí ní přidávám potomky, pak již na webu je "vyberte" což už je lepší než když tam je jen rodič bez košíku.
27. led 2020 13:30 - 27. led 2020 13:31
Odpověď od H13
Jo, to jo. :(

Já si to zapsal do feature request listu, ale vzhledem k tomu, že je tam aktivních cca 340 feature requestů, týdně mi jich příjde tak 3 - 4 a některý feature requesty mají přes 25 bodů, nevím :(

Zajímavý je, že všeobecně multi-vendor má jeden bod (1 bod znamená, že to požadoval zatím jen jeden uživatel).

Osobně s tím nemám žádný zkušenosti, takže ani nevím jak všeobecně multi-vendor funguje (myslím tim technicky) - jestli se objednávka podle nějakého klíče svazuje s prodejcem? Teoreticky to může být v rozsahu extrémně jednoduchého až po extrémně složitého:

1) jednoduchá verze - při objednávce se pomocí nějakého klíče sváže objednávka s prodejcem
2) složitější verze - doklady jsou vystaveny na prodejce (tedy v administraci se u prodejce definují fakturační údaje prodejce)
3) ještě složitější - objednávky mají speciální číslo pro dané prodejce, včetně faktur, atd. Ve výpisech se filtruje podle prodejců, všechny statistiky opět přes filtry prodejců, atd. Oddělené sklady, ...

Zatímco 1) lze celkem jednoduše v Phoca Cart doimplentovat, další už bude složitější :-(
27. led 2020 12:51
Odpověď od H13
Možnej problém vidím v tom, že Phoca Cart není multi-vendor. Mám podporu více prodejců, ale v POS (tedy ne různých e-chop prodejců, ale skutečných fyzických prodejců za pokladnou).
27. led 2020 12:16
Odpověď od Rudolf
Ok Honzo,

tak pořešíme později, tento týden musím dokončit jeden eshop a tohle je příprava na zakázku, kterou bychom mohli začít až v březnu/dubnu.
Možná do té doby bude novější verze. Já si potřeboval ujasnit zda mohu určité parametry zobrazit na výpisu kategorie v tabulkové formě vedle názvu produktu == něco jako řádkový katalog výrobků s vlastnostma na výpise kategorie, abych koncepčně rozhodl že na tuto zakázku nebudu používat VirtueMart :)
A že zde mohu mít dva vendory (jeden pro MOC zákazníky a jeden pro B2B zákazníky, přitom produkty jsou společné.
No a do budoucna multilanguage.
Kartu nepotřebuji, jen dobírku.

A pak rozdělovník v popupu zda nakupuji na firmu nebo na soukromo, ještě než něco dám do košíku == toto bude custom řešení přidané.

Zatím mi to přijde, že by to Phoca mohlo zvládnout s úpravami (opět eshop na Kalouska).
09. led 2020 11:05
Odpověď od Rudolf

lze na jednom webu mít 2 administrace Virtuemartu


Ano, lze mít na jednom webu 1x Virtuemart s jednou přehlednou administrací a dvěma eshopy s rozdílnou číselnou řadou.
VirtueMart je totiž Multivendor řešení (eshop s více prodejci).
Chce to ale programové úpravy - minimálně pro tu číselnou řadu.
A doporučuji nainstalovat Virtuemart Email Manager pro generování vlastních emailových šablon.
10. dub 2019 21:10 - 10. dub 2019 21:11
Odpověď od Rudolf
Pokud má obchod, který provozujete sídlo na Slovensku == vendor == zákazník v administraci má adresu SK, MUSITE mít povolenou SK jako zemi v administraci Virtuemartu, ať se Vám to líbí nebo ne.

Pokud chcete doručovat (shipping) do dalších zemí ze Slovenska (RO, Si, HR), prostě si je v nastavení VitueMartu povolíte a ostatní zakážete. A ano, bude tam i SK v košíku v seznamu zemí. To můžete omezit tak, že pro SK nevytvoříte žádnou dopravu a systém zákazníkoviu napíše že do SK neexistuje doprava == nedoručuje.

A pokud už je povolíte, nezapomeňte, že ne všechny země mají EUR, takže musíte mít multiměnový eshop.

Pokud jste chtěl něco jiného, nepochopil jsem dotaz :D
22. úno 2018 17:10
Odpověď od H13

Díky a dalo by se do Phoca cart doprogramovat to co potřebujeme?

Bohužel zatím ne, Phoca Cart má trochu jinou filozofii - dělat co nejméně duplicit (administrace v administraci, administrace ve frontendu, atd.) - tedy, aby systém nebyl naboutnalý a dal se spravovat a byl pořád pod kontrolou (což se u některých jiných řešení nepovedlo). Uvidíme v budoucnosti, zatím probíhá experiment s POS funkcí (takový mezistupeň - prodávat sice může více prodejců, ale lokálně na "kase" bez možnosti vlastní administrace, vlastních produktů, atd. - malé prodejny, restaurace, atd.). Doprogramování takové funkce (komplexní multi-vendor), která si žádá velké zásahy do stávající struktury, by stejně bylo na více než půl roku :-(
09. úno 2018 16:23
Odpověď od H13

hrackar napsal: Dobrý den,

nemohu mluvit za H13 k Phoca cart, ale pokud jsem pochopil dobře systém jakým chcete zařídit prodej s oddělenou obsluhou tak nejlepší řešení je si podobný systém nechat napsat na míru i kdyby do Joomly. Nejsem si jist, že běžný eshop by toto uměl.


Ano, je to tak, Phoca Cart nemá takovou vlastnost, aby více prodejců mohlo využívat jeden eshop. Jestli se bude Phoca Cart ubírat nějakým takovým směrem, tak to bude spíš směrem POS (Point of Sale). Zatím jsem si dělal nějaké testy a uvidíme, jestli to bude možné provést. U POS je sice možnost, že je více prodejců, ale pouze na jednom neodděleném e-shopu.

Funkce POS by pro příklad byla:
- uživatel by prodával věci přes e-shop ale měl by zároveň i kamenou prodejnu, kdy by prostě přes POS namarkoval zboží zákzaníkovi, co by přišel do obchodu (výhodou by bylo mít vše uložené na jednom místě)
- podobně jako funguje restaurační POS - např. dva číšníci (prodejci) by prodováli v jednom e-shopu, manažer by spravoval e-shop v administraci.

POS na rozdíl od multi-vendor funkce nemusí oddělovat administraci a nějak zvlášť řešit administrační duplicity a podobně (jako že jeden prodejce má jednu administraci, druhý druhou, manažer svoji a ještě má nějakou "nadadministraci" nad ostatními prodejci - tohle je asi opravdu lépe vytvořit na přímo na objednávku)
22. led 2018 17:59
Dobrý večer.
Jak nejlépe vyřešit fakturaci při VM3 a zapnutém multivendoru?

Znám akorát fakturační komponentu od ARTIO, kde je ale multivendor nedodělaný a nedá se použít.
02. kvě 2017 19:57 - 02. kvě 2017 19:59
Virtuemart - formulář na dotaz od Vojtěch Kocián
Zdravím,

marně se snažím přesunout formulář pro odeslání dotazu z jeho vlastní stránky přímo do detailu produktu.

Zkopíroval jsem celý formulář, ale stále po odeslání formuláře se stránka přesměruje na stránku s formulářem.

Viz zde - Zobrazit dotaz na zboží:
Code:
http://www.santiago.cz/eshop/laboratorni-pristroje/ultrazvukove-lazne/lazne-elmasonic-typ-s/elmasonic-s-10-detail

Kód formuláře:
Code:
<div class="form-field"> <form method="post" class="form-validate" action="<?php echo JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$this->product->virtuemart_product_id.'&virtuemart_category_id='.$this->product->virtuemart_category_id.'&tmpl=component', FALSE) ; ?>" name="askform" id="askform"> <table class="askform"> <tr> <td><label for="name"><?php echo vmText::_('COM_VIRTUEMART_USER_FORM_NAME') ?> : </label></td> <td><input type="text" class="validate[required,minSize[3],maxSize[64]]" value="<?php echo $this->user->name ? $this->user->name : $sessData['name'] ?>" name="name" id="name" size="30" validation="required name"/></td> </tr> <tr> <td><label for="email"><?php echo vmText::_('COM_VIRTUEMART_USER_FORM_EMAIL') ?> : </label></td> <td><input type="text" class="validate[required,custom[email]]" value="<?php echo $this->user->email ? $this->user->email : $sessData['email'] ?>" name="email" id="email" size="30" validation="required email"/></td> </tr> <tr> <td colspan="2"><label for="comment"><?php echo vmText::sprintf('COM_VIRTUEMART_ASK_COMMENT', $min, $max); ?></label></td> </tr> <tr> <td colspan="2"><textarea title="<?php echo vmText::sprintf('COM_VIRTUEMART_ASK_COMMENT', $min, $max) ?>" class="validate[required,minSize[<?php echo $min ?>],maxSize[<?php echo $max ?>]] field" id="comment" name="comment" rows="8"><?php echo $sessData['comment'] ?></textarea></td> </tr> </table> <div class="submit"> <?php // captcha addition echo $this->captcha; // end of captcha addition ?> <div> <div class="floatleft width50"> <input class="highlight-button" type="submit" name="submit_ask" title="<?php echo vmText::_('COM_VIRTUEMART_ASK_SUBMIT') ?>" value="<?php echo vmText::_('COM_VIRTUEMART_ASK_SUBMIT') ?>" /> </div> <div class="floatleft width50 text-right"> <label for="counter"><?php echo vmText::_('COM_VIRTUEMART_ASK_COUNT') ?></label> <input type="text" value="0" size="4" class="counter" id="counter" name="counter" maxlength="4" readonly="readonly" /> </div> <div class="clear"></div> </div> </div> <input type="hidden" name="virtuemart_product_id" value="<?php echo vRequest::getInt('virtuemart_product_id',0); ?>" /> <input type="hidden" name="tmpl" value="component" /> <input type="hidden" name="view" value="productdetails" /> <input type="hidden" name="option" value="com_virtuemart" /> <input type="hidden" name="virtuemart_category_id" value="<?php echo vRequest::getInt('virtuemart_category_id'); ?>" /> <input type="hidden" name="task" value="mailAskquestion" /> <?php echo JHTML::_( 'form.token' ); ?> </form> </div>

Celý kód detailu produktu:
Code:
<?php defined('_JEXEC') or die('Restricted access'); $min = VmConfig::get('asks_minimum_comment_length', 50); $max = VmConfig::get('asks_maximum_comment_length', 2000) ; vmJsApi::JvalideForm(); vmJsApi::addJScript('askform',' jQuery(function($){ jQuery("#askform").validationEngine("attach"); jQuery("#comment").keyup( function () { var result = $(this).val(); $("#counter").val( result.length ); }); }); '); /* Let's see if we found the product */ if (empty($this->product)) { echo vmText::_('COM_VIRTUEMART_PRODUCT_NOT_FOUND'); echo '<br /><br /> ' . $this->continue_link_html; return; } echo shopFunctionsF::renderVmSubLayout('askrecomjs',array('product'=>$this->product)); vmJsApi::jDynUpdate(); vmJsApi::addJScript('updDynamicListeners'," jQuery(document).ready(function() { // GALT: Start listening for dynamic content update. // If template is aware of dynamic update and provided a variable let's // set-up the event listeners. if (Virtuemart.container) Virtuemart.updateDynamicUpdateListeners(); }); "); if(vRequest::getInt('print',false)){ ?> <body onload="javascript:print();"> <?php } // addon for joomla modal Box JHtml::_('behavior.modal'); $this->row = 0; ?> <div class="productdetails-view productdetails"> <div><?php echo $this->edit_link; ?></div> <?php // Product Navigation if (VmConfig::get('product_navigation', 1)) { ?> <div class="product-neighbours"> <?php if (!empty($this->product->neighbours ['next'][0])) { $next_link = JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $this->product->neighbours ['next'][0] ['virtuemart_product_id'] . '&virtuemart_category_id=' . $this->product->virtuemart_category_id); echo JHTML::_('link', $next_link, $this->product->neighbours ['next'][0] ['product_name'], array('class' => 'next-page')); } if (!empty($this->product->neighbours ['previous'][0])) { $prev_link = JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $this->product->neighbours ['previous'][0] ['virtuemart_product_id'] . '&virtuemart_category_id=' . $this->product->virtuemart_category_id); echo JHTML::_('link', $prev_link, $this->product->neighbours ['previous'][0] ['product_name'], array('class' => 'previous-page')); } ?> <div class="clear"></div> </div> <?php // Back To Category Button if ($this->product->virtuemart_category_id) { $catURL = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$this->product->virtuemart_category_id); $categoryName = $this->product->category_name ; } else { $catURL = JRoute::_('index.php?option=com_virtuemart'); $categoryName = vmText::_('COM_VIRTUEMART_SHOP_HOME') ; } ?> <div class="back-to-category"> <a href="<?php echo $catURL ?>" class="" title="<?php echo $categoryName ?>"><?php echo JText::sprintf('COM_VIRTUEMART_CATEGORY_BACK_TO',$categoryName) ?></a> </div> <?php } // Product Navigation END ?> <div class="row-fluid"> <div class="span6"> <?php echo $this->loadTemplate('images'); ?> </div> <div id="b-area" class="span6"> <div class="spacer-buy-area"> <?php // PDF - Print - Email Icon if (VmConfig::get('show_emailfriend') || VmConfig::get('show_printicon') || VmConfig::get('pdf_button_enable')) { ?> <div class="icons hidden-phone"> <?php //$link = (JVM_VERSION===1) ? 'index2.php' : 'index.php'; $link = 'index.php?tmpl=component&option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $this->product->virtuemart_product_id; $MailLink = 'index.php?option=com_virtuemart&view=productdetails&task=recommend&virtuemart_product_id=' . $this->product->virtuemart_product_id . '&virtuemart_category_id=' . $this->product->virtuemart_category_id . '&tmpl=component'; if (VmConfig::get('pdf_icon', 1) == '1') { echo "<span class=\"vm-pdf-button\">".$this->linkIcon($link . '&format=pdf', 'COM_VIRTUEMART_PDF', 'pdf_button', 'pdf_button_enable', false)."</span>"; } echo "<span class=\"vm-print-button\">".$this->linkIcon($link . '&print=1', 'COM_VIRTUEMART_PRINT', 'printButton', 'show_printicon')."</span>"; echo "<span class=\"vm-email-button\">".$this->linkIcon($MailLink, 'COM_VIRTUEMART_EMAIL', 'emailButton', 'show_emailfriend')."</span>"; ?> <p class="kod-produktu">Kód: <?php echo $this->product->product_sku ?></p> <div class="clear"></div> </div> <?php } // PDF - Print - Email Icon END ?> <?php // Product Title ?> <h1><?php echo $this->product->product_name ?> </h1> <?php // Product Title END ?> <?php // afterDisplayTitle Event echo $this->product->event->afterDisplayTitle ?> <?php if (!empty($this->product->customfieldsSorted['ontop'])) { $this->position = 'ontop'; echo $this->loadTemplate('customfields'); } // Product Custom ontop end ?> <?php if ($this->showRating) { $maxrating = VmConfig::get('vm_maximum_rating_scale', 5); if (empty($this->rating)) { ?> <span class="vote"><?php echo vmText::_('COM_VIRTUEMART_RATING') . ' ' . vmText::_('COM_VIRTUEMART_UNRATED') ?></span> <?php } else { $ratingwidth = $this->rating->rating * 24; //I don't use round as percetntage with works perfect, as for me ?> <span class="vote"> <?php echo vmText::_('COM_VIRTUEMART_RATING') . ' ' . round($this->rating->rating) . '/' . $maxrating; ?> <span title=" <?php echo (vmText::_("COM_VIRTUEMART_RATING_TITLE") . round($this->rating->rating) . '/' . $maxrating) ?>" class="ratingbox" style="display:inline-block;"> <span class="stars-orange" style="width:<?php echo $ratingwidth.'px'; ?>"> </span> </span> </span> <?php } } ?> <?php // TODO in Multi-Vendor not needed at the moment and just would lead to confusion /* $link = JRoute::_('index2.php?option=com_virtuemart&view=virtuemart&task=vendorinfo&virtuemart_vendor_id='.$this->product->virtuemart_vendor_id); $text = vmText::_('COM_VIRTUEMART_VENDOR_FORM_INFO_LBL'); echo '<span class="bold">'. vmText::_('COM_VIRTUEMART_PRODUCT_DETAILS_VENDOR_LBL'). '</span>'; ?><a class="modal" href="<?php echo $link ?>"><?php echo $text ?></a><br /> */ // Product Short Description if (!empty($this->product->product_s_desc)) { ?> <div class="product-short-description"><span class="module-arrow"></span> <?php /** @todo Test if content plugins modify the product description */ echo nl2br($this->product->product_s_desc); ?> </div> <?php } // Product Short Description END ?> <?php // Manufacturer of the Product if (VmConfig::get('show_manufacturers', 1) && !empty($this->product->virtuemart_manufacturer_id)) { echo $this->loadTemplate('manufacturer'); } ?> <?php echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$this->product,'currency'=>$this->currency)); ?> <p>Způsob dopravy a dopravné upřesníme po Vaší objednávce, budeme Vás obratem kontaktovat.</p> <?php echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$this->product)); ?> <?php // Ask a question about this product if (VmConfig::get('ask_question', 0) == 1) { $askquestion_url = JRoute::_('index.php?option=com_virtuemart&view=productdetails&task=askquestion&virtuemart_product_id=' . $this->product->virtuemart_product_id . '&virtuemart_category_id=' . $this->product->virtuemart_category_id . '&tmpl=component', FALSE); ?> <div class="ask-a-question" style="clear:both;"> <div class="ask-a-question-view"> <section class="round-border"> <div> <button href="#collapse1" class="nav-toggle">Zobrazit dotaz na zboží</button> </div> <div id="collapse1" style="display:none"> <div class="form-field"> <form method="post" class="form-validate" action="<?php echo JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$this->product->virtuemart_product_id.'&virtuemart_category_id='.$this->product->virtuemart_category_id.'&tmpl=component', FALSE) ; ?>" name="askform" id="askform"> <table class="askform"> <tr> <td><label for="name"><?php echo vmText::_('COM_VIRTUEMART_USER_FORM_NAME') ?> : </label></td> <td><input type="text" class="validate[required,minSize[3],maxSize[64]]" value="<?php echo $this->user->name ? $this->user->name : $sessData['name'] ?>" name="name" id="name" size="30" validation="required name"/></td> </tr> <tr> <td><label for="email"><?php echo vmText::_('COM_VIRTUEMART_USER_FORM_EMAIL') ?> : </label></td> <td><input type="text" class="validate[required,custom[email]]" value="<?php echo $this->user->email ? $this->user->email : $sessData['email'] ?>" name="email" id="email" size="30" validation="required email"/></td> </tr> <tr> <td colspan="2"><label for="comment"><?php echo vmText::sprintf('COM_VIRTUEMART_ASK_COMMENT', $min, $max); ?></label></td> </tr> <tr> <td colspan="2"><textarea title="<?php echo vmText::sprintf('COM_VIRTUEMART_ASK_COMMENT', $min, $max) ?>" class="validate[required,minSize[<?php echo $min ?>],maxSize[<?php echo $max ?>]] field" id="comment" name="comment" rows="8"><?php echo $sessData['comment'] ?></textarea></td> </tr> </table> <div class="submit"> <?php // captcha addition echo $this->captcha; // end of captcha addition ?> <div> <div class="floatleft width50"> <input class="highlight-button" type="submit" name="submit_ask" title="<?php echo vmText::_('COM_VIRTUEMART_ASK_SUBMIT') ?>" value="<?php echo vmText::_('COM_VIRTUEMART_ASK_SUBMIT') ?>" /> </div> <div class="floatleft width50 text-right"> <label for="counter"><?php echo vmText::_('COM_VIRTUEMART_ASK_COUNT') ?></label> <input type="text" value="0" size="4" class="counter" id="counter" name="counter" maxlength="4" readonly="readonly" /> </div> <div class="clear"></div> </div> </div> <input type="hidden" name="virtuemart_product_id" value="<?php echo vRequest::getInt('virtuemart_product_id',0); ?>" /> <input type="hidden" name="tmpl" value="component" /> <input type="hidden" name="view" value="productdetails" /> <input type="hidden" name="option" value="com_virtuemart" /> <input type="hidden" name="virtuemart_category_id" value="<?php echo vRequest::getInt('virtuemart_category_id'); ?>" /> <input type="hidden" name="task" value="mailAskquestion" /> <?php echo JHTML::_( 'form.token' ); ?> </form> </div> </div> </div> </section> </div> <?php } ?> <?php // Availability $stockhandle = VmConfig::get('stockhandle', 'none'); $product_available_date = substr($this->product->product_available_date,0,10); $current_date = date("Y-m-d"); if (($this->product->product_in_stock - $this->product->product_ordered) < 1) { if ($product_available_date != '0000-00-00' and $current_date < $product_available_date) { ?> <div class="availability"> <?php echo vmText::_('COM_VIRTUEMART_PRODUCT_AVAILABLE_DATE') .': '. JHtml::_('date', $this->product->product_available_date, vmText::_('DATE_FORMAT_LC4')); ?> </div> <?php } else if ($stockhandle == 'risetime' and VmConfig::get('rised_availability') and empty($this->product->product_availability)) { ?> <div class="availability"> <?php echo (file_exists(JPATH_BASE . DS . VmConfig::get('assets_general_path') . 'images/availability/' . VmConfig::get('rised_availability'))) ? JHtml::image(JURI::root() . VmConfig::get('assets_general_path') . 'images/availability/' . VmConfig::get('rised_availability', '7d.gif'), VmConfig::get('rised_availability', '7d.gif'), array('class' => 'availability')) : vmText::_(VmConfig::get('rised_availability')); ?> </div> <?php } else if (!empty($this->product->product_availability)) { ?> <div class="availability"> <?php echo (file_exists(JPATH_BASE . DS . VmConfig::get('assets_general_path') . 'images/availability/' . $this->product->product_availability)) ? JHtml::image(JURI::root() . VmConfig::get('assets_general_path') . 'images/availability/' . $this->product->product_availability, $this->product->product_availability, array('class' => 'availability')) : vmText::_($this->product->product_availability); ?> </div> <?php } } else if ($product_available_date != '0000-00-00' and $current_date < $product_available_date) { ?> <div class="availability"> <?php echo vmText::_('COM_VIRTUEMART_PRODUCT_AVAILABLE_DATE') .': '. JHtml::_('date', $this->product->product_available_date, vmText::_('DATE_FORMAT_LC4')); ?> </div> <?php } ?> </div> </div> <div class="clear"></div> </div> <?php // event onContentBeforeDisplay echo $this->product->event->beforeDisplayContent; ?> <?php // Product Description if (!empty($this->product->product_desc)) { ?> <div class="product-description"> <?php /** @todo Test if content plugins modify the product description */ ?> <span class="title"><?php echo vmText::_('COM_VIRTUEMART_PRODUCT_DESC_TITLE') ?></span> <?php echo $this->product->product_desc; ?> </div> <?php } // Product Description END if (!empty($this->product->customfieldsSorted['normal'])) { $this->position = 'normal'; echo $this->loadTemplate('customfields'); } // Product custom_fields END // Product Packaging $product_packaging = ''; if ($this->product->product_box) { ?> <div class="product-box"> <?php echo vmText::_('COM_VIRTUEMART_PRODUCT_UNITS_IN_BOX') .$this->product->product_box; ?> </div> <?php } // Product Packaging END ?> <?php // Product Files // foreach ($this->product->images as $fkey => $file) { // Todo add downloadable files again // if( $file->filesize > 0.5) $filesize_display = ' ('. number_format($file->filesize, 2,',','.')." MB)"; // else $filesize_display = ' ('. number_format($file->filesize*1024, 2,',','.')." KB)"; /* Show pdf in a new Window, other file types will be offered as download */ // $target = stristr($file->file_mimetype, "pdf") ? "_blank" : "_self"; // $link = JRoute::_('index.php?view=productdetails&task=getfile&virtuemart_media_id='.$file->virtuemart_media_id.'&virtuemart_product_id='.$this->product->virtuemart_product_id); // echo JHTMl::_('link', $link, $file->file_title.$filesize_display, array('target' => $target)); // } echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'related_products','class'=> 'product-related-products','customTitle' => true )); echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'related_categories','class'=> 'product-related-categories')); // Show child categories if (VmConfig::get('showCategory', 1)) { echo $this->loadTemplate('showcategory'); } echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'onbot')); ?> <?php // onContentAfterDisplay event echo $this->product->event->afterDisplayContent; ?> <?php echo $this->loadTemplate('reviews'); ?> </div> <?php jimport('joomla.application.module.helper'); $modules = JModuleHelper::getModules("akcni-nabidka"); $document = JFactory::getDocument(); $renderer = $document->loadRenderer('module'); $attribs = array(); $attribs['style'] = 'xhtml'; foreach ($modules as $mod) { echo JModuleHelper::renderModule($mod, $attribs); }

Poradil by mi někdo zkušenější jak z toho ven?
Děkuji
17. říj 2016 20:36
Odpověď od Bong
Stačí vám jeden shop. Většina jich podporuje "multi vendor" (byť třeba s placeným rozšířením).
I tady na fóru už podobné dotazy proběhly. Podívejte se: www.joomlaportal.cz/forum/search?query=m...te=all&childforums=1
22. srp 2016 00:55
Odpověď od Cony
Když jsem podobné zadání zkoumal (nakonec ale nerealizoval), vycházel mi nejlépe Hikashop s rozšířením HikaMarket Multivendor. Je to už ale nějaký ten rok zpátky, nepamatuji si přesné důvody.
20. srp 2016 23:20
Odpověď od Janek
...Ještě mne napadl jeden.. Quick2Cart
Zobrazeno výsledků: 1 - 15 z 21.
Powered by Fórum