1. Daniel Sabol
  2. Joomla! Modules
  3. Thursday, 17 September 2020
Dobrý deň,

používam ProductXport, potreboval by som odoslať parametre tovaru ako sú dĺžka, šírka, výška príp. hmotnosť.

Vedeli by ste mi prosím poradiť, ako tieto parametre nastavím v Nastavení polí ?

Dakujem a s pozdravom,
Daniel
Responses (11)
David Zirhut Accepted Answer Pending Moderation
Hmotnost je jednoduchá. V seznamu polí je možné ji do exportu přidat jako jakékoli jiné pole.
Administrace → Komponenty → productXport → Správa serverů → domena.com →
→ záložka "Nastavení polí" → Selectbox '-- vyberte pole --' → Hmotnost produktu → Přidat pole na konec

Pole přejmenujete a je hotovo.

S rozměry je možné pracovat také ale pouze v profi verzi.
Tyto hodnoty jsou dosupné v proměnných:
$product->product_weight
$product->product_length
$product->product_width
$product->product_height
ale lze je vložit jako podobně jako ve výše uvedeném příkladu jen s využitím "Uživatelsky definované pole X" (místo Hmotnost produktu)
  1. more than a month ago
  2. Joomla! Modules
  3. # 1
Daniel Sabol Accepted Answer Pending Moderation
Dobrý deň,

ďakujem za odpoveď. Používam verziu Profi.

Mám to nastavené pre dĺžku - viď príloha: Screenshot 2020-09-17 at 12.28.01.png

Je to takto v poriadku ?

Dakujem,
Daniel
Attachments (1)
  1. more than a month ago
  2. Joomla! Modules
  3. # 2
David Zirhut Accepted Answer Pending Moderation
Spíš to v pořádku není. V původním dotazu jste neuvedl v jaké podobě byste chtěl ty informace exportovat.
Toto nastavení bude exportovat délku v podobě:
<PARAM>123</PARAM>
... kde 123 je ta hodnota, což asi nechcete.
Dotaz jsem pochopil že potřebujete exportovat něco ve smyslu:
<DELKA>123</DELKA>
<SIRKA>123</SIRKA>
<HMOTNOST>123</HMOTNOST>

Pokud to potřebujete třeba jako
<PARAM>
<PARAM_NAME>DELKA</PARAM_NAME>
<VAL>123</VAL>
</PARAM>
(tedy zhruba dle specifikace heuréky) je na to třeba jít úplně jinak.
Návod připravím.

Ještě potřebuji vědět, jestli to chcete včetně jednotek nebo ne.
  1. more than a month ago
  2. Joomla! Modules
  3. # 3
Daniel Sabol Accepted Answer Pending Moderation
Dobrý deň,

potrebujem to podľa špecifikácie heureky, ideálne aj vrátanie jednotiek (cm), stým že údaje o rozmeroch budú zobrané z Virtuemartu z časti Rozmery a hmotnosť: Screenshot 2020-09-17 at 11.38.18.png

ďakujem za pomoc,
Daniel
Attachments (1)
  1. more than a month ago
  2. Joomla! Modules
  3. # 4
Daniel Sabol Accepted Answer Pending Moderation
Potreboval by som ešte exportovať aj užívateľské polia - Material a Farba
Screenshot 2020-09-18 at 11.40.21.png

Polia som nastavil takto, ale nefunguje to... Screenshot 2020-09-18 at 11.42.36.png
Attachments (2)
  1. more than a month ago
  2. Joomla! Modules
  3. # 5
David Zirhut Accepted Answer Pending Moderation
S hmotností a rozměry se dá pracovat skoro standardně. bohužel na práci s jednotkami komponenta úplně připravená není (doplním do další verze).
Takže na to musíme jít trochu malým hackem v administraci.

V nastavení komponenty productXport → nastavení obchodu → VirtueMart → záložka "Speciální možnosti" je pole:
PHP kód pro spuštění na začátku samého procesu exportu:
Zde je třeba vložit kód:


