Creación masiva de colecciones - Shopify API & PHP

Comenzaré con explicar brevemente que son las colecciones automatizadas.Son colecciones que agregan los productos dentro de ellas en base a reglas, por ejemplo, puedes crear colecciones para todos los productos que estén en oferta, los que sean de un vendedor en especifico, que contengan una o varias TAGS, por el tipo de producto, información en el nombre, y varias opciones más, además de permitir la utilización de varias reglas, por ejemplo, puedes crear una colección para todos los zapatos de hombre que sean de la marca Adidas, esto lo podrías hacer agregando las siguientes reglas:- Todos los productos que su tipo sea ZAPATO- Todos los productos que tengan el TAG Hombre- Todos los productos que tengan como vendedor/vendor/marca AdidasEsto hará que cualquier producto que cumpla esas reglas se agregue automáticamente a dicha colección.Cuando el paso es crear unas cuantas colecciones el proceso puede hacerse sin problemas desde el dashboard de Shopify, el problema surge cuando se deben crear muchas colecciones, esto se vuelve un tanto engorroso hacerlo uno por uno, pero para eso podemos utilizar la API de Shopify, a continuación te muestro lo fácil que es hacerlo de esa manera.{loadmoduleid 114}

// Claves y datos de la tienda $user = "0a17323c6cd17f1cba392a0000000000"; $pass = "a3b3577653678cd144919d0000000000"; $store = "LATIENDA.myshopify.com";

$apiDest = "/admin/api/2019-10/smart_collections.json";

/**

  • Creamos la URL de conexión */ $url = "https://$user:$pass@$store$apiDest"; $file = "colecciones.json";

/**

  • Indica si se conecta o no a la API
  • @number 1|0 1 Se conecta, 0 No */ $use = 1;

/**

  • Obtiene el archivo json con las colecciones */ $datos = json_decode(file_get_contents($file));

/**

  • Recorre el archivo JSON con los valores de cada colección */ foreach ($datos as $key => $valor) {

    /**

    • Crea el array $data para el almacenado de información de la colección actual
    • @string title - Nombre de la colección
    • @array rules - Reglas de la smart collection */ $data = []; $data["smart_collection"]["title"] = $key; $data["smart_collection"]["rules"] = [];

    /**

    • Crea el ciclo de la creación de cada regla para cada colección */ $reglas = $valor->rules; foreach ($reglas as $keyr => $regla) { $data["smart_collection"]["rules"][$keyr]["column"] = $regla->column; $data["smart_collection"]["rules"][$keyr]["relation"] = $regla->relation; $data["smart_collection"]["rules"][$keyr]["condition"] = $regla->condition; }

    /**

    • Si se asigna el valor 1 a $use se conecta con la API de shopify para crear cada colección

    • @int $use */ if ( $use == 1 ) {

      $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, 0); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($data));

      $response = curl_exec($ch);

      if (!$response) { return false; }
      } }

/**

  • Imprime los resultados con depurador de respuesta */ echo "<br>Result: $apiDest";​ Donde tenemos 3 valores que debemos modificar y son las primeras 3 variables en el código php:$user es el valor dentro de la app de Shopify indicada como Clave API$pass es la clave de la app$store es la url de la tiendaAhora creamos el archivo json con la información de las colecciones automáticas a agregar y lo ponemos en la misma carpeta del archivo php.Archivo colecciones.json

En este ejemplo simple estamos creando 2 colecciones automatizadas que en base a las tags de los productos los agrega de manera automática, por ejemplo, en la colección Zapatos de caballero agregará todos los productos que tengan dentro de sus tags la de ZAPATOS y la de CABALLERO y en la colección de Zapatos de dama agregará todos los productos con la tag ZAPATOS y DAMA.Se pueden crear colecciones con las reglas necesarias, para más información sobre esta API y las colecciones automatizadas (smart collections) visita: https://help.shopify.com/en/api/reference/products/smartcollectionEsto es como crear una colección automatizada dentro del dashboard de Shopify pero pudiendo hacerlo de manera masiva.

Si este artículo te pareció interesante te invito a seguirme o compartir mi contenido