Prestashop 1.7 webService, extracción de Productos

Magento2 Woocommerce Python, Unix, NodeJS

Prestashop 1.7 webService, extracción de Productos

febrero 12, 2020 programador-freelance 0

El aprovechamiento del servicio WEBSERVICE que las tiendas Prestashop (y otros CMS de alto poder como Woocommerce y Magento) siempre han incluido en su programa (zona de Admin) la posibilidad del Consumo de éste servicio.

Prestashop 1.5. 1.6. y 1.7 no son la excepcion y su ACTIVACION es muy fácil y sencilla, basta con activarlo (boton de activacion) en la zona

Backadmin– Configuracion Avanzada — werbservice — Activar

y el siguiente paso es DECLARAR EL AGENTE REMOTO que podrá consumir dicho recurso.

Ahi en la misma zona de configuracion podemos declarar:

Consumo de webservice – Consulta para Prestashop 1.7 :

Nombre del agente a consumir: (eje): CATALOGO DE PRODUCTOS

dejamos las casillas en blanco y el mismo Prestashop nos sugiere las LLAVE DE SEGURIDAD que podremos aplicar ; posterior seleccionamos LOS RECURSOS que tendremos acceso con éste agente ( POR EJE. CATALOGO DE PRODUCTOS) y guardamos.

LISTO! Basados esta configuración ya podremos CONSULTAR los PRODUCTOS DE NUESTRO CATALOGO bajo recursos API-REST (XML) con toda seguridad.

Para ver un ejemplo del consumo que puedes crear con un PROGRAMA PHP EXTERNO (llamada de consulta) te anexo este ejemplo:

<?php /**** creado por SergioRomo.com.mx */

