2015-09-01 19 views
7

Mam stronę, na której użytkownicy mogą dodawać produkty z witryn stron trzecich (amazon, shopify, magento itp.) Z mojej strony. użytkownicy wybierają wiele produktów, a następnie kasa, a następnie przekierowują stronę na stronę kasy w witrynie handlu zagranicznego.Programowe dodawanie produktów do zdalnego koszyka użytkownika magento

działa to dobrze z Amazon, ponieważ mają one serwer API po stronie serwera proxy. Dane wejściowe: grupa produktów, dane wyjściowe: adres URL zamówienia. całkiem proste i działa całkiem nieźle.

utknęliśmy jednak z magento.

  • Nie ma API publicznych przy dodawaniu produktu do zdalnego koszyk użytkownika
  • nieudokumentowane API obsługuje tylko dodać jeden produkt na raz, więc wspieranie wielu produktów wymaga wielu wywołań API (który jest wolny)
  • Większość witryn magento nie obsługuje HTTPS i/lub przekierowania do HTTP przez cały czas, a nasza witryna korzysta z HTTPS. Tak więc to tak naprawdę nie działa.
  • Występują problemy z CORS, gdy próbujemy żądań AJAX - obecnie hakujemy je w ramkach iframe.
  • Pierwsza prośba podaje nam stronę błędu "bez plików cookie", zamiast dodawać ją do koszyka.

Czy istnieje sposób rozwiązania tego problemu? Czy Magento obsługuje żądania CORS? Czym jest wsparcie Magento dzięki HTTPS?

widzę http://community.magento.com/t5/Programming-Questions/API-Redirecting-user-to-magento-instance-to-view-their-cart/m-p/9113#M2029 który wymaga naszego klienta, aby zainstalować rozszerzenie, ale to nie może być akceptowalne

dzięki

Odpowiedz

1

Choć nie ma funkcji API w Magento wspiera to po wyjęciu z pudełka, możliwe jest rozszerzenie Magento wesprze to, pisząc mały moduł API, który zostanie zainstalowany w Magento, aby to działało. Tworząc rozszerzenie API, możesz tworzyć reguły, akceptując - na przykład - dodanie do koszyka wielu produktów.

Dokumentacja Magento zawsze była dość uboga i zwykle programiści tacy jak ja muszą debugować i przechodzić kod, aby zrozumieć, jak działa konkretna funkcja. Gdy zdobędziesz wystarczającą umiejętność, zaczniesz widzieć "większy obraz", który pozwala ci "przewidywać" zachowanie Magento i często pozwala pominąć szczegółowe badanie debugowania.

Sugeruję, aby uzyskać pomoc od profesjonalnego programisty, aby to zbudować (powiedziałbym, co najmniej 2-3 lata doświadczenia w projektowaniu zaplecza) i uzyskać certyfikowanego programistę Magento, który pomoże: amatorzy prawdopodobnie Zrobić działające rozwiązanie za mniej, ale będziesz musiał zapłacić konsekwencje w dłuższej perspektywie, nie wspominając o możliwości przenoszenia modułu w wersjach i wersjach Magento oraz kwestiach związanych z bezpieczeństwem (XSS, SQL injection itp.).

Magento obsługuje HTTPS (naprawdę, to zależy od administratora witryny, aby poprawnie skonfigurować serwer WWW) i ma trochę wsparcia CORS (domyślnie wdrażana jest zasada "tego samego pochodzenia"). Zmiana CORS również byłaby zadaniem rozwojowym, nawet jeśli tak naprawdę nie widzę, w jaki sposób byłby on powiązany z API REST lub SOAP.

Należy również pamiętać, że Magento intensywnie wykorzystuje ciasteczka do obsługi sesji (a koszyk jest przechowywany w bazie danych przed sesją klienta).

To wszystko, co mogę naprawdę powiedzieć, to niewiele informacji o twoim rzeczywistym problemie.

Jeśli potrzebujesz więcej informacji, chętnie pomogę, ale potrzebuję więcej szczegółów, aby znaleźć najlepsze rozwiązanie.

1

Może możesz wypróbować taki ciąg zapytania jak ten?

<?php 

$formKey = Mage::getSingleton('core/session')->getFormKey();?> 

<form action="/checkout/cart/add/product/<?php echo $productid; ?>" method="post"> 
    <input type="hidden" name="form_key" value="<?php echo $formKey; ?>" /> 

    <input type="text" name="qty"> QTY 

    <input type="submit" value="Add to basket" /> 
</form> 
Powiązane problemy