$db = JFactory::getDBO();
global $products_uom;
$db->setQuery("SELECT virtuemart_product_id,product_weight_uom,product_lwh_uom
FROM `#__virtuemart_products`");
$products_uom=$db->loadObjectList('virtuemart_product_id');

Ten zajistí načtení jednotek do paměti pro další použití.

Pak otevřeme nastavení konkrétního exportu - tedy třeba Heuréka.
Zde vložíme na záložce "Rozšířené nastavení" do pole
PHP kód - na konci zpracování výstupu produktu:
kód (ukázka je pro hmotnost a délku):


if ($product->product_weight>0) {
echo '<PARAM>';
echo '<PARAM_NAME>Hmotnost</PARAM_NAME>';
echo '<VAL>'.$product->product_weight.$products_uom[$product->id]->product_weight_uom.'</VAL>';
echo '</PARAM>';
}
if ($product->product_length>0) {
echo '<PARAM>';
echo '<PARAM_NAME>Délka</PARAM_NAME>';
echo '<VAL>'.$product->product_length.$products_uom[$product->id]->product_lwh_uom.'</VAL>';
echo '</PARAM>';
}

jednotka hmotnosti je aktuálně uložená v:
$products_uom[$product->id]->product_weight_uom
jednotka rozměru je v
$products_uom[$product->id]->product_lwh_uom

pro pořádek výše uvedený požadavek na barvu a materiál by měl fungovat automaticky pokud toto pole obsahuje kód (měl by být již při výchozí instalaci):

if (isset($component->custom_fields)) {
foreach ($component->custom_fields as $custom_id=>$custom) {
$custom_var = 'custom_field_'.$custom_id;
if ($product->$custom_var) {
list($value)=explode(chr(0),$product->$custom_var);
echo "<PARAM>\n";
echo "<PARAM_NAME>".$custom->custom_title."</PARAM_NAME>\n";
echo "<VAL>".$value."</VAL>\n";
echo "</PARAM>\n";
}
}
}
Daniel Sabol Accepted Answer Pending Moderation
Dobrý deň,

Ďakujem veľmi pekne.

Kódy som vložil, podarilo sa mi vygenerovať parametre hmotnosť, dĺžka, šírka, výška:
Screenshot 2020-10-05 at 09.37.12.png

Jednotky sa však nezobrazujú ...

if ($product->product_weight>0) {
echo '<PARAM>';
echo '<PARAM_NAME>Hmotnosť</PARAM_NAME>';
echo '<VAL>'.$product->product_weight.$products_uom[$product->id]->product_weight_uom.'</VAL>';
echo '</PARAM>';
}
if ($product->product_length>0) {
echo '<PARAM>';
echo '<PARAM_NAME>Dĺžka</PARAM_NAME>';
echo '<VAL>'.$product->product_length.$products_uom[$product->id]->product_lwh_uom.'</VAL>';
echo '</PARAM>';
}
if ($product->product_width>0) {
echo '<PARAM>';
echo '<PARAM_NAME>Šírka</PARAM_NAME>';
echo '<VAL>'.$product->product_width.$products_uom[$product->id]->product_wwh_uom.'</VAL>';
echo '</PARAM>';
}
if ($product->product_height>0) {
echo '<PARAM>';
echo '<PARAM_NAME>Výška</PARAM_NAME>';
echo '<VAL>'.$product->product_height.$products_uom[$product->id]->product_hwh_uom.'</VAL>';
echo '</PARAM>';
}

Čo sa týka custom fields, tie sa stále negenerujú, používam komponent Customfieldsforall, je potrebné niečo nahradiť v tomto kóde?

if (isset($component->custom_fields)) {
foreach ($component->custom_fields as $custom_id=>$custom) {
$custom_var = 'custom_field_'.$custom_id;
if ($product->$custom_var) {
list($value)=explode(chr(0),$product->$custom_var);
echo "<PARAM>\n";
echo "<PARAM_NAME>".$custom->custom_title."</PARAM_NAME>\n";
echo "<VAL>".$value."</VAL>\n";
echo "</PARAM>\n";
}
}
}



S pozdravom,

Daniel
Attachments (1)
David Zirhut Accepted Answer Pending Moderation
Aha, omlouvám se, doplňuji.
Před řádku:

if ($product->product_weight>0) {

je třeba vložit ještě:

global $products_uom;
Daniel Sabol Accepted Answer Pending Moderation
Dobrý deň,

ďakujem, jednotky sa už zobrazujú správne :-) akurát za číslom sa zobrazujú 4 nuly napr. dĺžka 40.0000CM
Je možné odstrániť tie 0000 ?
Screenshot 2020-10-06 at 11.18.48.png

Custom Fields sa však stále nenačítavajú, mám vložený tento kód:

if (isset($component->custom_fields)) {
foreach ($component->custom_fields as $custom_id=>$custom) {
$custom_var = 'custom_field_'.$custom_id;
if ($product->$custom_var) {
list($value)=explode(chr(0),$product->$custom_var);
echo "<PARAM>\n";
echo "<PARAM_NAME>".$custom->custom_title."</PARAM_NAME>\n";
echo "<VAL>".$value."</VAL>\n";
echo "</PARAM>\n";
}
}
}

V čom môže byť problém ?
Attachments (1)
David Zirhut Accepted Answer Pending Moderation
Výstupní položku lze zaokrouhlit na celá čísla:

echo '<VAL>'.round($product->product_height).$products_uom[$product->id]->product_hwh_uom.'</VAL>';

nebo na určitý počet desetinných míst (v příkladu 2):

echo '<VAL>'.round($product->product_height, 2).$products_uom[$product->id]->product_hwh_uom.'</VAL>';

Dle mého by ale nemělo po technické stránce pro zpracování souboru vadit, pokud je tam desetinných míst víc.

Co se týče toho, že se neexportují ty ostatní pole. Mohu doporučit buď čistou instalaci (a následné povolení potřebných polí), kde by to mělo fungovat správně.
Nebo s potřebnými přístupy do administrace, bych se na to mohl podívat osobně. (Můžeme v takovém případě komunikovat po emailu).
Daniel Sabol Accepted Answer Pending Moderation
dakujem, zaokruhlenie uz funguje perfektne.

Poslal som vam email s prihlasovacimi udajmi do administracie ohladom cutom fields..
  • Page :
  • 1


There are no replies made for this post yet.
However, you are not allowed to reply to this post.