define(‘APIURL’, ‘https://prestashop.mojomexico.mx/psdemo17/’);

define(‘APIKEY’,’XOOGMJFHIHIOEFEF’); // esto es la LLAVE API generada en tu zona “webservice de Admin Prestashop”

………….

Una respuesta cuando todo funciona bien:

HTTP/1.1 200 OK
Date: Thu, 13 Feb 2020 04:49:54 GMT
Server: Apache
Access-Time: 1581569394
X-Powered-By: PrestaShop Webservice
PSWS-Version: 1.7.3.0
Execution-Time: 0.049
Content-Sha1: d875e6b64d0d663d376dcc15508917120fdd20af
Vary: Authorization,Accept-Encoding,User-Agent
Upgrade: h2
Connection: Upgrade
Transfer-Encoding: chunked
Content-Type: text/xml;charset=utf-8
RETURN HTTP BODY
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<products>
<product>
 <id><![CDATA[34]]></id>
 <id_manufacturer><![CDATA[0]]></id_manufacturer>
 <id_supplier><![CDATA[0]]></id_supplier>
 <id_category_default><![CDATA[0]]></id_category_default>
----
 location></location> <width><![CDATA[0.000000]]></width> <height><![CDATA[0.000000]]></height> <depth><![CDATA[0.000000]]></depth> <weight><![CDATA[0.000000]]></weight> <quantity_discount><![CDATA[0]]></quantity_discount> <ean13></ean13> <isbn></isbn> <upc></upc> <cache_is_pack><![CDATA[0]]></cache_is_pack> <cache_has_attachments><![CDATA[0]]></cache_has_attachments> <is_virtual><![CDATA[0]]></is_virtual> <state><![CDATA[1]]></state> <additional_delivery_times><![CDATA[1]]></additional_delivery_times> <delivery_in_stock><language id="1" xlink:href="https://prestashop-mx.com/psdemo17/api/languages/1"><![CDATA[]]></language><language id="2" xlink:href="https://prestashop-mx.com/psdemo17/api/languages/2"><![CDATA[]]></language><language id="3" xlink:href="https://prestashop-mx.com/psdemo17/api/languages/3"><![CDATA[]]></language></delivery_in_stock> <delivery_out_stock><language id="1" xlink:href="https://prestashop-mx.com/psdemo17/api/languages/1"><![CDATA[]]></language><language id="2" xlink:href="https://prestashop-mx.com/psdemo17/api/languages/2"><![CDATA[]]></language><language id="3" xlink:href="https://prestashop-mx.com/psdemo17/api/languages/3"><![CDATA[]]></language></delivery_out_stock> <on_sale><![CDATA[0]]></on_sale> <online_only><![CDATA[0]]></online_only> <ecotax><![CDATA[0.000000]]></ecotax> 
.....

Asi que ya comprobado que el funcionamiento de CONSULTA A CATALOGO (ALL PRODUCTS) funciona perfecto.

Puedes encontrar aqui el ejercicio real que tenemos para Magento2, Magento1 y Woocommerce; puedo desarrollarlo para tus necesidades de integración de tus productos a otros sistemas como : Marketplace, ERP, Amazon, Waltmart, Homedepot, Ebay, AWS, Anzure,etc.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This will close in 45 seconds

PROGRAMACION POR OBJETOS - TESTER NIVEL INTERMEDIO:

CONSUMO DE RECURSOS API DESDE UN ERP:

Instrucciones:

Revisa y corrige y completa del siguiente Objeto las lineas y sentencias con error para poder  consumir de forma correcta los recursos API del Proveedor X MAYORISTA en el cual nos proporciona como medio de acceso-peticion

LA URL-ERP asi:  "../API/CATALOGO/ID.."

En cada PETICION HTTP-POST deberás incluir en EL TOKEN-AUTORIZACION en formato JSON previamente EMPACADO con seguridad de 64bits, quedando tu funcion asi dentro de una CLASE (OBJETO) LLAMADO:

class APIMayoristaX {

return function _get_Token_API () {

(incluir function del alogirtmo Hass)($data_arreglo[

"user" => USERKEY,

"paswd" => PASSKEY

};

public function _get_API_Productos() {

$filto = [

"sku" => valor,

Nombre => valor,

Precio => valor

existencias => valor

];

$token = _get_Token_API ();

return $this->get_CatalogoAPI_Inventario($token, $filtro);

}

}

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER NIVEL FRAMEWORK:

CONSUMO DE RECURSOS EN CODEIGNITER:

Instrucciones:

1.- Asumimos que deseas APLICAR LOS REGURSOS (desdeController) en donde vas a consumir :

: LIBRERIAS (LIBRERY y UNA BASE DE DATOS (DATABASE) tanto de Config como de Model

HAZ AQUI UN OBJETO llamado CLASS PRODUCTOS para demostrar la llamada y uso de recursos.

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER NODEJS OOP:

Asumimos que cuentas con un JS TOKEN que va a hacer conexion con una BASE DE DATOS (MSSQL):

cómo agregarias un OBJETO-JS en forma de CLASE para llamar a la base de datos y que puedas declarar METODOS de : consulta, actualizacion , borrado en la BASE DE DATOS ?

te doy un TIP:

class Querysql {
constructor() {
.....
});
}
async get_USUARIOS (req, res) {
.....
} etc (sigiendo este ejemplo, completa para cerrar la CLASE y hacer agrega la linea de llamado a cada peticion.

 

This will close in 0 seconds

Instrucciones:
Suponemos que tienes un OBJETO CLASE "A", en el cual al ejecutarse en automático integra los valores INIT de su respectiva funcion asi:
class A (padre) {
private $this;
public function __construct() {
$this->init();
}public function init() {
$this->clave = json_decode($this->catalogo->sku["SKU-A", TRUE];
$this->nombre = json_decode($this->catalogo->nombre["NOMBRE", TRUE];
$this->precio = json_decode($this->catalogo->precio["PRECIO", TRUE];
$this->stock = json_decode($this->catalogo->stock["STOCK", TRUE];
}
} //end parent class AEn el espacio disponible, crea EL OBJETO HIJO (puede ser llamado CLASS B) del MISMO PADRE de tal forma que puedas LLAMAR Y REUTILIZAR los valores existentes y actuales en una FUTURA FUNCION llamala "Funcion verValores(variables)" o algo similar, de la base de datos que son:
SKU, NOMBRE, PRECIO Y STOCK

para Finalizar envia tu respuesta con el formulario aqui presente

Al enviar tu respuesta, evaluaremos y te daremos tu calificacion por tu mail.

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER MAGENTO2 Nivel Basico PLANTILLADOR:

Suponemos el siguiente escenario:

1.- Tienes un CUSTOM-MODULO (UN TEMA MAGENTO2) con el siguiente LAYOUT(view/frontend/layout/) y el siguiente XML

CMS_INDEX_INDEX.XML

Y el siguiente codigo en este layout:

<referenceContainer name="page.top">
<block class="Custom_ModuleBlockEfect" template="efect.phtml" />
</referenceContainer>

EXPLICA SOBRE LAS ACCIONES DE "EFECT.PHTML" : DONDE SERÁN MOSTRADAS (EVENTO-POSICION) , CADA CUANDO SE EJECUTARÁ Y DONDE PUEDES AGREGAR-MODIFICAR DICHO EFECTO ?

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER MAGENTO2 Nivel MEDIO PLANTILLADOR

haz clic en el liguiente LINK :  http://magento2.saetiendaweb.com/

1.- ahi podras notar varios EFECTOS CUSTOMIZADOS de LAYOUT(view/frontend/layout/) agregados de forma PLUGIN-CUSTOM-MODULO:

TODOS LOS EFECTOS SON ACCIONES INSERTADAS CON EFECTOS PROPIO COMO INDEX_XML, CATALOG_XML, CHECKOUT_XML

en t respuesta: qué CONFIG LAYOUT usarias en el archivo CATALOG_XML...  para crear los efectos de BOTON-PAGO en la zona CATALOGO de la tienda, seria algo asi:

<referenceContainer name="mmmmm">
<block class="Custom_ModuleBlock...." template="catalog.phtml" />
</referenceContainer>

describe cada accion por linea

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER PROGRAMADOR SHELL:

En una LINEA usando SED, debes aplicar las siguientes busquedas :

1.-  DETECTAR SOLO ARCHIVOS desde un punto (no necesario raiz)

2.- FILTRAR QUE SEAN SOLO DE UNA CATEGORIA (por eje. solo archivos xml)

3.- FILTRAR QUE el resultado CONTENGA dentro de cada archivo solo los de una  VERSION ESPECIAL : por eje: <xml VER:11.0.3>

4.- EL RESULTADO de los archivos que coindicen en el filtro GUARDAR como reporte  EN FORMATO "PIPE" o separaciones por "coma"

5.- ACTUALIZAR CADA ARCHIVO (COINCIDENCIA) cambiando DE "VER:11.0.3" A "VER:12.0.0" m todo en LA MISMA LINEA SHELL o en un proceso bucle.

 

This will close in 0 seconds

PROGRAMACION POR OBJETOS - TESTER PROGRAMADOR SHELL (avanzado)

En una LINEA usando SED+AWK, debes aplicar las siguientes acciones:

1.-  DETECTAR SOLO ARCHIVOS desde un punto (no necesario raiz)

2.- FILTRAR QUE SEAN SOLO DE UNA CATEGORIA (por eje. solo archivos CSV)

3.- FILTRAR que COINCIDA UNA MARCA AL INICIO DE CADA LINEA (por eje: CLASE N)

4.- EL RESULTADO vas a CREAR TANTOS ARCHIVOS como CLASES AGRUPADAS CONTENTA, EN FORMATO "PIPE" o separaciones por "coma"

5.- Agregar UN HEADER COMO "COMENARIO DE AUTOR..VERSION..ETC)" m todo en LA MISMA LINEA SHELL o en un proceso bucle.

 

This will close in 0 seconds

Chat aqui
Por aqui te respondemos