Urano Dev

Desarrollo software para ecommerce

PHP Developer

 

PHP Developer Profile – Advanced BlackBullMarkets

Below is the list of skills that we need to kick off the project for BlackBull Markets client portal.

Mid – Senior Level Web Application Engineer x 2:

BlackBullMarkets is looking for a passionate engineer with 3+ year experience building customer-facing web applications in the cloud.

What you would be working on:

PHP 8 powered cloud-native web applications integrating with various third party integrators hosted on AWS platform. There will be a number of micr
oservices built and consumed by other applications within the Blackbull markets.

Should have:

  1. 5+ years advanced PHP 7 experience building web applications. 3+ year experience building RESTful APIs and good authority in understanding CORS
  2. Laravel experience / Symfony experience building rich web applications and API
  3. Expert-level knowledge of OOPS, Dependency injection and major design patterns and using/configuring modules via composer
  4. Experience working with TDD – Experience with codeception for acceptance testing
  5. PHP Templating experience having worked with Blade and Twig
  6. Experience with Doctrine / Eloquent ORM + MonoLog
  7. PHPUnit Library experience
  8. Solid understanding of Javascript (Classess / functions / DOM interactions) and experience in Typescript – Experience with ReactJS 16 or VueJS along with npm and webpack
  9. HTML5 experience and good command on using web rich components and DOM experience – CSS experience with SASS / LESS engine
  10. Good knowledge of SOLID principles.
  11. Knowledge of AWS cloud of following:
    1. ECS
    2. ElasticCache (Redis)
    3. EC2
    4. SQS/SNS
    5. Cloudformation / CDK
    6. Aurora MySQL / Aurora Postgres
    7. CloudWatch
    8. Amplify
  12. Using and making decisions via Application Performance monitoring frameworks such as NewRelic
  13. Using encryption to store and consuming sensitive information using Libsodium
  14. Experience with Apache + apache modules / Nginx
  15. Experience with both NoSQL Database – MongoDB and RDB: MySQL / Postgres (SQL, Query analysis, database designs and basic ETL for migration from NoSQL to Relation Database skills as well as triggers, stored procs and bin-log replication)

Preferred Skills:

  1. A talent for communicating ideas, issues and solutions in a team environment
  2. Github profile with active contribution
  3. Good experience with installing, configuring PHP extensions and Protocol Buffers
  4. Experience with Docker and Bash scripting on Linux platform
  5. Linux Bash / Shell scripting knowledge and familiarity with Linux environment
  6. Basic python skills for data manipulation
  7. Should be able to use git (version control system)
  8. Knowledge of DevOps / CICD pipelines
  9. Follow infosec skills such as OSWAP security standards in their routine development work
  10. Salesforce integrations and development experience
  11. Integration with different payment gateways
  12. WordPress skills

Perks:

  1. AWS training and mentorship to get AWS certified in the desired choice of your career goals (such as DevOps , developer or solution architect)
  2. Forex training if interested to know more about the business

About BlackBull Markets

BlackBull Markets was founded with the vision of becoming the world’s leading financial technology and foreign exchange broker. The co
mpany is considered the first true ECN, no dealing desk brokerage. It specialises in forex, fintech solutions, commodities, CFDs and fibre optic communications, serving a range of clients all over the world.

The company was initially founded in Auckland, New Zealand in 2014 after its management team decided to get involved in the foreign exchange retail sector. Prior to this, the company had a background in institutional forex trading and boasted over 10 years of experience in the field.

Its vision was to provide support for retail clients who needed more in the way of institutional-level resources. To achieve this, the team developed multiple fintech solutions, which it would go on to include in BlackBull Markets’ patented proprietary in-house, trade-order aggregation software.

After establishing its advanced technological and pricing offers, the company focused on providing a professional service to its clients, such as personal account management, daily market condition updates and specialised analysis tailored to its clients’ needs.

This is what has allowed BlackBull Markets to provide an overall superior product when compared to its competitors, which by itself is no mean feat. Since its inception, the company’s popularity has skyrocketed worldwide, allowing it to pursue rapid growth in a relatively short space of time.

 

Seguir leyendo

Programando con Github Copilot y PHP

