pppplus Posted January 11, 2016 Share Posted January 11, 2016 Bonjour à tous J'ai programmé l'ajout de commande sur prestashop, pour des commandes externes d'une marketplace. Problème, je n'arrive pas à mettre les prix que je veux, les prix de ma boutique prestashop se mettent à la place (alors que je veux mettre les prix pratiqués sur cette marketplace) Mon xml : <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <order> <id></id> <id_address_delivery>5097</id_address_delivery> <id_address_invoice>5097</id_address_invoice> <id_cart>13627</id_cart> <id_currency>1</id_currency> <id_lang>1</id_lang> <id_customer>4929</id_customer> <id_carrier>74</id_carrier> <current_state>10</current_state> <module>bankwire</module> <invoice_number></invoice_number> <invoice_date></invoice_date> <delivery_number></delivery_number> <delivery_date></delivery_date> <valid></valid> <date_add></date_add> <date_upd></date_upd> <shipping_number></shipping_number> <id_shop_group>1</id_shop_group> <id_shop>1</id_shop> <secure_key></secure_key> <payment>paiement idPaiementxyz</payment> <recyclable></recyclable> <gift></gift> <gift_message></gift_message> <mobile_theme></mobile_theme> <total_discounts></total_discounts> <total_discounts_tax_incl></total_discounts_tax_incl> <total_discounts_tax_excl></total_discounts_tax_excl> <total_paid>15.89</total_paid> <total_paid_tax_incl>15.89</total_paid_tax_incl> <total_paid_tax_excl>15.89</total_paid_tax_excl> <total_paid_real>15.89</total_paid_real> <total_products>12.9</total_products> <total_products_wt>12.9</total_products_wt> <total_shipping>2.99</total_shipping> <total_shipping_tax_incl>2.99</total_shipping_tax_incl> <total_shipping_tax_excl>2.99</total_shipping_tax_excl> <carrier_tax_rate>0</carrier_tax_rate> <total_wrapping>0</total_wrapping> <total_wrapping_tax_incl>0</total_wrapping_tax_incl> <total_wrapping_tax_excl>0</total_wrapping_tax_excl> <round_mode></round_mode> <round_type></round_type> <conversion_rate>1</conversion_rate> <reference></reference> <associations> <order_rows> <order_row> <id_product>1000</id_product> <product_attribute_id>0</product_attribute_id> <quantity>1</quantity> <product_name>nom du produit</product_name> <product_reference>maref5</product_reference> <product_ean13>11111192368</product_ean13> <product_upc></product_upc> <product_price>12.9</product_price> <unit_price_tax_incl>12.9</unit_price_tax_incl> <unit_price_tax_excl>12.9</unit_price_tax_excl> </order_row> </order_rows> </associations> </order> </prestashop> $opt = array( 'resource' => 'orders' ); $opt['postXml'] = $xml->asXML(); $xml = $webService->add( $opt ); Donc en gros, prix de mon produit 12.90€, frais de port 2.99€, pour un total de 15.89€ Tout me semble bien paramétré. Sauf que la commande est créée avec les prix configuré dans la boutique. Dans la bdd, le champ total_paid_real est bon à 15.89 Mais les autres champs de prix, n'ont pas tenu compte des prix que j'ai mis. Et donc erreur de paiement à la fin puisque le prix payé est différent du prix total. Une idée ? Merci d'avance. Link to comment Share on other sites More sharing options...
pppplus Posted April 19, 2016 Author Share Posted April 19, 2016 Petit up, si quelqu'un a une idée. Merci Link to comment Share on other sites More sharing options...
NicolasV Posted August 3, 2016 Share Posted August 3, 2016 Bonjour, Avez vous réussi depuis ? Je travail sur un projet similaire. Merci 1 Link to comment Share on other sites More sharing options...
pppplus Posted August 3, 2016 Author Share Posted August 3, 2016 Salut En soi, non, je n'ai pas réussi. Par contre, j'ai rajouté une ligne de code, pour valider les commandes. Le prix est toujours mauvais sur la fiche commande .... mais c'est pour moi, donc je fais avec. Si tu trouves une solution, ou si tu as besoin d'un bout de code (extraction des commandes Amazon et CDiscount), dis-moi. Link to comment Share on other sites More sharing options...
NicolasV Posted August 4, 2016 Share Posted August 4, 2016 Salut, Merci pour ta réponse Après plusieurs tests, il s'avère que l'API de Prestashop n'accepte pas un prix différent que celui du catalogue ... Du coup, j'ai une "solution" mais c'est plus du maquillage qu'autre chose. Le problème de cette solution, c'est le nombre d'appels au Webservice. Sans parler du fait que c'est vraiment de la bricole. /** * RECHERCHE DE LA REFERENCE COMMANDE * Grace à l'ID de la commande fraichement crée */ $opt['resource'] = 'orders'; $opt['id'] = $id['order']; $xml = $webService->get($opt); $id['reference'] = $xml->order->reference; /** * RECHERCHE ID DU PAYMENT * A Partir de la référence de la commande que je viens de trouver */ $opt = array('resource' => 'order_payments', 'filter[order_reference]' => '['.$id['reference'].']',); $xml = $webService->get($opt); // J'obtient l'ID du Payment que je vais utiliser juste après $a = $xml->order_payments->order_payment[0]['id']; /** * RECHERCHE DU PAYMENT * Pour pouvoir le modifier par la suite */ $opt['resource'] = 'order_payments'; $opt['id'] = $a; $xml = $webService->get($opt); /** * MODIFICATION DU PAYMENT * Par le montant désiré */ $xml->order_payment->transaction_id = $id_transaction; $xml->order_payment->amount = $total_products+$transport-$total_discount; $opt = array('resource' => 'order_payments'); $opt['putXml'] = $xml->asXML(); $opt['id'] = $a; $xml = $webService->edit($opt); Une fois que tu as fait ça, tu peux faire la même chose pour ta facture bien sur. Après, une piste que à creuser, c'est la gestion des prix par bon de réduction, mais c'est une autre histoire. Au plaisir d'échanger sur le sujet, Bonne journée! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now