Problema implementare api emag


#1

Salutare,
am si eu o problema cu api-ul de la emag, se pare ca mai nou ei intorc un singur mesaj de eroare :))
mai exact acesta:

stdClass Object
(
    [isError] => 1
    [messages] => Array
        (
            [0] => Product save request is incorrectly formatted.
        )

    [results] => Array
        (
        )

)

a implementat cineva recent api-ul de la ei, si s-a mai confruntat cu aceeasi problema?
daca da, ati rezolvat in vreun fel anume?
raspunsul celor de la emag este: mai patim si noi cu csv-ul, incercati mai tarziu :))…

multumesc
Andrei


(Ionuț Staicu) #2

Pune și tu aici un exemplu cu formatul cerut (i.e. care merge) și un exemplu din CSV-ul tău.

PS: data viitoare acordă 10 secunde formatării și plasării într-o categorie potrivită.


#3

Salut,
scuze, m-am grabit si n-am dat atentie formatarii. voi fi mai atent pe viitor.
pai n-am un cod care merge, daca ar merge totul ar fi bine. pot sa pun codul pe care il am eu, si pentru care primesc eroare.

nu este csv, este in json, generat cu php.

Array
(
    [0] => Array
        (
            [id] => 1
            [category_id] => 3131
            [part_number] => lr1
            [name] => Produs test
            [description] => descriere
            [brand] => andrei
            [images] => 
            [url] => 
            [status] => 0
            [ean] => 
            [warranty] => 1
            [sale_prsice] => 100
            [min_sale_price] => 80
            [max_sale_price] => 120
            [availability] => Array
                (
                    [0] => Array
                        (
                            [warehouse_id] => 1
                            [id] => 1
                        )

                )

            [stock] => Array
                (
                    [0] => Array
                        (
                            [warehouse_id] => 1
                            [value] => 1
                        )

                )

            [characteristics] => Array
                (
                )

            [vat_id] => 0
        )

)

#4

am reusit sa rezolv.
am rescris codul de la 0 si acum functioneaza :).
multumesc.


(Andrei F.) #5

ce ai modificat la el? poti pune codul functional? Ma gandesc ca poate ajuta si pe altii.


(Ionuț Staicu) #6

Related.


#7

sigur :slight_smile:
nu stiu inca ce e gresit in versiunea de mai sus, ca n-am mai stat sa-l analizez, dar voi verifica :).

Array
(
    [0] => Array
        (
            [id] => 1
            [category_id] => 1111
            [part_number] => test1
            [name] => Test name
            [description] => Test description
            [brand] => Test brand name
            [images] => Array
                (
                    [0] => Array
                        (
                            [display_type] => 1
                            [url] => http://www.image-url.test
                        )

                )

            [url] => http://www.product-url.test
            [status] => 1
            [sale_price] => 300.00
            [recommended_price] => 506.4515
            [min_sale_price] => 200.0000
            [max_sale_price] => 700.0000
            [availability] => Array
                (
                    [0] => Array
                        (
                            [warehouse_id] => 1
                            [id] => 3
                        )

                )

            [handling_time] => Array
                (
                    [0] => Array
                        (
                            [warehouse_id] => 1
                            [value] => 0
                        )

                )

            [stock] => Array
                (
                    [0] => Array
                        (
                            [warehouse_id] => 1
                            [value] => 2
                        )

                )

            [commission] => Array
                (
                    [type] => percentage
                    [value] => 8
                )

            [vat_id] => 5
            [characteristics] => Array
                (
                    [0] => Array
                        (
                            [id] => 5258
                            [value] => string
                        )

                    [1] => Array
                        (
                            [id] => 5401
                            [value] => string
                        )

                    [2] => Array
                        (
                            [id] => 6140
                            [value] => string
                        )

                    [3] => Array
                        (
                            [id] => 4478
                            [value] => string
                        )

                    [4] => Array
                        (
                            [id] => 6506
                            [value] => string
                        )

                )

        )

)

#8

Eroarea “Product save request is incorrectly formatted.” ai primit-o pentru că … într-adevăr, array-ul pe care l-ai trimis a fost incorect formatat. Trebuie să trimiți un array cu o singură cheie (“data”) și valoarea ei trebuie să fie un array de produse.

Structura array-ului ar trebui să fie cam așa:

$data = [
	'data' => [
		[
			'id'			=> 123,
			'category_id'	=> 456,
			// etc
		],
		[
			'id'			=> 678,
			'category_id'	=> 901,
			// etc
		],
	]
];

curl_setopt($this->curl, CURLOPT_POSTFIELDS, http_build_query($data));