Les comparto mi experiencia con github Copilot. Hace tiempo tuve la idea de tener en el explorador (actualmente uso Edge), cuando abre una nueva pestaña, una imagen y una cita o quote, seleccionadas o curadas previamente por mí.

En twitter sigo a @naval, y varias de sus frase, me parece muy lógicas, aunque poco comunes.

Por otro lado, tengo varios proyectos actualmente, y estoy por iniciar otro muy demandante la siguiente semana. Y necesitaba hacer algo pequeño, que me diera esa sensación de logro, de terminar algo.

Y finalmente, dando una vuelta por mis repositorios de github (privados todos hasta hoy) vi una invitación a usar Copilot.

Entonces decidí probar Copilot para este pequeño proyecto.

Seguir leyendo

Debug con Woocommerce

Como desarrolladores a veces necesitamos alguna información, el valor de una variable, los parámetros que llegan a un hook, o simplemente saber si el flujo pasó por cierta parte del código. Por eso hoy te enseño a hacer Debug con Woocommerce.

La documentación de Woocommerce lo explica. Pero yo te ayudo a entenderlo.

ALERTA: El contenido está dirigido a programadores. El código mal implementado puede afectar a tu Tienda.

Empecemos por una función:

wc_get_logger()

Primero veamos el significado de Log. Yo lo traduzco como bitácora o registro. Es un lugar donde vas guardando información de eventos. Normalmente incluyendo el tiempo en que sucedieron.

Woocommerce ya viene con un visor de logs. Para acceder al visor la ruta desde wp-admin es: WordPress Dashboard > WooCommerce > Status > Logs

Imagen que muestra un log usado para Debug en Woocommerce

Como puedes ver hay varios logs. Uno de ellos es el mío. Esto es posible con lo que te explico en este post.

En cualquier lugar de tu código donde necesites guardar informaicón, estos son los pasos:

Paso 1.- Llamar la función wc_get_logger():

$logger = wc_get_logger();
$context = array( 'source' => 'udev-log' );

Paso 2.- Llamar la función que escribe en el log:

$logger->debug( ‘Información detallada para Debug’, $context );
$logger->info( ‘Eventos relevantes’, $context );
$logger->notice( ‘Eventos normales’, $context );
$logger->warning( ‘Eventos excepcionales, pero no son errores’, $context );
$logger->error( ‘Errorre que neceitan atención’, $context );
$logger->critical( ‘Condiciones críticas’, $context );
$logger->alert( ‘Acción inmediata necesaria’, $context );
$logger->emergency( ‘Houston, llamando Houston’, $context );

La diferencia entre ellas es la clasificación de la información. El primer parámetros en un string con el contenido a guardar en el log. El segundo es opcional, si quieres tener tu propio log. El segundo es un array, que puede incluir información que quieras pasar al logger. Esto es útil en dos situaciones: cuando quieres un log exclusivo para ti, y cuando creas tu propio logger y necesitas información adicional. Pero eso es otro tema.

Tu propio log.

El parámetro source lleva el nombre del log. Bueno como ves en la imagen el nombre del log incluye el nombre que le pasas. En mi caso le paso como valor ‘udev-log’ y generó un log: udev-log-2022-09-04-4b3c742ca243b2f0dab1393322ec142f.log, por lo que se ve que incluye la fecha y un identificador único.

Según la documentación esos logs se borran después de 30 días.

 

En mi caso yo prefiero llamar directamente la función wc_get_logger():


wc_get_logger()->debug('Info de debug');

Y cuando quiero crear mi propio log:

wc_get_logger()->debug('Info de debug', array('source' = 'udev-log'));

Si te gustó este post, mira los temas de Temas de Curso Desarrollo en Woocommerce – Urano Dev/ y suscríbete a mi lista de espera.

 


 

WP y PHP, una historia que podría no continuar

PHP y WordPress.

En la más reciente WPUE le preguntaron a Matt si WP seguiría usando PHP
La respuesta fue que en 5 años debería haber un traductor automático, de PHP a un lenguaje diferente.

Yo no veo la necesidad de hacer algo así. ¿Cambiar de lenguaje, mejoraría WordPress? Yo creo que no. Y luego que pasaría? miles de desarrolladores programando en PHP y luego traduciendo?

