Jump to content
Sign in to follow this  
PawelPrestashop

[SOLVED] Dostosowanie w zamówieniu API

Recommended Posts

Cześć, 

Mam problem od dłuższego czasu z którym nie mogę sobie poradzić. Chodzi o dostosowanie produktu a widoczność na zamówieniu. Zajmuje się integracją pomiędzy prestą a innym systemem i potrzebuje pobierać zamowienia ze sklepu i przesyłać je do innego systemu. Wykorzysuje do tego wbudowane API prety.

Zamowienia pobieram z api/orders, mam tam informacje o produktach na zamówieniu ALE jeżeli produkt ma możliwość wpisania dostosowania to w tym miejscu go nie ma.

Przykład karta z możliwością wpisania tytułu. Na karcie produktu wchodze w zakładkę Dostosowanie i tam dodaje pole testowe "wpisz tytuł".

Dostosowania produktow znalazłem w api/customizations. Tam mam id_cart oraz id_product i na tej podstawie teoretycznie możnaby połączyć te dane, w wyniku czego powinienem dostać informację jakie dostosowanie zostało wpisane przy zakupie produktu. Niestety po dokonaniu zakupu w api/customizations dodaje się nowy wpis ktory zawiera 

Id_cart

Id_product

I wszystkie dotychczas utworzone dostosowania, co jest bez sensu, bo ma przykładzie powyższej karty mam tam wpisane tytuły ze wszystkich złożonych jak i niezłożonych zamówień. Nie wiem w jaki sposób połączyć konkretne zamówienie z konkretnym dostosowaniem. Znacie na to jakiś sposób? 

Prestashop 1.6.1.17

 

EDIT:
Dla kogoś, kto może kiedyś byłby tym zainteresowany wrzucam rozwiazanie mojego problemu.
Przeszukałem dość sporo informacji w internecie i bardzo mało ich znalazłem, okazało się, że w Preście jest błąd i to odkryty dość dawno, ale nikt go nie naprawił do tej pory. W klasie class/Customizations.php jest błąd pobierania informacji do API:

Żeby go naprawić należy popawić ostatnią  linijkę funkcji dodająć:
AND id_customization = '.$this->id.'

Teraz API wyświetla się poprawnie.

public function getWsCustomizedDataTextFields()
{
if (!$results = Db::getInstance()->executeS('
SELECT id_customization_field, value
FROM `'.DB_PREFIX.'customization_field` cf
LEFT JOIN `'.DB_PREFIX.'customized_data` cd ON (cf.id_customization_field = cd.index)
WHERE `id_product` = '.(int)$this->id_product.'
AND id_customization = '.$this->id.' AND cf.type = 1'))

{ return array(); }

return $results;
}

Edited by PawelPrestashop (see edit history)
  • Thanks 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More