MAGENTO中订单生成货物单时发送短信通知

1.首先有准备好的短信接口,能够使用
2.监听订单发货事件

*在对应的config.xml中加入订单发货监听时间:

    <adminhtml>
        <events>
            <sales_order_shipment_save_after>
                <observers>
                    <boc_receiveorder>
                        <type>singleton</type>
                        <class>boc/observer</class>
                        <method>sendShippmentMessage</method>
                    </boc_receiveorder>
                </observers>
            </sales_order_shipment_save_after>
        </events>
    </adminhtml>

*从订单中获取订单的发货地址,从发货地址中获取发货详细信息:

    public function sendShippmentMessage(Varien_Event_Observer $observer){

        $shipment = $observer->getEvent()->getShipment();
        $order = $shipment->getOrder();
        $orderIncrementId = $order->getIncrementId();
//        $orderDetail = Mage::getModel('sales/order')->load($orderIncrementId);

        $orders = Mage::getModel('sales/order')->getCollection();
        $orders->addAttributeToFilter('increment_id', $orderIncrementId);
        $orders->addAttributeToSelect('*');
        $orders->load();
        $alldata = $orders->getData();
        foreach($alldata as $alldatas){
//            $grand_total = $alldatas['grand_total'];
//            $increment_id = $alldatas['increment_id'];
            $shipping_address_id = $alldatas['shipping_address_id'];
        }

        /*order address*/
        $address = Mage::getModel('sales/order_address')->getCollection();
        $address->addAttributeToFilter('entity_id', $shipping_address_id);
        $address->addAttributeToSelect('*');
        $address->load();
        $address_alldata = $address->getData();
        foreach($address_alldata as $address_alldatas){
//            $street = $address_alldatas['street'];
//            $postCode = $address_alldatas['postcode'];
            $telephone = $address_alldatas['telephone'];
//            $cn_name = $address_alldatas['cn_name'];
//            $provinceId = $address_alldatas['cn_province'];
//            $cityId = $address_alldatas['cn_city'];
//            $districtId = $address_alldatas['cn_district'];

//            $city = Mage::getModel('cnregion/city')->load($cityId)->getName();
//            $district = Mage::getModel('cnregion/district')->load($districtId)->getName();

//            $provinceModel = Mage::getModel('cnregion/province')->load($provinceId);
//            $province = $provinceModel->getName();
        }

        if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$telephone)){
            $shipmentCollection = Mage::getResourceModel('sales/order_shipment_collection')
                ->setOrderFilter($order)
                ->load();

            foreach ($shipmentCollection as $shipment){

                foreach($shipment->getTracksCollection() as $tracknum)
                {
                    $tracknums=$tracknum->getNumber();//获取运单号
                    $tracktitles=$tracknum->getTitle();//获取运单名称
                }
            }
        }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,663评论 25 708
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,376评论 11 349
  • 我错过了最佳班车 只为能在这个有你的小镇多陪你一会 天空逐渐变暗、站台上也迎来了末班车 有些事情总是让人感觉无力 ...
    落落雾语阅读 202评论 0 0
  • 今天是弟弟的生日 心里默默祝他生日快乐 希望他健康快乐成长 今天在微博看到一些很有感触的话 截了图 送给自己
    Arc空有少女心阅读 219评论 0 1