Mi enfoque (sí, nadie me lo preguntó, pero este es mi blog, ¿no?) sería mejor invertir en mejorar PHP, donar más dinero, participar en mejoras. Así podríamos tener un mejor lenguaje para PHP y podrías seguir usando todo el código en el que se han invertido millones de horas.

Se que eso de los lenguajes es como una guerra religiosa, donde los que más participan son los más fanáticos, y por eso casi nunca llegan a buen término.

Mientras tanto yo exploraré nuevos mercados: shopify, APIs, y magento.

Openverse.

La imagen destacada de este post la tomé del openverse. Te recomiendo estés pendiente y te des una vuelta. El link te llevará la zona de fotos. Creo que la búsqueda tiene lo básico, supongo que poco apoco irá mejorando.

Performance de WP.

 

Si estás de acuerdo conmigo, lee otros posts en este blog. Si no, con la pena, escríbeme a quemeimporta@urano.dev para procesar una devolución.

 

WP pierde cuota de mercado por primera vez en 19 años

Ya se veía venir. No es sorpresa, pero es algo que no había pasado, hasta que pasó. WP dej+o de crecer, y luego perdió participación.

Algunos expertos lo atribuyen a la falta de crecimiento funcional de la plataforma, parece que los años que llevan desarrollando Gutenberg, han afectado en la velocidad de otras funcionalidades.

El caso más sonado es la velocidad, comparada con los competidores.

En Octubre 12 del 2021 se propuso formar un equipo que se dedicar al tema del performance. Hasta antes de esta fecha, el performance se ha optimizado con plugins, pero muchos pensamos que debería estar en el core de WP. El equipo ya ha entregado una versión de mejoras.

Es decir, la arquitectura debería estar optimizada para el performance.

El performance es el diferenciador principal de la competencia: Wix, Shopify, … y quien se te ocurra.

Esto tenía que pasara algún día. Yo creo que en un año WP retomará el crecimiento. Actualmente ya se tienen mejoras, en forma de plugin. Conforme sea posible la funcionalidad de integrará en eel core.

Una vez solucionado el tema del performance, hay otro tema que puede frenar o restar el crecimiento, y tiene que ver con la participación de desarrolladores. Es sabido que es difícil el participar en el desarrollo del core.

Hasta hace poco cualquier propuesta de mejora se tomaba como una ofensa a los desarrolladores, al equipo de WP, en lugar de verlo como una oportunidad de mejora, se atacaba a quien proponía nuevas formas de hacer las cosas. Es sabido de varios casos que proponen mejoras, y por simple opinión se rechazan, sin análisis técnico. Simplemente al comité no le parece, y ya. No se aceptan.

Creo que eso está cambiando y espero que pronto sea más amigable el proceso de onboarding para nuevos desarrolladores.

 

Woocommerce Fees, comisiones y descuentos

En Woocommerce se tiene la funcionalidad de comisiones o costos adicionales, y de descuentos.

Se usan lo que llaman Fees, y si el valor es positivo (mayor a cero) es un costo adicional. Si el valor es negativo (menor a cero) entonces se toma como un descuento.
Por ejemplo podemos agregar un costo dependiendo del método de pago:

function udev_paypal_fee($cart){
 $order = new WC_Order( $order_id );
 // $order->get_payment_method_title() devuelve el titulo que el admin define en la configuración
 $payment_title = $order->get_payment_method_title();
 if ('PayPal' === $payment_title){
  $perc = 0.05; // 5%
  $fee = ( $cart->cart_contents_total + $cart->shipping_total ) * $perc;
  $cart->add_fee( 'Comisión adicional PayPal', $fee, true, '' );
 }
 if ('Transferencia bancaria directa' === $payment_title){
  $perc = 0.05; // 5%
  $fee = ( $cart->cart_contents_total + $cart->shipping_total ) * $perc;
  $cart->add_fee( 'Descuento Pago en efectivo', $fee*-1, true, '' );
 }
}
add_action ('woocommerce_cart_calculate_fees', 'udev_paypal_fee');

