GeoPixel Posted September 13, 2019 Share Posted September 13, 2019 Buenos días, Estoy trabajando con las diferentes maneras que hay de cargar productos en PrestaShop. Estoy viendo que es posible añadir productos mediante WebService. Actualmente tengo un archivo .xml con los productos a añadir, pero no se como hacer para cargarlos a la WebService y que se usen. He encontrado este ejemplo para añadir un solo producto, pero en mi caso quiero añadir un listado que se encuentra en un xml. ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(-1); define('PS_SHOP_PATH', 'http://prestashop.devel/'); define('PS_WS_AUTH_KEY', 'UUFZZXMRDWMALYJ4JIGL34M8IA7BB4I9'); require_once('PSWebServiceLibrary.php'); try { $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); $opt = array('resource' => 'products'); $xml = $webService->get(array('url' => PS_SHOP_PATH . '/api/products?schema=synopsis')); $resources = $xml->children()->children(); unset($resources->position_in_category); unset($resources->manufacturer_name); $resources->price = '1000'; $resources->active = '1'; $resources->quantity = '50'; $resources->link_rewrite = 'blabla'; $resources->name->language[0][0] = 'blabla'; $resources->description->language[0][0] = '<p>blabla</p>'; $resources->description_short->language[0][0] = 'blabla'; $resources->associations = ''; $opt = array('resource' => 'products'); $opt['postXml'] = $xml->asXML(); $xml = $webService->add($opt); } catch (PrestaShopWebserviceException $ex) { echo 'Other error: <br/>' . $ex->getMessage(); } Que debería hacer para poder cargar el archivo? Link to comment Share on other sites More sharing options...
Prestafan33 Posted September 14, 2019 Share Posted September 14, 2019 (edited) Hola, Geopixel. Lo que quieres hacer requiere conocimientos de programación. Se puede hacer de varias formas, bien en el propio Prestashop, creando un módulo, o bien de forma externa, como en el ejemplo que planteas. Básicamente lo que tienes que hacer, en cualquiera de los dos casos, es "recibir" el archivo XML (si lo envías desde otro sitio podrías usar una petición POST para enviarlo), luego abrirlo, cargar los productos, procesarlos y usar un código parecido al que tienes para irlos cargando uno a uno mediante el webservice u otro método. Como digo, esto se puede hacer a partir de un script PHP que tú crees y subas a tu servidor, o bien creando un módulo para Prestashop, con un controlador para recibir los envíos de archivos y luego unas clases para procesarlos e importarlos en la tienda. Ten en cuenta que el código que pones de ejemplo es eso, un ejemplo esquemático. Luego te encuentras con bastante más cuestiones con las que tienes que lidiar, como el gestionar las imágenes para los productos (¿cómo las envías? ¿dónde están alojadas? ¿se puede acceder a ellas desde el servidor?), o categorías, marcas o proveedores que no existen y hay que crear "sobre la marcha". Yo te recomendaría que echases un vistazo al código que utiliza el importador de Prestashop. Está en /controllers/admin/AdminImportController.php Edited September 14, 2019 by Prestafan33 (see edit history) 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