2019 BMW 3 Series
Diesel
Saloon
2019
50,954 km / 31,662 mi
Automatic
White
Welcome to AutoXpress.ie – Luxury for Less! ? Arriving soon is this stunning 2019 (192) BMW 320d xDrive M Sport Automatic—the benchmark for executive sports saloons. This highly desirable model b ... oasts the aggressive M Sport styling, the enhanced grip of xDrive All-Wheel Drive (AWD), and a host of premium upgrades, including a luxurious Leather Interior and a Digital Speedo (Live Cockpit). ? Please Note: This vehicle is in transit and will be available soon! Equipped with essential driving aids like the Reversing Camera and parking sensors, and powered by the efficient and powerful 2.0L Turbo Diesel engine, this BMW offers great mileage for its year and an excellent NCT valid until 03/2028! Why Choose AutoXpress.ie? 6 Months Premium Warranty Included – Drive with complete confidence. All vehicles come fully serviced and professionally valeted. Nationwide delivery available. Trade-ins welcome. ? Finance Options We offer flexible finance solutions tailored to your budget – fast approval guaranteed! Key Vehicle Details: ? Year: 2019 (192) ? Model: BMW 320d xDrive M Sport ? Transmission: Automatic (with Paddle Shift) ? Engine: 2.0L Turbo Diesel (2000cc) ? Mileage: 50,952 Miles ? NCT Valid Until: 03/2028 ? Interior: Full Black Leather Trim ? Drive: BMW xDrive All-Wheel Drive (4WD) Top Features (M Sport & Executive Spec): Luxury & Technology: Leather Interior – A significant upgrade, providing superior comfort and luxury. Digital Speedo (Live Cockpit) – Customizable, high-resolution digital instrument display. iDrive Infotainment System – Central control for Navigation, media, and car settings. Convenience & Safety: Reversing Camera & Front and Rear Parking Sensors – Provides comprehensive, stress-free maneuvering assistance. Cruise Control – For comfortable long-distance driving. Performance & Design: xDrive All-Wheel Drive – Ensures phenomenal traction, handling, and stability in all conditions. M Sport Styling – Includes unique Factory Alloy Wheels, aerodynamic body kit, and M Sport steering wheel. Paddle Shift Gear Selectors – For an engaging and responsive driving experience. ? Contact Us Today: ? Call us in Limerick at 061-446033 or Galway at 091-335696 for more details or to reserve this high-specification 3 Series. ? Visit www.autoxpress.ie to explore finance options and secure this fantastic vehicle today! ? Drive a low-mileage, high-spec BMW – only at AutoXpress.ie!
Sales:
Milltown Lane, Rathnew,
Co. Wicklow,
| Mon - Sun: | Closed |
With Hire Purchase you pay for the car in a series of monthly payments. At the end of the term, after all payments and the option to purchase fee is made you take full ownership of the vehicle.
Would you like to pay for your vehicle in full? Or do you already have finance arranged? Search for your perfect car according to your total budget here.
Keep up to date
with our latest stock!
Milltown Lane
Rathnew
Co. Wicklow
| Mon - Sun: | Closed |
We are Closed on Bank Holidays.
| Mon: | 9:30am - 4:30pm |
| Tue - Thu: | 9:30am - 5:30pm |
| Fri: | 9:30am - 4:30pm |
| Sat - Sun: | Closed |
Aftersales is Closed for Lunch from 1pm to 2pm.
Aftersales does not operate on any Bank Holidays.
Copyright © MJ Motors 2026 All Rights Reserved Privacy Policy Terms & Conditions
Thanks!
We have sent a verification email to you. Please click on the verification link in this email to activate the alert.
select text_key, value from c_dealer_site_texts where dealer_id = 544
select
d.display_name,
d.id,
d.use_display_name_for_consent,
d.group_id,
g.name as group_name,
d.facebook_id,
d.facebook_url,
d.youtube_id,
d.youtube_link,
d.twitter_link,
d.instagram_link,
d.linkedin_link,
d.tiktok_url,
d.is_simi,
d.use_km,
d.email_enquiries,
d.opening_hours_extra_text,
d.reservation_days,
d.reservation_option,
d.finance_default_deposit_pct,
d.use_google_reviews,
d.google_reviews_link,
d.google_reviews_avg_rating,
d.google_reviews_total,
d.finance_start_with_personal_details,
d.principal,
d.principal_title,
d.slug,
d.allow_html_description,
d.finance_default_hp_rate,
d.finance_default_pcp_rate,
d.payment_provider,
d.payment_secret_key_enc,
d.square_access_token_enc,
d.square_location_id,
da.address1,
da.address2,
da.address3,
da.address4,
da.address5,
da.postcode,
da.map_lat,
da.map_long,
da.map_zoom,
r.country_code,
r.region,
if (d.reservation_new_option = 0, null, rp.cost_to_reserve) as cost_to_reserve_new
from c_dealers d
left join c_groups g on g.id = d.group_id
left join c_dealer_addresses da on da.dealer_id = d.id
left join c_country_regions r on da.region_id = r.id
left join c_reservation_prices rp on d.reservation_new_price_id = rp.id
where d.id = 544
select
name,
phone,
email,
is_primary_contact
from c_dealer_website_contacts
where dealer_id = 544
and hide_on_website = 0
order by sort_key
select
h.dow,
h.open,
h.closed,
h.optional_text
from c_dealer_hours h
where h.dealer_id = 544
and h.department_id is null
order by 1
select
d.slug,
d.name,
h.dow,
h.open,
h.closed,
h.optional_text
from c_dealer_departments d
left join c_dealer_hours h on h.department_id = d.id
where d.dealer_id = 544
order by d.sort_order, d.id, h.dow
select
a.id,
a.s3_image,
a.main_image_id,
ai.template_id,
a.reg_year,
a.price,
a.mileage,
mk.make,
md.model
from c_ads a
inner join c_makes mk on a.make_id = mk.id
inner join c_models md on a.model_id = md.id
left join c_ad_images ai on a.main_image_id = ai.id
where dealer_id = 544
and a.status = 'live' AND a.expires_at > now() AND a.paused_at is null AND a.deleted_at is null AND a.web_sale_id IS NULL
and is_dealer_special = 1
select
a.id,
a.s3_image,
a.is_commercial,
a.external_ad_id,
a.mileage,
a.kilometres,
a.odo_units,
a.make_id,
a.model_id,
a.make_text,
a.model_text,
a.reg_year,
a.price,
a.previous_price,
a.trade_in_price,
/* a.vrt, */
/* round(a.vrt_estimate) as vrt_estimate, */
/* round(a.omsp_for_vrt) as omsp_for_vrt, */
a.description,
a.dealer_id,
a.created_at,
date_format(a.created_at, '%Y%m%d%H%i%s') as creation_date_fmt,
date_format(a.expires_at, '%Y%m%d%H%i%s') as expiry_date_fmt,
/* using dealer updated date not ad updated date */
d.stock_updated_at as updated_at,
a.main_image_id,
ai.template_id as main_template_id,
/* ifnull(a.email_enquiries_p,0) as email_enquiries_p, */
d.email,
a.engine_cc,
a.hide_extra_info_on_dealer_website,
/* a.review_id, */
r.region,
mk.make,
mk.category_id,
md.model,
/* a.commercial_p, */
d.display_name,
d.phone,
/* d.email_enquiries_p as dealer_enquiries_p, */
d.group_id,
/* d.show_web_link_p, */
d.web,
/* d.disable_map_p, */
/* d.simi_p, */
d.opening_hours_extra_text,
da.address1,
da.address2,
da.address3,
da.address4,
da.address5,
da.postcode,
da.map_lat,
da.map_long,
/* d.youtube_id AS dealer_youtube_id, */
d.reservation_option as dealer_reservation_option,
rpd.cost_to_reserve as dealer_cost_to_reserve,
a.reservation_option as ad_reservation_option,
rpa.cost_to_reserve as ad_cost_to_reserve,
a.fuel_type_id,
fu.fuel_type,
a.colour_id,
cl.colour,
a.colour_description,
a.body_type_id,
bd.body_type,
a.variant,
a.owners,
a.transmission_type_id,
tr.transmission_type,
a.reg_number,
/* ifnull(a.contact_name_public_p,0) as contact_name_public_p, */
/* a.contact_name, */
if(a.tax_due_date > now(), a.tax_due_date, null) as tax_due_date,
if(a.test_due_date > now(), a.test_due_date, null) as test_due_date,
a.co2,
a.max_power_bhp,
a.road_tax_cost,
a.fuel_cons_combined,
a.doors,
a.seats,
a.stock_number,
d.location_name,
ceil(a.finance_price_per_month_pcp) as finance_price_per_month_pcp,
a.accel_0_to_62,
/* a.email_public_p, */
/* a.phone_no_public_p, */
a.youtube_id,
a.video_type,
a.video_id,
a.finance_flat_rate_apr,
a.finance_option,
a.finance_max_term,
a.finance_max_deposit,
if(ifnull(a.reservation_id, 0), 1, 0) as is_reserved,
aei.max_power_hp,
aei.max_power_revs,
aei.max_torque_nm,
aei.max_torque_revs,
aei.fuel_cons_urban,
aei.fuel_cons_extra_urban,
aei.max_speed_mph,
aei.ncap_overall,
aei.ncap_adult_occupant,
aei.ncap_child_occupant,
aei.ncap_adult_pct,
aei.ncap_child_pct,
aei.gross_weight_kg,
aei.unladen_weight_kg,
aei.wheelbase_mm,
fbr.balance_remaining_over,
fbr.balance_remaining_under,
fbr.over_apr,
fbr.under_apr,
a.is_dealer_special,
a.interior_360_url,
a.exterior_360_url,
w.period_months,
d.use_custom_warranty,
wt.title as warranty_term,
a.key_location,
a.grade,
a.eta,
a.turntable_images_count,
a.licence_type,
a.colour_interior_description,
if (d.allow_public_vins = 1, a.vin, null) as vin_encrypted,
ct.display as cylinders,
finoff.label as finance_offer
/* ad extra info in here if needed */
from
c_ads a
inner join c_models md on a.model_id = md.id
inner join c_makes mk on a.make_id = mk.id
left join c_ad_extra_info aei on a.id = aei.ad_id
left join c_ad_images ai on a.main_image_id = ai.id
left join c_dealers d on a.dealer_id = d.id
left join c_dealer_addresses da on d.id = da.dealer_id
left join c_country_regions r on d.region_id = r.id
left join c_fuel_types fu on a.fuel_type_id = fu.id
left join c_colours cl on a.colour_id = cl.id
left join c_body_types bd on a.body_type_id = bd.id
left join c_transmission_types tr on a.transmission_type_id = tr.id
left join c_ad_finance_balance_rates fbr on a.id = fbr.ad_id
left join c_reservation_prices rpd on d.reservation_price_id = rpd.id
left join c_reservation_prices rpa on a.reservation_price_id = rpa.id
left join c_ad_warranties w on a.warranty_id = w.id
left join c_warranty_terms wt on a.warranty_term_id = wt.id
left join c_cylinder_types ct on a.cylinder_type_id = ct.id
left join c_dealer_finance_offers finoff on a.finance_offer_id = finoff.id
where a.id = 363178
and a.deleted_at is null
and a.paused_at is null
and a.status = 'live'
and a.dealer_id = 544
limit 1select max(term) from c_ad_finance_calc_results where ad_id = 363178select f.deposit_and_trade_in from c_ad_finance_calc_results f where f.ad_id = 363178 order by f.deposit_and_trade_in asc limit 1select min(term) from c_ad_finance_calc_results where ad_id = 363178
select name, value
from c_ad_extra_properties aep
where aep.ad_id = 363178
select
ai.id as image_id,
ai.template_id,
a.dealer_id as ad_dealer_id,
a.main_image_id
from c_ad_images ai
inner join c_ads a on a.id = ai.ad_id
where a.id = 363178
and ai.deleted_at is null
order by ai.sort_key
select
ceil(price) as price,
ceil(deposit_and_trade_in) as deposit_and_trade_in,
term,
ceil(loan_amount) as loan_amount,
apr,
irr,
ceil(monthly_payments) as monthly_payments,
ceil(total_cost_of_credit) as total_cost_of_credit,
ceil(documentation_fee) as documentation_fee,
ceil(completion_fee) as completion_fee,
reg_year
from c_ad_finance_calc_results
where ad_id = 363178
and is_default_term
order by is_dealer_default desc, deposit_and_trade_in limit 1
select
b.home_title_tag,
b.home_meta_desc,
b.other_title_tag,
b.other_meta_desc,
b.about_us_short,
b.map_key,
ifnull(ifnull(b.map_company_name, b.display_name), d.display_name) as name_for_map,
ba.country_code,
ba.region_id,
ba.address1,
ba.address2,
ba.address3,
ba.address4,
ba.address5,
ba.postcode,
ba.map_lat,
ba.map_long,
ba.map_zoom,
ba.phone,
r.country_code,
r.region
from c_dealer_site_briefs b
inner join c_dealers d on b.dealer_id = d.id
left join c_dealer_site_brief_addresses ba on b.id = ba.brief_id
left join c_country_regions r on ba.region_id = r.id
where d.id = 544
and b.dealer_tag = 'mjmotors'
order by b.id
limit 1
select a.finance_price_per_month from c_ads a where id = 363178
SELECT
r.reviewer_name,
r.review,
date_format(ifnull(r.updated_at, r.created_at), '%d %b %Y') as date,
r.reviewer_location,
r.rating
FROM c_dealer_reviews r
WHERE status = 'live'
AND r.dealer_id = '544'
ORDER BY r.created_at DESC limit 3 [CACHED]
SELECT
id,
COUNT(rating) total_num,
SUM(rating) total_sum
FROM c_dealer_reviews
WHERE STATUS = 'live'
AND dealer_id = 544 [CACHED]
select
b.home_title_tag,
b.home_meta_desc,
b.other_title_tag,
b.other_meta_desc,
b.about_us_short,
b.map_key,
ifnull(ifnull(b.map_company_name, b.display_name), d.display_name) as name_for_map,
ba.country_code,
ba.region_id,
ba.address1,
ba.address2,
ba.address3,
ba.address4,
ba.address5,
ba.postcode,
ba.map_lat,
ba.map_long,
ba.map_zoom,
ba.phone,
r.country_code,
r.region
from c_dealer_site_briefs b
inner join c_dealers d on b.dealer_id = d.id
left join c_dealer_site_brief_addresses ba on b.id = ba.brief_id
left join c_country_regions r on ba.region_id = r.id
where d.id = 544
and b.dealer_tag = 'mjmotors'
order by b.id
limit 1 [CACHED]
select
b.home_title_tag,
b.home_meta_desc,
b.other_title_tag,
b.other_meta_desc,
b.about_us_short,
b.map_key,
ifnull(ifnull(b.map_company_name, b.display_name), d.display_name) as name_for_map,
ba.country_code,
ba.region_id,
ba.address1,
ba.address2,
ba.address3,
ba.address4,
ba.address5,
ba.postcode,
ba.map_lat,
ba.map_long,
ba.map_zoom,
ba.phone,
r.country_code,
r.region
from c_dealer_site_briefs b
inner join c_dealers d on b.dealer_id = d.id
left join c_dealer_site_brief_addresses ba on b.id = ba.brief_id
left join c_country_regions r on ba.region_id = r.id
where d.id = 544
and b.dealer_tag = 'mjmotors'
order by b.id
limit 1 [CACHED]
select
b.home_title_tag,
b.home_meta_desc,
b.other_title_tag,
b.other_meta_desc,
b.about_us_short,
b.map_key,
ifnull(ifnull(b.map_company_name, b.display_name), d.display_name) as name_for_map,
ba.country_code,
ba.region_id,
ba.address1,
ba.address2,
ba.address3,
ba.address4,
ba.address5,
ba.postcode,
ba.map_lat,
ba.map_long,
ba.map_zoom,
ba.phone,
r.country_code,
r.region
from c_dealer_site_briefs b
inner join c_dealers d on b.dealer_id = d.id
left join c_dealer_site_brief_addresses ba on b.id = ba.brief_id
left join c_country_regions r on ba.region_id = r.id
where d.id = 544
and b.dealer_tag = 'mjmotors'
order by b.id
limit 1 [CACHED]select -- mtd_makes 544
mk.id, mk.make
from c_makes mk
inner join c_ads a on a.make_id = mk.id
inner join c_dealers d on a.dealer_id = d.id
where a.dealer_id = 544
and a.status = 'live' AND a.expires_at > now() AND a.paused_at is null AND a.deleted_at is null AND a.web_sale_id IS NULL
GROUP BY mk.id, mk.make
order by mk.make
select -- mtd_body_types 544
t.id,t.body_type
from c_body_types t
inner join c_ads a on a.body_type_id = t.id
inner join c_dealers d on a.dealer_id = d.id
where a.dealer_id = 544
and a.status = 'live' AND a.expires_at > now() AND a.paused_at is null AND a.deleted_at is null AND a.web_sale_id IS NULL
group by t.id,t.body_type
order by t.body_type
select -- mtd_fuel_types 544
t.id,t.fuel_type
from c_fuel_types t
inner join c_ads a on a.fuel_type_id = t.id
inner join c_dealers d on a.dealer_id = d.id
where a.dealer_id = 544
and a.status = 'live' AND a.expires_at > now() AND a.paused_at is null AND a.deleted_at is null AND a.web_sale_id IS NULL
group by t.id,t.fuel_type
order by t.sort_key
select -- mtd_transmission_types 544
t.id,t.transmission_type
from c_transmission_types t
inner join c_ads a on a.transmission_type_id = t.id
inner join c_dealers d on a.dealer_id = d.id
where a.dealer_id = 544
and a.status = 'live' AND a.expires_at > now() AND a.paused_at is null AND a.deleted_at is null AND a.web_sale_id IS NULL
group by t.id,t.transmission_type
order by t.transmission_type
SELECT deposit FROM c_finance_deposits ORDER BY deposit
SELECT max(price)
FROM c_ads a
INNER JOIN c_dealers d on a.dealer_id = d.id
WHERE a.status = 'live' AND a.expires_at > now() AND a.paused_at is null AND a.deleted_at is null AND a.web_sale_id IS NULL
AND a.dealer_id = 544
SELECT min(price)
FROM c_ads a
INNER JOIN c_dealers d on a.dealer_id = d.id
WHERE a.status = 'live' AND a.expires_at > now() AND a.paused_at is null AND a.deleted_at is null AND a.web_sale_id IS NULL
AND a.dealer_id = 544select show_legal_guarantee_notice from c_dealers where id = 544/var/www/templates/MJMOTORS/www/print.php/var/www/templates/MJMOTORS/www/print.blade.php{
"id": "gW671"
}{
"Accept-Encoding": "br,gzip",
"X-Amz-Cf-Id": "9ZfR1R3wZCOUM-B4aeFli9-0rnSaBehqRAUywzgSTghj2Be4kfjEVg==",
"Via": "2.0 dfefeb7bf78c4bb787739d020c642c14.cloudfront.net (CloudFront)",
"User-Agent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"Accept": "*\/*",
"X-Amzn-Trace-Id": "Root=1-6ab1d46d-719a9a5428ecce94587f880c",
"Host": "preview2rmbi7.happydealer.ie",
"X-Forwarded-Port": "443",
"X-Forwarded-Proto": "https",
"X-Forwarded-For": "216.73.216.239, 64.252.75.217",
"X-Hd-Debug": "",
"Content-Length": "",
"Content-Type": ""
}