Ahora, si hay un cambio en la forma de pago, la página no se recarga, por lo que no cambiaría la comisión /descuento. Para eso debemos agregar jquery.

 add_action( 'wp_footer', 'udev_wc_add_cart_fees_by_payment_gateway_script' );
   
    function udev_wc_add_cart_fees_by_payment_gateway_script() {
        ?>
        <script>
        jQuery( function() {
            jQuery( 'body' ).on( 'change', 'input[name="payment_method"]', function() {
                jQuery( 'body' ).trigger( 'update_checkout' );
            } );
        } );
        </script>
        <?php
    }

También se tienen los cupones, es otra forma de dar descuentos, pero esa es otra historia.

 

Datos de WordPress 2022

Algunos datos relacionados a WP

  • Tomando los 10 millones de sitios Top, WP tiene 39.3%
  • sitios usando Woocommerce transaccionaron 20,000 millones de USD en ventas en 2021
  • WP va hacia le edición del Sitio, FSE, para competir con plataformas como WIX. A 3 años de Gutenberg, se empieza a ver el progreso
  • Una de las principales demandas de la comunidad es el soporte multi idioma. Parece que no hay mucho interés en el equipo Core, y las soluciones proporcionadas por otros no son los suficientemente buenas.  En lo personal, creo que es mejor que el mundo aprenda Inglés, es la ligua franca.
  • Wix, Squarespace y Shopify tienen mejor performance que WP. En octubre 2021 se creó un equipo para mejorar ésto.

Creo que la tendencia en crecimiento va a continuar. Muchos negocios invirtieron en 2020 y 2021, pero algunos van a empezar a entrar a llenar huecos dejados por los negocios que cerraron, y en general el OpenSource va a beneficiarse de ésto.

El desarrollo de Woocommerce va a tener durante dos años un pico, tratando de competir contra Shopify, donde la barrera de entrada es baja para principiantes, pero el costo es muy alto para negocios medianos o grandes.

Si sabes programar con WP y Woocommerce, vas a tener dos años muy buenos. Después de esos dos años, veremos qué tanto crece Woocommerce y sus rivales.

Algún otro dato que te parezca interesante? @Urano Dev

 

Woocommerce Soporta pagos en Oxxo con Stripe

Dos funcionalidades que desde hace tiempo se han solicitado a Automattic para Woocommerce y Stripe son los pagos en Oxxo  y meses sin Intereses (MSI), ambas funcionalidades disponibles solo en México.

A finales de noviembre se incluye la funcionalidad de pagos en Oxxo

Comprobé la funcionalidad en mi sitio de pruebas.

Si se hace una compra con Oxxo como forma de pago

 

El boleto o ticket o vale se puede imprimir para el comprador vaya al Oxxo a pagar:

 

En modo sandbox, después de unos minutos, se invoca el web hook para que aparezca el pago, es decir, stripe simula que el comprador fue al Oxxo a pagar:

 

Lo poco que he probado funciona bien

Cabe mencionar que necesitas habilitar el pago en Oxxo en tu cuenta de Stripe Métodos de pago – [Prueba de] Stripe.

Esperemos que no tarden mucho la implementación de MSI con Stripe. Hay muchas tiendas que lo esperan, pero no han querido invertir en la implementación.

 

Escribir diariamente (casi) (Updated)

Inspirado por Chris Lema, he decidido escribir en este blog cada día de lunes a viernes, a diferencia de él que escribe incluso sábados y domingos

Entonces ese es el plan. Agregaré un contador en el sitio de cuántos días continuos llevo.

No tengo claro los temas a incluir, pero serán de WP, Woocommerce, Facturación Electrónica, y Desarrollo de Plugins.

Quizá algunas veces escribiré sobre el oficio de Freelancer, o temas profesionales

Y así como un viaje de mil millas empieza con el primer paso, éste es el primer paso de ésta meta.

 

Que temas te gustaría ver? Sugiere en Urano Dev (@UranoDev) / Twitter

UPDATE:

Mayo23, no he escrito nada, sólo una vez. Estoy retomando este propósito y espero que este segundo intento me vaya mejor… Ya veremos…

« Entradas anteriores

© 2022 Urano Dev

Tema por Anders NorenArriba ↑