Jump to content

Es posible ingresar productos con id propio (sin autoincrement) mediante el webservices de prestashop?


Daniel Jaimes

Recommended Posts

Este es parte de mi código:

<?php

        require_once("vendor/autoload.php");
        require_once("validaCategorias.php");
        require_once("conectar.php");
    
        $url = 'XXXXXX';
        $key  = 'XXXXXX';
        $debug = true;

            $webService = new PrestaShopWebservice($url, $key, $debug);
            $xmlResponse = $webService->get(['url' => $url . '/api/products?schema=blank']);
            $productXML = $xmlResponse->product[0];

            // Aqui se le da valor a los campos
            $productXML->id = $clave->id_product;  // Aquí es el problema, no puedo darle un valor al id, sólo permite que sea autoincrement
            $productXML->name->language[0] = $clave->name;                              // Nombre
            $productXML->description->language[0] = $clave->description;                // Descripción
            $productXML->description_short->language[0] = $clave->description_short;    // Descripción
            $productXML->id_manufacturer = $id_manufacturer;                            // fabricante
            $productXML->id_supplier = $clave->id_supplier;                             // Proveedor
            $productXML->id_category_default = $clave->id_category_default;             // Categoría por Defecto
            $productXML->id_tax_rules_group = $clave->id_tax_rules_group;               // Impuesto 0 sin IVA, 1 con IVA
            $productXML->reference = $clave->reference;                                 // Referencia
            $productXML->price = $clave->price;                                         // Precio
            $productXML->active = $clave->active;                                       // Activo?
            $productXML->on_sale = $clave->on_sale;                                     // en venta?
            $productXML->minimal_quantity = 1;                                          // Cantidad mínima
            $productXML->available_for_order = 1;                                       // Disponible para ordenar
            $productXML->state = $clave->state;                                         // Estado
            //$productXML->stock_available = $clave->;                                          // Stock Disponible

            //Aquí realizamos las asignaciones de categorías
            $productXML->associations->categories->addChild('category')->addChild('id', $id_seccion);
            $productXML->associations->categories->addChild('category')->addChild('id', $id_marca);
            $productXML->associations->categories->addChild('category')->addChild('id', $id_familia);
            $productXML->associations->categories->addChild('category')->addChild('id', $id_subfamilia);

            // Faltan los atributos

            var_dump($productXML);

                try {
                $addedProductResponse = $webService->add([
                        'resource' => 'products',
                        'postXml' => $xmlResponse->asXML(),
                    ]);
                    $productXML = $addedProductResponse->product[0];
                    echo sprintf("Producto creado satisfactoriamente ID: %s", (string) $productXML->id);

                } catch (PrestaShopWebserviceException $e) {
                echo $e->getMessage();
                }

 

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...