Obtención de cobro a clientes con sólo aquellos que están suscritos a los boletines
-
16-10-2019 - |
Pregunta
necesito para importar una carga de clientes a una tercera empresa de correo electrónico fiesta, pero necesidad de importar sólo los que está suscrito a boletines de noticias. La importación en sí tiene que ser un archivo de datos del cliente que necesito para generar. Sé que podría cargar todos los clientes en una colección y iterar a través de ellos, sólo la inserción de los que están suscritos en el archivo de importación, pero ya que tenemos más de 90.000 clientes que preferiría simplemente cargar los que están suscritos a la colección. La importación en sí utiliza una API sino que tiene que tener el archivo de importación añade como un archivo adjunto (bien haciendo que, al igual que para la información incluida).
¿Alguna idea?
Solución
Usted tiene que unirse a la colección EAV con la tabla periódica. Es alcanzable con el método joinTable
de clase Mage_Eav_Model_Entity_Collection_Abstract
. El parámetro sucesivamente define la condición WHERE
porque al parecer no se puede utilizar el método addAttributeToFilter
aquí.
$collection = Mage::getModel('customer/customer')->getCollection();
$collection->addNameToSelect()
->joinTable('newsletter_subscriber', 'customer_id=entity_id', array('subscriber_status'), '{{table}}.subscriber_status=1');
Por favor, hágamelo saber si algo no está claro.
Otros consejos
Puede probar una cosa, esta es la forma que tenía hacer tal cosa anteriormente.
Consulta contra la newsletter_subscriber mesa y conseguir customer_id, por lo que tiene ID de cliente a continuación datos de los clientes de carga con este id.
Esta es una manera fácil, bastante performant para hacerlo.
$newsletterSubscribers = Mage::getResourceModel('newsletter/subscriber_collection')
->addFieldToFilter('subscriber_status', array ('eq' => 1)); // 1 is subscribed
A continuación, puede repetir por los abonados.